Kazalo:

Arduino digitalna ura, sinhronizirana s 60 Hz daljnovodom: 8 korakov (s slikami)
Arduino digitalna ura, sinhronizirana s 60 Hz daljnovodom: 8 korakov (s slikami)

Video: Arduino digitalna ura, sinhronizirana s 60 Hz daljnovodom: 8 korakov (s slikami)

Video: Arduino digitalna ura, sinhronizirana s 60 Hz daljnovodom: 8 korakov (s slikami)
Video: 50-500 В переменного тока, 0-100 А, квадратный цифровой светодиодный вольтметр, амперметр 2024, November
Anonim
Arduino digitalna ura, sinhronizirana s 60 Hz daljnovodom
Arduino digitalna ura, sinhronizirana s 60 Hz daljnovodom

Ta digitalna ura, ki temelji na Arduinu, je sinhronizirana s 60 Hz daljnovodom. Ima preprost in poceni skupni anodni 4 -mestni 7 -segmentni zaslon, ki prikazuje ure in minute. Uporablja navzkrižni detektor za zaznavanje, ko prihajajoči sinusni val 60 Hz prečka točko ničelne napetosti in izpelje kvadratni val 60 Hz.

V kratkih časovnih obdobjih se lahko frekvenca vhodnega sinusnega vala z daljnovoda zelo malo spreminja zaradi obremenitve, vendar v daljšem časovnem obdobju zelo natančno v povprečju znaša 60Hz. To lahko izkoristimo za pridobivanje časovnega vira za sinhronizacijo ure.

1. korak: Shema vezja

Shema vezja
Shema vezja

Obstajata dve različici vezja, odvisno od tega, ali želite uporabiti transformator s sredinsko pipo ali brez, v vsakem primeru je delovanje vezja skoraj enako. Za to gradnjo sem uporabil stenski adapter (brez osrednjega pipe), ki oddaja 12V AC. Za opis vezja bom uporabil to zasnovo (diagram digitalne ure 1). Upoštevajte, da je pomembno, da uporabite stenski adapter, ki oddaja 12V AC ne 12V DC, da lahko za sinhronizacijo dotaknemo sinusni val izmeničnega toka. Verjetno bi lahko uporabili tudi transformator, ki oddaja 9V AC, odstrani R19 in tudi deluje, vendar je 12V zelo pogosto na voljo. Tako deluje vezje:

120V AC pri 60Hz se s transformatorjem TR1 pretvori v 12V AC. Ta se napaja na diodo D4 in se odpravi tako, da se na kondenzator C3 napaja le +ve napetost in se z valovanjem zgladi na približno DC. Napetost na C3 se preko upora R19 napaja v regulator napetosti 7805 (U6). R19 se uporablja za zmanjšanje napetosti na C3, ki je bila v mojem primeru izmerjena pri približno 15VDC. To lahko regulira 7805, vendar mora s to stopnjo vnosa 7805 pasti za približno 10VDC in se zaradi tega precej segreje. Z uporabo R19 za znižanje napetosti na približno 10VDC preprečimo, da bi se U6 preveč segrel. To torej ni učinkovita tehnika pretvorbe energije, vendar deluje za naše namene. OPOMBA: Tukaj uporabite vsaj 1/2 W upor ali več. Vezje porabi približno 55 ma, zato je poraba energije v R19 približno 1/3 W glede na P = I ** 2*R ali P = 55ma x 55ma x 120 ohmov = 0,363 W. Naslednji U6 oddaja čisti 5V DC s C4 in C5 na izhodu, da filtrira vsak šum na 5V daljnovodu. Ta 5V DC napaja vse IC na plošči.

Iz TR1 vzamemo tudi vzorec nefiltriranega izmeničnega signala in ga vnesemo v potenciometer RV1, ki se uporablja za prilagajanje nivoja, ki se napaja na detektor navzkrižnega prehoda. R18 in R17 tvorita razdelilnik napetosti za nadaljnje zmanjšanje ravni vhodne izmenične napetosti. Ne pozabite, da to prihaja pri 12V AC in ga moramo zmanjšati na manj kot 5 V, da bo deloval z našim detektorjem navzkrižnega preklopa, ki je samo napaja 5VDC. R15 in R16 zagotavljata omejevanje toka, medtem ko sta D1 in D2 namenjena preprečevanju prenapetosti op-amp U5. V prikazani konfiguraciji se bo izhod U5 na zatiču 1 spreminjal med +5V in 0V vsakič, ko se vhodni sinusni val spremeni iz pozitivnega v negativnega. Ta ustvari kvadratni val 60 Hz, ki se napaja v mikrokrmilnik U4. Program, naložen na U4, nato uporabi ta 60Hz kvadratni val za povečanje ure vsako minuto in uro. Kako to storiti, bomo obravnavali v razdelku o programski opremi in v komentarjih na programsko opremo.

U7 se uporablja premični register 74HC595, ker imamo na mikroprocesorju omejeno število digitalnih zatičev, zato se uporablja za razširitev števila izhodov. Na mikroprocesorju uporabljamo 4 digitalne zatiče, lahko pa nadzorujemo 7 segmentov na zaslonu prek 74HC595. To dosežemo s premikom vnaprej določenih vzorcev bitov, shranjenih v mikrokrmilniku, in ki predstavljajo vsako prikazano številko, v register premikov.

Zaslon, ki ga uporabljamo tukaj, je skupna anoda, zato moramo za vklop segmenta obrniti ravni signala, ki prihajajo iz 74HC595. Ko je treba vklopiti segment, bo signal, ki prihaja iz izhodnega zatiča 74HC595, na +5V, vendar potrebujemo zatič, ki ga napaja na zaslonu, na 0V, da vklopimo ta segment zaslona. Za to potrebujemo šesterokotne pretvornike U2 in U3. Na žalost en pretvorniški IC lahko prenese samo 6 inverzij, zato potrebujemo dve od njih, čeprav pri drugi uporabljamo le eno od 6 vrat. Na žalost potratno. Morda se boste vprašali, zakaj tukaj ne uporabite skupnega prikaza tipa katode in odpravite U2 in U3? No, odgovor je, da lahko, slučajno imam pri dobavi delov skupno anodo. Če imate ali želite uporabiti skupni katodni zaslon, preprosto odstranite U2 in U3 ter ponovno povežite Q1 - Q4, tako da so tranzistorski kolektorji priključeni na prikazovalne zatiče, oddajniki tranzistorjev pa na ozemljitev. Q1 - Q4 nadzoruje, kateri od štirih 7 -segmentnih zaslonov je aktiven. To nadzira mikrokrmilnik preko zatičev, priključenih na osnovo tranzistorjev Q1 - Q4.

Gumbi za povečanje in nastavitev bodo uporabljeni za ročno nastavitev pravilnega časa ure, ko gre za dejansko uporabo ure. Ko enkrat pritisnete gumb Set, lahko s tipko Increment prečkate ure, prikazane na zaslonu. Ko znova pritisnete gumb Set, lahko z gumbom za povečanje stopite skozi minute, prikazane na zaslonu. Ko pritisnete gumb Set še tretjič, se čas nastavi. R13 in R14 nizek zatiči mikrokrmilnika, povezani s temi gumbi, ko jih ne uporabljate.

Upoštevajte, da smo tukaj odstranili U4 (Atmega328p) s tipične prototipne plošče Arduino UNO in jo postavili na prototipno ploščo skupaj s preostalim vezjem. Če želite to narediti, moramo zagotoviti najmanj kristal X1 in kondenzatorja C1 in C2, da zagotovimo vir ure za mikrokrmilnik, vezni zatič 1, ponastavitveni zatič, visoko in zagotovimo moč 5 VDC.

2. korak: Načrtujte vezje

Breadboard Your Circuit
Breadboard Your Circuit
Breadboard Your Circuit
Breadboard Your Circuit

Ne glede na to, ali vezje gradite natančno tako, kot je prikazano na diagramu vezja, ali morda uporabljate nekoliko drugačen transformator, tip zaslona ali druge komponente, morate najprej narediti vezje, da zagotovite njegovo delovanje in da razumete, kako deluje.

Na slikah lahko vidite, da je vse skupaj zahtevalo nekaj plošč in tudi ploščo Arduino Uno. Torej, če želite programirati mikrokrmilnik ali poskusiti ali spremeniti programsko opremo, boste najprej potrebovali mikrokontroler IC na plošči UNO, tako da lahko nanj in računalnik priključite kabel USB, da naložite program ali spremenite programsko opremo.

Ko ura začne delovati na plošči in je mikroprocesor programiran, ga lahko odklopite in priključite v vtičnico na zadnji vgrajeni trajni uri na prototipni plošči. Pri tem upoštevajte varnostne ukrepe proti statiki. Pri rokovanju z mikroprocesorjem uporabite antistatični zapestni trak.

3. korak: Konstrukcija vezja na protoboru

Konstrukcija vezja na protoboru
Konstrukcija vezja na protoboru
Konstrukcija vezja na protoboru
Konstrukcija vezja na protoboru

Vezje je zgrajeno na kosu prototipne plošče in ožičeno od točke do točke z uporabo žice za zavijanje žice AWG #30. Zagotavlja trden in zanesljiv rezultat. Ker ima transformator, ki ga imam, na koncu kabla moški 5 -milimetrski vtič, sem na zadnjo stran plošče namestil ustrezno žensko vtičnico z rezanjem, upogibanjem in vrtanjem kosa 1/2 širokega aluminijastega traku po meri nosilec in ga nato z majhnimi 4-40 maticami in vijaki pritrdili na ploščo. Lahko bi preprosto odrezali konektor in spajkali preostale napajalne žice na ploščo ter prihranili približno 20 minut dela, vendar nisem hotel, da je transformator trajno pritrjen do deske.

4. korak: Ustvarite vtičnico za zaslon in mu dajte noge

Ustvarjanje vtičnice za zaslon in podajanje nog
Ustvarjanje vtičnice za zaslon in podajanje nog
Ustvarjanje vtičnice za zaslon in podajanje nog
Ustvarjanje vtičnice za zaslon in podajanje nog
Ustvarjanje vtičnice za zaslon in podajanje nog
Ustvarjanje vtičnice za zaslon in podajanje nog

Ker ima zaslon 16 zatičev, po 8 na vsaki strani, z razmikom med zatiči, ki je širši od standardne 16 -polne IC vtičnice, moramo prilagoditi velikost vtičnice, da se prilega zaslonu. To lahko storite tako, da preprosto uporabite par rezalnikov za žico, da odrežete plastiko, ki povezuje obe strani vtičnice, ju ločite in ločeno spajkate na ploščo z razmikom, ki se ujema z razmikom nožic na zaslonu. To je koristno, da vam ne bo treba spajkati neposredno na zatiče zaslona in izpostavljati zaslona prekomerni toploti. Na zgornji plošči na zgornji sliki lahko vidite vtičnico, v katero sem to naredil.

Da bi zaslon pravilno vstal, sem pritrdil dva 1 vijaka na spodnji dve vogalni luknji prototipne plošče, kot je prikazano na fotografijah, da naredim preprosto stojalo. To je bilo precej nagajivo, zato če to storite, boste morda želite na zadnjo stran vijakov postaviti nekaj težkega, da se to stabilizira.

5. korak: Preverjanje ožičenja vezja in priprava na kalibracijo

Preverjanje ožičenja vezja in priprava na kalibracijo
Preverjanje ožičenja vezja in priprava na kalibracijo

Ko je tiskano vezje povezano, vendar preden priključite IC -je ali prikazovalnik ali ga vklopite, je dobro preveriti povezave plošče z DVM -jem. Večino DVM -jev lahko nastavite tako, da piskajo, ko obstaja neprekinjenost. V tem načinu nastavite svoj DVM in po diagramu vezja preverite čim več povezav vezja. Preverite, ali je med +5V in ozemljitvijo odprto vezje ali blizu njega. Vizualno preverite, ali so vse komponente priključene na pravilne nožice.

Nato priključite transformator na vezje in ga vklopite. Preden priključite IC -je ali zaslon, preverite, ali imate na 5 -voltnem vodniku natančno 5 V DC z obsegom ali DVM.

Naslednjič priključite SAMO Op-Amp U5 IC v pripravi na naslednji korak. Tu bomo preverili, ali naše navzkrižno vezje ustvarja kvadratni val in potenciometer RV1 prilagodili za čisti signal 60 Hz.

Korak 6: Kalibracija vezja

Kalibracija vezja
Kalibracija vezja
Kalibracija vezja
Kalibracija vezja

Edina kalibracija, ki jo je treba izvesti, je prilagoditev potenciometra RV1 za pravilno raven signala, ki napaja detektor navzkrižnega prehoda. To lahko storite na dva načina:

1. Sondo merilnika postavite na zatič 1 U5 in priključite ozemljitveno žico merilnika na ozemljitev vezja. Nato nastavite RV1, dokler ne dobite čistega kvadratnega vala, kot je prikazano na zgornji sliki. Če tako ali drugače nastavite RV1 predaleč, ne boste imeli nobenega kvadratnega vala ali popačenega kvadratnega vala. Prepričajte se, da je frekvenca kvadratnega vala 60 Hz. Če imate sodoben obseg, vam bo verjetno povedal frekvenco. Če imate starodaven obseg kot jaz, potem zagotovite, da je obdobje kvadratnega vala približno 16,66 ms ali 1/60 sekund.

2. S frekvenčnim števcem ali DVM v frekvenčnem načinu izmerite frekvenco na Pin 1 U5 in nastavite RV1 za točno 60 Hz.

Ko je kalibracija končana, izklopite vezje in priključite vse IC -je ter zaslon, da dokončate konstrukcijo vezja.

Korak 7: Program Arduino

Program je v celoti komentiran, tako da lahko ugotovite podrobnosti vsakega koraka. Zaradi zapletenosti programa je težko opisati vsak korak, vendar na zelo visoki ravni deluje tako:

Mikroprocesor sprejme dohodni kvadratni val 60 Hz in šteje 60 ciklov ter po vsakih 60 ciklih poveča število sekund. Ko število sekund doseže 60 sekund ali 3600 ciklov, se število minut poveča in število sekund se ponastavi na nič. Ko število minut doseže 60 minut, se število ur poveča in število minut se ponastavi na nič. štetje ur se po 13 urah ponastavi na 1, torej je to ura 12 ur. Če želite 24 -urno uro, preprosto spremenite program in po 24 urah ponastavite ure na nič.

To je poskusni projekt, zato sem poskušal uporabiti zanko Do-While za preprečitev odklona stikala na gumbih Set in Increment. Deluje razmeroma dobro. Ko enkrat pritisnete gumb Set, lahko s tipko Increment prečkate ure, prikazane na zaslonu. Ko znova pritisnete gumb Set, lahko z gumbom za povečanje stopite skozi minute, prikazane na zaslonu. Ko pritisnete gumb Set še tretjič, se nastavi čas in ura začne teči.

Vzorci 0 in 1, ki se uporabljajo za prikaz vseh številk na 7-segmentnih zaslonih, so shranjeni v matriki, imenovani Seven_Seg. Odvisno od trenutnega časa ure se ti vzorci vnesejo v IC 74HC595 in pošljejo na zaslon. Katera od 4 številk zaslona je kadar koli vklopljena za sprejem teh podatkov, mikroprocesor nadzoruje preko zaslona Dig 1, 2, 3, 4 nožice. Ko je vezje vklopljeno, program najprej zažene preskusno rutino, imenovano Test_Clock, ki pošlje pravilne številke, da osvetli vsak zaslon s štetjem od 0 do 9. Torej, če to vidite, ko se vklopite, veste, da ste vse pravilno zgradili.

8. korak: Seznam delov

1 - Transformator 120VAC do 12VAC približno 100 mA ali več 1 - Prototipna plošča približno 3,5 "x 3,5" 1 - 4 -mestni 7 -segmentni zaslon YSD -439K2B -35 ali enakovreden (Sparkfun) 2 - Mali gumbi za pritrditev na tiskano vezje NO (kateri koli) 4 - 2N3904 NPN tranzistorji 8 - 330 ohmski upori 2 - 74LS04 Šestkotni pretvorniki 1 - 74HC595 zaporedni do vzporedni 8 -bitni premični register 1 - LM358 OP -AMP (primerjalnik) 1 - ATMEGA328P mikrokrmilnik (Creatron) 4 - 4,7K upori 7 - 10K upori 1 - 1N4007 ali 1N4001 dioda diode1 - 120 ohm, 1/2W ali 1W upor1 - 10K potenciometer za pritrditev na tiskano vezje 1 - 470uF 25V kondenzator 1 - 7805 TO220 regulator napetosti paketa 1 - 10uF 10V kondenzator 2 - 0,1 uF 10V kondenzatorji 1 - 16MHz kristal (Sparkfun) 2 - 22pF kondenzatorji 1 - ženski priključek Neobvezno za vgradnjo moškega vtiča, če obstaja na vaš stenski transformator) 2 - 16 -polne IC -vtičnice 2 - 14 -polne IC -vtičnice 1 - 8 -polna IC -vtičnica 1-28 -polna IC -vtičnica 2 - 1 "dolga pribl. 4 ali 6 vijakov in ustrezne matice 2 - 1/ 4 "dolgi vijaki #4-40 in ustrezne matice 1 - kos 1/2" širokega, ravnega aluminijastega traku po meri in izvrtane po velikosti

#30 AWG žica za zavijanje#22 AWG wireSolder

Priporočena: