» elektronik » Arduino »Binär klocka med larm och timer på Arduino Uno

Binär klocka med larm och timer på Arduino Uno


Har fått ett par styrelser Arduino, och olika radiokomponenter för att bekanta sig med mikrokontroller, beslutade författaren att göra något intressant och samtidigt användbart. Med ett stort antal lysdioder på lager kom tanken att skapa en binär klocka.

På elektronikssidan är en binär klocka inte särskilt komplicerad, men författaren komplicerade uppgiften och beslutade att inte spara knappar och lysdioder. Ursprungligen skulle projektet använda 22 lysdioder, 6 knappar och en diskant. Det fanns också idén att montera klockor på Arduino Mega på grund av det större antalet stift, men skiftregistren 74HC595 visade sig vara en frälsning.

material:
- Arduino Uno
- 2 brödskivor i full storlek
- Lysdioder röd 7 st
- Gröna lysdioder 7 st
- Blå lysdioder 6 st
- 2 gula och vita lysdioder
- Motstånd 220 ohm 25 st
- Piezo summer 1 st
- 6 knappar taktknappar
- Skiftutgångsregister 74HC595 i DIP-16-paketet 3 st
- Anslutningstrådar 90 st
- Realtidsklockamodul baserad på DS1307 RTC-chip

Hur allt fungerar.
Det finns cirka 10 typer av binära klockor. Vissa visar tiden i binärt decimal (BCD) -format, andra som binära tal. Eftersom författaren inte särskilt gillar BCD-klockan, bestämde han sig för att göra sin rena binär. Vissa av dem är svårare att läsa, men skillnaden i dem är liten, eftersom det inte är svårt att översätta siffror från binär till decimal. En förutsättning för klockans skapare var också en indikation på sekunderna på klockan.

Klockan har dessutom 6 knappar:
Set - ansvarar för klock- / larminställningsläget och sparar parametern i inställningsläget.
Läge - ansvarar för att växla mellan klocka, larm och timerläge.
Upp - i inställningen av klocka / larm / timer, ökar parametern med en. I väckarklockan och timern ansvarar det för att aktivera och inaktivera det valda läget. När en signal utlöses kommer larm- / tidssignalen att stängas av.
Ner - i inställningen av klocka / larm / timer kommer den att minska parametern med en. Timern pausar den utan att återställa nedräkningen. När larmet slocknar överför signalen i 5 minuter.
24/12 - ändra tidsformatet.
Dim - ansvarig för att slå på och stänga av lysdioderna (när lysdioderna är avstängda slutar de återstående knapparna att fungera).
LED-positionsdiagram:
Binär klocka med larm och timer på Arduino Uno


Komponentanslutning
Författaren kommer att ansluta alla lysdioder i serie och med ett motstånd. Motståndet är lödat till en av terminalerna på lysdioderna, det spelar ingen roll vilken. Lysdioder kommer att anslutas via skiftregister, detta chip har 16 kontakter.Detta antal stift låter dig använda ett stort antal stift och tar bara tre stift på Arduino.

Skiftregister Pinout 74HC595:
Q0-Q7 är resultaten i det register som lysdioderna kommer att anslutas till.
Vcc - en 5V strömförsörjningsstift appliceras på den.
GND - mark ansluten till GND på Arduino.
OE - stiftet är ansvarigt för den inverterade aktiveringen av stiften, men den kommer inte att användas, den är helt enkelt kortsluten till marken.
MR är en inverterad registerröjning, den behöver inte kontrolleras, därför kommer den att anslutas till en 5V strömförsörjning.
ST_CP - pin ansvarar för att uppdatera status för registret. Vid inspelning av tillståndet är det nödvändigt att tillämpa LÅG på det, efter inspelning - HÖG, för att uppdatera status för utgångarna. Den måste anslutas till en stift på Arduino. Du kan ansluta denna stift i tre register parallellt.
SH_CP - stift, ansvarig för växlingen med 1 bit av registret. Den måste anslutas till en stift på Arduino. De är anslutna på mikrokretsar också parallellt.
DS - data skickas till denna stift, de är anslutna till stiftet på Arduino.
Q7 '- denna stift används för kaskadanslutning med andra register 74HC595.

Kopplingsschema:


Piezo-summern kommer att anslutas till den tredje Arduino-tappen i serie med motståndet. Innan diskussionen inkluderades i kretsen såg författaren på vilka stift som stöder PWM, eftersom detta är obligatoriskt för henne. På Arduino Uno stöder PWM 3, 5, 6, 9, 10 och 11 stift.


Knapparna är anslutna med motstånd inbyggda i Arduino, med ena sidan av knapparna anslutna till marken och den andra till Arduino-stiften.


Så den slutliga designen ser ut:


Bygg på Breadboard
Efter att ha skaffat ytterligare detaljer började författaren att montera projektet på en brädskiva enligt scheman. Utseende var på väg att förväntas, eftersom Breadboard begränsar friheten vid placering av komponenter, och stickningstrådar skapade inte estetiskt nöje. Men brödskivan är ju avsett för brödskivamodeller, men inte för färdiga enheter.


Programkod.
Efter att ha kunnat programmera beslutade författaren att skriva kod på egen hand utan att använda andra människors utveckling. Det första steget var att skriva en subrutin, det är ansvarigt för att blinka alla dioder och ge piezosignalen när den är på. Denna funktion hjälper till att verifiera kretsens integritet, liknande den som implementeras på många enheter.

Skissen kom ut ganska stor, då kan du överväga dess huvudsakliga funktioner.

LED-arbete.
Eftersom lysdioderna nås via skiftregistret var det för det första nödvändigt att implementera fler rutiner för lysdioderna. För enklare drift med dioder har ett antal ytterligare funktioner implementerats. Olika effekter av animering av dioder implementeras. När klockan inte är inställd börjar de dioder som är ansvariga för timmar och minuter att blinka (eftersom en normal klocka blinkar när den inte är inställd). Lysdioderna som ansvarar för sekunder har också sin egen animering, dioden kan köras åt vänster och höger i larmläget eller i klockinställningsläget.

Huvudslinga.
Programmet är konfigurerat för att fungera enligt följande: klockan visar information beroende på det aktuella tillståndet och ändrar dess tillstånd beroende på användning av knappar och händelser. Allt ser ut som en betydande mängd kapslade förhållanden. Diodernas tillstånd uppdateras varje gång efter kontroll av status för tidtagare och knappar med ett samtal till sin hanterare.

Författaren gjorde också ett bra jobb för korrekt funktion av ingångsknapparna och timern. Skissens källkod kan laddas ner under artikeln.


Starta layout
Efter att ha startat projektet, vid första anblicken, fungerade enheten korrekt och stabilt. Men författaren hittade en brist, klockan var bakom en sekund per timme, under lång tid skulle det vara ett stort fel.


Efter att ha studerat detta problem konstaterades det att den ursprungliga Arduino Uno använder en keramisk resonator, och att den saknar noggrannhet för att mäta tid under långa perioder. Den mest rationella lösningen var att köpa en klocka i realtid, plus på grund av denna modul kommer tiden på klockan inte att bli vilse när den är avstängd. Författaren köpte Grove RTC-modulen från Seeed Studio. Det är ett färdigt bräde med ett klockchip. Författaren anslöt stiften på SDA och SCL-modulen till Arduino på stiften på A4 och A5, GND till marken. Eftersom 5V-strömmen upptas av klockkortet fanns det ingenstans att ansluta modulen. Författaren beslutade att driva modulen från en av de digitala stiften, som ständigt kommer att få energi.Författaren behövde också ändra källkoden och lägga till ett bibliotek med klockor i realtid.


Titta på montering
Efter att ha slutfört ett långt arbete med koden är det dags att ge enheten en fullständig look och överföra den från brädskivan till kretskortet. Först av allt var det nödvändigt att göra kablarna för styrelsen. Fritzing användes för detta eftersom författaren redan hade en uppfattning om klockans utseende och han byggde ett enhetsdiagram. Författaren spårade också manuellt styrelsen, det tog mycket tid.
Projekt för PCB-produktion:


PCB-tillverkning beställdes i Kina. Seeed Studio har en Fusion PCB-korttjänst. Genom Fritzing exporterades filen till det utvidgade Gerber-formatet, många kartongtillverkare arbetar med den. Två veckor senare fick författaren den efterlängtade avgiften i posten.


Det återstod bara att löda redan lite dammiga delar på brädet. Det färdiga resultatet efter lödning såg mycket bättre ut än utformningen på Breadboard.


Projektets författare arbetade hårt länge och fick vad han ville - en unik binär klocka med en timer och en väckarklocka. Med batterifacket kan klockan placeras var som helst. Arduino mötte förväntningarna och hanterade uppgiften helt.

binclock-master.zip [23.53 Kb] (nedladdningar: 175)
10
10
10

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...