Obsah:

Digitálne hodiny Arduino synchronizované pomocou 60 Hz elektrického vedenia: 8 krokov (s obrázkami)
Digitálne hodiny Arduino synchronizované pomocou 60 Hz elektrického vedenia: 8 krokov (s obrázkami)

Video: Digitálne hodiny Arduino synchronizované pomocou 60 Hz elektrického vedenia: 8 krokov (s obrázkami)

Video: Digitálne hodiny Arduino synchronizované pomocou 60 Hz elektrického vedenia: 8 krokov (s obrázkami)
Video: DIGITÁLNÍ HODINY stavba, princip... 2024, November
Anonim
Digitálne hodiny Arduino synchronizované pomocou 60 Hz elektrického vedenia
Digitálne hodiny Arduino synchronizované pomocou 60 Hz elektrického vedenia

Tieto digitálne hodiny založené na Arduine sú synchronizované pomocou 60 Hz elektrického vedenia. Má jednoduchý a lacný spoločný anódový 4 -miestny 7 -segmentový displej, ktorý zobrazuje hodiny a minúty. Používa krížový detektor na detekciu, keď prichádzajúca 60 Hz sínusová vlna prekročí bod nulového napätia a odvodí 60 Hz štvorcovú vlnu.

V krátkych časových obdobiach sa frekvencia prichádzajúcej sínusovej vlny z elektrického vedenia môže veľmi líšiť v dôsledku zaťaženia, ale v dlhých časových obdobiach sa pohybuje v priemere na 60 Hz veľmi presne. Môžeme to využiť na odvodenie zdroja časovania na synchronizáciu našich hodín.

Krok 1: Schéma zapojenia

Schéma zapojenia
Schéma zapojenia

Existujú dve verzie obvodu v závislosti od toho, či chcete použiť transformátor so stredovým odbočením alebo bez, v oboch prípadoch je činnosť obvodu takmer identická. Na tento účel som použil nástenný adaptér (bez stredového kohútika), ktorý má výstup 12 V AC. Tento návrh (schéma obvodu Digital Clock1) použijem na opis obvodu. Všimnite si toho, že je dôležité použiť nástenný adaptér, ktorý napája 12 V AC, nie 12 V DC, aby sme mohli načasovať pripojenie k sínusovej vlne striedavého prúdu. Pravdepodobne môžete použiť aj transformátor s výstupom 9 V AC, odstrániť R19 a tiež ho uviesť do prevádzky, ale napätie 12V je veľmi bežne dostupné. Takto funguje obvod:

120 V AC pri 60 Hz sa transformuje na 12 V AC transformátorom TR1. Ten je privádzaný do diódy D4 a usmerňovaný tak, že do kondenzátora C3 je privádzané a vyhladzované na približne DC s zvlnením iba plusové napätie. Napätie na C3 je privádzané do regulátora napätia 7805 (U6) cez odpor R19. R19 sa používa na zníženie napätia na C3, ktoré bolo v mojom prípade namerané pri približne 15 VDC. To môže byť regulované 7805, ale s touto úrovňou vstupu musí 7805 klesnúť približne o 10 VDC a v dôsledku toho sa poriadne zahreje. Použitím R19 na zníženie napätia na približne 10 VDC zabránime prílišnému zahriatiu U6. Nejde teda o efektívnu techniku premeny energie, ale na naše účely funguje. POZNÁMKA: Tu použite odpor najmenej 1/2W alebo viac. Obvod čerpá asi 55 ma, takže stratový výkon v R19 je asi 1/3W na základe P = I ** 2*R alebo P = 55ma x 55ma x 120 ohmov = 0,363W. Ďalej U6 výstupy čistých 5V DC s výstupmi C4 a C5 na filtrovanie akéhokoľvek šumu na 5V elektrickom vedení. Tento 5V DC napája všetky integrované obvody na doske.

Z TR1 tiež odoberieme vzorku nefiltrovaného striedavého signálu a napájame ho do potenciometra RV1, ktorý slúži na úpravu úrovne privádzanej do krížového detektora. R18 a R17 tvoria delič napätia na ďalšie zníženie úrovne prichádzajúceho striedavého napätia. Pamätajte si, že toto prichádza pri 12 V AC a musíme ho znížiť na menej ako 5 V, aby fungovalo s naším krížovým detektorom, ktorý je iba napájané 5 VDC. R15 a R16 poskytujú obmedzenie prúdu, zatiaľ čo D1 a D2 majú zabrániť preťaženiu operačného zosilňovača U5. V zobrazenej konfigurácii sa výstup U5 na kolíku 1 bude striedať medzi +5 V a 0 V vždy, keď sa prichádzajúca sínusová vlna zmení z kladnej na zápornú. Toto generuje 60 Hz štvorcovú vlnu, ktorá je privádzaná do mikrokontroléra U4. Program načítaný na U4 potom používa túto 60 Hz štvorcovú vlnu na zvýšenie hodín každú minútu a hodinu. Ako sa to robí, bude prediskutované v sekcii softvérového programu a v komentároch k softvéru.

U7 sa používa posuvný register 74HC595, pretože na mikroprocesore máme obmedzený počet digitálnych pinov, takže sa používa na rozšírenie počtu výstupov. Na mikroprocesore používame 4 digitálne piny, ale pomocou 74HC595 môžeme ovládať 7 segmentov na displeji. To sa dosiahne posunutím vopred určených vzorov bitov uložených v mikrokontroléri, ktoré predstavujú každú číslicu, ktorá sa má zobraziť, do posuvného registra.

Tu použitý displej je bežnou anódou, preto musíme invertovať úrovne signálu vychádzajúceho zo 74HC595, aby sa zapol segment. Keď by mal byť segment zapnutý, signál prichádzajúci z výstupného kolíka 74HC595 bude mať +5 V, ale na zapnutie tohto segmentu displeja potrebujeme, aby kolík, ktorý napája na displej, bol na 0 V. Na to potrebujeme hexadecimálne meniče U2 a U3. Jeden invertorový integrovaný obvod bohužiaľ zvládne iba 6 inverzií, takže ich potrebujeme dve, aj keď na druhom používame iba jednu zo 6 brán. Žiaľ zbytočné. Môžete sa opýtať, prečo tu nepoužiť bežný katódový typ displeja a nevylúčiť U2 a U3? Odpoveď je, že môžete, ja mám náhodou v zásobe náhradných dielov spoločný typ anódy. Ak máte alebo chcete použiť bežný katódový typ displeja, stačí eliminovať U2 a U3 a prepojiť Q1 - Q4 tak, aby boli tranzistorové kolektory pripojené k pinom displeja a tranzistorové žiariče boli pripojené k zemi. Q1 - Q4 riadi, ktorý zo štyroch 7 -segmentových displejov je aktívny. Toto je riadené mikrokontrolérom prostredníctvom pinov spojených so základňou tranzistorov Q1 - Q4.

Tlačidlá prírastku a nastavenia sa použijú na manuálne nastavenie správneho času, pokiaľ ide o skutočné používanie hodín. Keď je tlačidlo Nastavenie stlačené raz, pomocou tlačidla Zvýšiť je možné prechádzať hodinami zobrazenými na displeji. Keď znova stlačíte tlačidlo Set, pomocou tlačidla prírastku môžete prechádzať minútami zobrazenými na displeji. Po treťom stlačení tlačidla Nastaviť sa nastaví čas. R13 a R14 ťahajú kolíky mikrokontroléra súvisiace s týmito tlačidlami nízko, keď sa nepoužívajú.

Všimnite si toho, že sme tu stiahli U4 (Atmega328p) z typickej prototypovej dosky Arduino UNO a položili sme ju na prototypovú dosku so zvyškom nášho obvodu. Aby sme to urobili, musíme prinajmenšom poskytnúť kryštál X1 a kondenzátory C1 a C2, aby sme poskytli zdroj hodín pre mikrokontrolér, viazací kolík 1, resetovací kolík, vysoký a poskytujúci napájanie 5 VDC.

Krok 2: Breadboard váš obvod

Breadboard váš obvod
Breadboard váš obvod
Breadboard váš obvod
Breadboard váš obvod

Bez ohľadu na to, či budujete obvod presne tak, ako je to znázornené na schéme zapojenia, alebo či používate mierne odlišný transformátor, typ displeja alebo iné komponenty, najskôr by ste mali obvod zapojiť, aby ste zaistili, že funguje a že rozumiete jeho fungovaniu.

Na obrázkoch môžete vidieť, že na chlebovanie celej veci bolo potrebných niekoľko dosiek a doska Arduino Uno. Aby ste mohli naprogramovať mikrokontrolér alebo experimentovať alebo vykonávať zmeny v softvéri, budete spočiatku potrebovať integrovaný obvod mikrokontroléra na doske UNO, aby ste k nemu a k počítaču mohli pripojiť kábel USB a nahrať program alebo vykonať zmeny softvéru.

Akonáhle začnú hodiny pracovať na doske a máte naprogramovaný mikrokontrolér, môžete ich odpojiť a zapojiť do zásuvky na konečných budovateľských hodinách na prototype dosky. Nezabudnite pri tom dodržiavať antistatické opatrenia. Pri manipulácii s mikroprocesorom používajte antistatický remienok na zápästie.

Krok 3: Výstavba obvodu na Protoboarde

Stavba obvodu na Protoboarde
Stavba obvodu na Protoboarde
Stavba obvodu na Protoboarde
Stavba obvodu na Protoboarde

Obvod je konštruovaný na kusu prototypovej dosky a zapojený bod -bod pomocou drôtu omotaného drôtom AWG #30. Poskytuje tvrdý a spoľahlivý výsledok. Pretože transformátor, ktorý mám, má na konci kábla zástrčku 5 mm, namontoval som zodpovedajúcu zásuvku na zadnú stranu dosky tak, že som narezal, ohnul a vyvŕtal kus 1/2 palcového plochého hliníkového pásu, aby som si vyrobil vlastný. držiak a potom ho priskrutkujte na dosku malými 4-40 maticami a skrutkami. Môžete jednoducho odrezať konektor a spájkovať zvyšné napájacie káble k doske a ušetriť si asi 20 minút práce, ale nechcel som, aby bol transformátor trvalo pripevnený na dosku.

Krok 4: Vytvorenie zásuvky pre displej a rozdávanie nôh

Vytvorenie zásuvky pre displej a rozdávanie nôh
Vytvorenie zásuvky pre displej a rozdávanie nôh
Vytvorenie zásuvky pre displej a rozdávanie nôh
Vytvorenie zásuvky pre displej a rozdávanie nôh
Vytvorenie zásuvky pre displej a rozdávanie nôh
Vytvorenie zásuvky pre displej a rozdávanie nôh

Pretože displej má 16 pinov, 8 na každej strane, s rozstupom pinov, ktorý je širší ako štandardná 16 -pinová zásuvka IC, musíme prispôsobiť veľkosť zásuvky tak, aby zodpovedala zobrazeniu. Môžete to urobiť tak, že jednoducho použijete dvojicu nožníc na drôt na odstrihnutie plastu spájajúceho dve strany zásuvky, oddelíte ich a oddelene ich spájkujete s doskou s rozstupom, ktorý zodpovedá rozstupu kolíkov na displeji. Je výhodné to urobiť tak, aby ste sa nemuseli spájkovať priamo s kolíkmi displeja a vystavovať displej nadmernému teplu. Zásuvku, do ktorej som to urobil, môžete vidieť v hornej časti dosky na obrázku vyššie.

Aby sa displej správne postavil, priskrutkoval som dva 1 skrutky do spodnej časti dvoch rohových otvorov prototypovej dosky, ako je znázornené na fotografiách, aby som vytvoril jednoduchý stojan. Toto bolo dosť nápadné, takže ak to urobíte, môžete chcete na zadnej strane skrutiek položiť niečo ťažké, aby ste to stabilizovali.

Krok 5: Kontrola zapojenia obvodovej dosky a príprava na kalibráciu

Kontrola zapojenia obvodovej dosky a príprava na kalibráciu
Kontrola zapojenia obvodovej dosky a príprava na kalibráciu

Keď je doska s plošnými spojmi zapojená, ale pred zapojením integrovaných obvodov alebo displeja alebo pred zapnutím je vhodné skontrolovať zapojenie dosky pomocou DVM. Väčšinu DVM môžete nastaviť tak, aby v prípade kontinuity pípali. Nastavte DVM v tomto režime a potom podľa schémy zapojenia skontrolujte čo najviac zapojení obvodov. Skontrolujte, či medzi bodmi +5 V a uzemnením nie je otvorený obvod alebo v jeho blízkosti. Vizuálne skontrolujte, či sú všetky súčasti pripojené k správnym kolíkom.

Potom pripojte transformátor k obvodu a zapnite ho. Pred zapojením akýchkoľvek integrovaných obvodov alebo displeja skontrolujte, či máte na 5V napájacej lište presne 5V DC, buď pomocou ďalekohľadu, alebo DVM.

Ďalej zapojte IBA OP-Amp U5 IC ako prípravu na ďalší krok. Tu skontrolujeme, či náš krížový obvod generuje štvorcovú vlnu, a upravíme potenciometer RV1 na čistý signál 60 Hz.

Krok 6: Kalibrácia obvodu

Kalibrácia obvodu
Kalibrácia obvodu
Kalibrácia obvodu
Kalibrácia obvodu

Jedinou kalibráciou, ktorú je potrebné vykonať, je nastaviť potenciometer RV1 na správnu úroveň signálu napájajúceho krížový detektor. Existujú dva spôsoby, ako to urobiť:

1. Nasaďte sondu rozsahu na kolík 1 na U5 a uistite sa, že ste uzemňovací vodič sondy sondy pripojili k uzemneniu obvodu. Potom nastavte RV1, kým nebudete mať čistú štvorcovú vlnu, ako je to znázornené na obrázku vyššie. Ak nastavíte RV1 príliš ďaleko jedným alebo druhým spôsobom, buď nebudete mať žiadnu štvorcovú vlnu alebo skreslenú štvorcovú vlnu. Zaistite, aby frekvencia štvorcovej vlny bola 60 Hz. Ak máte moderný rozsah, pravdepodobne vám to povie frekvenciu. Ak máte starodávny rozsah ako ja, zaistite, aby bola doba štvorcovej vlny približne 16,66 ms alebo 1/60 s.

2. Pomocou frekvenčného počítadla alebo DVM v frekvenčnom režime zmerajte frekvenciu na vývode 1 U5 a nastavte RV1 na presne 60 Hz.

Po dokončení tejto kalibrácie vypnite obvod a zapojte všetky integrované obvody a displej, aby ste dokončili stavbu obvodu.

Krok 7: Program Arduino

Program je plne komentovaný, aby ste mohli zistiť podrobnosti o každom kroku. Vzhľadom na zložitosť programu je ťažké opísať každý krok, ale na veľmi vysokej úrovni to funguje takto:

Mikroprocesor prijíma prichádzajúcu 60 Hz štvorcovú vlnu a počíta 60 cyklov a zvyšuje počet sekúnd po každých 60 cykloch. Akonáhle počet sekúnd dosiahne 60 sekúnd alebo 3600 cyklov, počet minút sa zvýši a počet sekúnd sa vynuluje. Akonáhle počet minút dosiahne 60 minút, počet hodín sa zvýši a počet minút sa vynuluje. počet hodín sa po 13 hodinách resetuje na 1, takže ide o 12 -hodinový formát. Ak chcete 24 -hodinový formát, zmeňte program tak, aby sa hodiny po 24 hodinách vynulovali.

Ide o experimentálny projekt, preto som sa pokúsil použiť slučku Do-While na potlačenie odrazu spínača na tlačidlách Nastaviť a Zvýšiť. Funguje to primerane dobre. Keď raz stlačíte tlačidlo Set, pomocou tlačidla Increment môžete prechádzať hodinami zobrazenými na displeji. Keď znova stlačíte tlačidlo Set, pomocou tlačidla prírastku môžete prechádzať minútami zobrazenými na displeji. Keď stlačíte tlačidlo Set tretíkrát, nastaví sa čas a hodiny sa spustia.

Vzory 0 a 1, ktoré sa používajú na zobrazenie každého čísla na 7-segmentových displejoch, sú uložené v poli s názvom Seven_Seg. V závislosti od aktuálneho času sú tieto vzory privedené do integrovaného obvodu 74HC595 IC a odoslané na displej. Ktorá zo 4 číslic displeja je súčasne zapnutá na príjem týchto údajov, je riadená mikroprocesorom prostredníctvom displeja Dig 1, 2, 3, 4 kolíky. Keď je obvod zapojený, program najskôr spustí testovaciu rutinu s názvom Test_Clock, ktorá odošle správne číslice na rozsvietenie každého displeja s počtom od 0 do 9. Takže ak to uvidíte pri zapnutí, viete, že ste všetko postavili správne.

Krok 8: Zoznam dielov

1 - Transformátor 120 VAC až 12 V AC, približne 100 mA alebo viac Tranzistory NPN8 - odpory 330 ohmov2 - 74LS04 Šestihranné meniče1 - 74HC595 sériový až paralelný 8 -bitový posuvný register 1 - LM358 OP -AMP (komparátor) 1 - mikrokontrolér ATMEGA328P (Creatron) 4 - 4,7K odpory 7 - 10K odpory 1 - 1N4007 alebo 1N4001 dióda2 - 1N4 diódy 1 - 120 ohm, 1/2W alebo 1W odpor Voliteľné, aby sa na váš nástenný transformátor hodil zástrčka (ak existuje)) 2 - 16 kolíkové IC zásuvky 2 - 14 kolíkových IC zásuviek 1 - 8 kolíková IC zásuvka 1 - 28 kolíková IC zásuvka 2 - 1 "dlhá približne #4 alebo #6 skrutky a zodpovedajúce matice2 - 1/ 4 "dlhé #4-40 skrutky a zodpovedajúce matice1 - kus 1/2" širokého plochého hliníkového pásu na mieru rezaného a vyvŕtané na mieru

#30 AWG drôt ovinutý drôtom#22 AWG drôt Spájka

Odporúča: