» elektronika » Arduino »Binárne hodiny s budíkom a časovačom na Arduino Uno

Binárne hodiny s budíkom a časovačom na Arduino Uno


Po získaní niekoľkých dosiek Arduino, a rôzne rádiokomponenty, aby sa zoznámili s mikrokontrolérmi, autor sa rozhodol urobiť niečo zaujímavé a zároveň užitočné. Keďže na sklade bolo veľké množstvo LED diód, prišiel nápad vytvoriť binárne hodiny.

Na strane elektroniky nie sú binárne hodiny nijako zvlášť zložité, autor však úlohu skomplikoval a rozhodol sa neukladať tlačidlá a LED. Projekt spočiatku mal využívať 22 LED diód, 6 tlačidiel a jeden výškový reproduktor. To bol tiež nápad zostaviť hodinky na Arduino Mega kvôli väčšiemu počtu kolíkov, ale posuvné registre 74HC595 sa ukázali ako spasenie.

materiály:
- Arduino Uno
- 2 doštičky plnej veľkosti
- LED červené 7 ks
- Zelené LED 7 ks
- Modré LED 6 ks
- 2 žlté a biele LED
- Odpory 220 ohmov 25 ks
- Piezo bzučiak 1 ks
- 6 tlačidiel taktové tlačidlá
- Shift výstupné registre 74HC595 v balení DIP-16, 3 ks
- Pripojovacie vodiče 90 ks
- Hodinový modul v reálnom čase založený na čipe DS1307 RTC

Ako bude všetko fungovať.
Existuje asi 10 druhov binárnych hodín. Niektoré zobrazujú čas vo formáte binárnej desatiny (BCD), iné ako binárne čísla. Keďže sa autorovi BCD hodinky obzvlášť nepáčia, rozhodol sa vyrobiť čisto binárny. Pre niektorých ľudí je čítanie ťažšie, ale rozdiel nie je veľký, pretože preklad čísel z binárnej na desatinnú je jednoduchý. Predpokladom pre tvorcov hodiniek bola tiež indikácia sekúnd na hodinkách.

Hodinky majú navyše 6 tlačidiel:
Set - je zodpovedný za režim nastavenia hodín / budíka a za uloženie parametra v režime nastavenia.
Režim - zodpovedný za prepínanie medzi režimom hodín, budíka a časovača.
Hore - v nastavení hodín / budíka / časovača zvyšuje parameter o jeden. V budíku a časovači je zodpovedný za aktiváciu a deaktiváciu zvoleného režimu. Keď sa spustí signál, vypne signál budíka / časovača.
Dole - v nastavení hodín / budíka / časovača zníži parameter o jeden. Časovač ho pozastaví bez vynulovania odpočítavania. Po spustení budíka bude signál prenášaný po dobu 5 minút.
24/12 - zmena formátu času.
Dim - zodpovedný za zapnutie a vypnutie LED (keď sú LED zhasnuté, zostávajúce tlačidlá prestanú fungovať).
Schéma umiestnenia LED:
Binárne hodiny s budíkom a časovačom na Arduino Uno


Pripojenie komponentov
Autor prepojí všetky LED diódy v sérii as odporom. Odpor je spájkovaný s jedným z terminálov LED, nezáleží na tom, ktorý z nich. LED diódy budú pripojené prostredníctvom posuvných registrov, tento čip má 16 kontaktov.Tento počet kolíkov umožňuje použiť veľký počet kolíkov, pričom na Arduino máte iba 3 kolíky.

Posuvný register Pinout 74HC595:
Q0-Q7 sú zistenia registra, ku ktorému budú pripojené LED.
Vcc - bude naň aplikovaný 5V napájací kolík.
GND - uzemnenie pripojené k GND na Arduino.
OE - kolík je zodpovedný za obrátenú aktiváciu kolíkov, ale nebude sa používať, jednoducho sa skratuje k zemi.
MR je zúčtovanie invertovaného registra, nie je potrebné ho kontrolovať, preto bude pripojený k napájaniu 5V.
ST_CP - pin je zodpovedný za aktualizáciu stavu registra. Pri zaznamenávaní stavu je potrebné aplikovať naň NÍZKE, po zaznamenaní - VYSOKÉ, aby sa aktualizoval stav výstupov. Musí byť pripojený ku kolíku na Arduino. Tento pin môžete prepojiť súčasne v troch registroch.
SH_CP - pin, zodpovedný za posun o 1 bit registra. Musí byť pripojený ku kolíku na Arduino. Sú spojené na mikroobvodoch tiež paralelne.
DS - údaje sa odosielajú na tento pin, sú spojené s pinom na Arduino.
Q7 '- tento pin sa používa na kaskádové spojenie s ostatnými registrami 74HC595.

Schéma zapojenia:


Piezoelektrický bzučiak bude spojený s tretím kolíkom Arduino v sérii s odporom. Pred zapojením tweetera do obvodu sa autor pozrel na ktoré kolíky podporujú PWM, pretože je to pre ňu povinné. Na Arduino Uno podporuje PWM 3, 5, 6, 9, 10 a 11 pinov.


Tlačidlá sa pripájajú pomocou odporov zabudovaných do Arduina, pričom jedna strana tlačidiel je pripojená k zemi a druhá na kolíky Arduino.


Konečný vzhľad vyzerá takto:


Postavte na prkénko
Po získaní ďalších detailov začal autor zostavovať projekt na prkénko na dosku podľa schém. Vzhľad sa mal očakávať, pretože Breadboard obmedzuje slobodu pri umiestňovaní komponentov a lepenie drôtov nevytváralo estetické potešenie. Dosková doska je koniec koncov určená pre modely doštičiek, ale nie pre hotové zariadenia.


Programový kód.
Po dôkladnom programovaní sa autor rozhodol napísať kód sám, bez toho, aby využil vývoj iných ľudí. Prvým krokom bolo napísať podprogram, ktorý je zodpovedný za blikanie všetkých diód a za aktiváciu piezo signálu. Táto funkcia pomáha overiť integritu obvodu, ktorá je podobná ako u mnohých zariadení.

Náčrt vyšiel pomerne veľký, potom môžete zvážiť jeho hlavné črty.

LED práce.
Pretože k LED sú prístupné predovšetkým cez posuvný register, bolo potrebné implementovať viac rutín pre LED. Pre ľahšiu prevádzku s diódami bolo implementovaných množstvo ďalších funkcií. Realizujú sa rôzne efekty animácie diód. Ak hodiny nie sú nastavené, začnú blikať diódy zodpovedné za hodiny a minúty (ako normálne hodiny blikajú, keď nie sú nastavené). LED diódy zodpovedné za sekundy majú tiež svoju vlastnú animáciu, dióda môže bežať v režime budíka alebo v režime nastavenia hodín vľavo a vpravo.

Hlavná slučka.
Program je nakonfigurovaný tak, aby pracoval nasledovne: hodiny zobrazujú informácie v závislosti od aktuálneho stavu a menia svoj stav v závislosti od použitia tlačidiel a udalostí. Vyzerá to ako značné množstvo vnorených podmienok. Stav diód sa aktualizuje zakaždým po skontrolovaní stavu časovačov a tlačidiel volaním ich obsluhy.

Autor tiež odviedol skvelú prácu za správne fungovanie vstupných tlačidiel a časovačov. Zdrojový kód skici je možné stiahnuť pod článkom.


Spustite rozloženie
Po zapnutí projektu zariadenie na prvý pohľad fungovalo správne a stabilne. Autor však našiel chybu, hodiny boli pozadu o jednu sekundu za hodinu, po dlhú dobu by to bola veľká chyba.


Po preštudovaní tohto problému sa zistilo, že pôvodné Arduino Uno používa keramický rezonátor a chýba mu presnosť merania času v dlhých obdobiach. Najracionálnejším riešením bolo kúpiť hodiny v reálnom čase a vďaka tomuto modulu čas na hodinách po vypnutí nezmizne. Autor kúpil modul Grove RTC od spoločnosti Seeed Studio. Je to hotová doska s hodinovým čipom. Autor prepojil kolíky modulu SDA a SCL s Arduino na kolíkoch A4 a A5, GND k zemi. Pretože výkon 5 V zaberá doska s hodinami, modul nebol pripojený. Autor sa rozhodol napájať modul z jedného z digitálnych pinov, ktorý bude neustále napájaný.Autor tiež potreboval upraviť zdrojový kód a pridať knižnicu hodín v reálnom čase.


Zostava hodiniek
Po dokončení dlhej práce na kóde je čas dať zariadeniu kompletný vzhľad a preniesť ho z prúžku na dosku s plošnými spojmi. Najprv bolo potrebné vykonať zapojenie do dosky. Fritzing sa použil na to, pretože autor už mal predstavu o vzhľade hodiniek a zostavil schému zariadenia. Autor tiež manuálne vystopoval dosku, trvalo to veľa času.
Projekt výroby dosiek plošných spojov:


Výroba PCB bola objednaná v Číne. Seeed Studio má službu Fusion PCB. Prostredníctvom Fritzingu bol súbor exportovaný do formátu Extended Gerber, s ktorým pracuje veľa výrobcov dosiek. O dva týždne neskôr dostal autor v pošte dlho očakávaný poplatok.


Zostalo len spájkovať na doske už len trochu zaprášených častí. Konečný výsledok po spájkovaní vyzeral omnoho lepšie, ako je usporiadanie na tyčinke.


Autor projektu tvrdo pracoval dlho a dostal, čo chcel - jedinečné binárne hodiny s časovačom a budíkom. Pomocou priehradky na batérie môžete hodinky umiestniť kdekoľvek. Arduino splnil očakávania a úplne zvládol túto úlohu.

binclock-master.zip [23,53 Kb] (stiahnuté: 175)
10
10
10

Pridajte komentár

    • usmievaťúsmevyxaxaokdontknowyahoonea
      bossškrabanecoklamaťánoáno, ánoútočnýtajomstvo
      ľutovaťtanecdance2dance3odpusteniehelpnápoje
      zastávkapriateliadobrýgoodgoodpíšťalaomdlieťjazyk
      dymtlieskanieCraydeklarovaťvýsměšnýdon-t_mentiondownload
      teplohnevlivýlaugh1MDAstretnutiemoskingnegatívny
      not_ipražená kukuricatrestaťprečítaťvydesiťzdesenievyhľadávať
      posmechthank_youtototo_clueumnikakútnasúhlasiť
      zlýbeeeblack_eyeblum3očervenieťchvastanienuda
      cenzurovanéžartysecret2hroziťvíťazstvoyusun_bespectacled
      shokrešpektlolprevedievitajtekrutoyya_za
      ya_dobryipomocníkne_huliganne_othodiFLUDzákazzavrieť

Odporúčame vám prečítať si:

Ruku pre smartphone ...