INHOUDSOPGAWE:

Arduino digitale klok gesinkroniseer deur die 60Hz -kraglyn: 8 stappe (met foto's)
Arduino digitale klok gesinkroniseer deur die 60Hz -kraglyn: 8 stappe (met foto's)

Video: Arduino digitale klok gesinkroniseer deur die 60Hz -kraglyn: 8 stappe (met foto's)

Video: Arduino digitale klok gesinkroniseer deur die 60Hz -kraglyn: 8 stappe (met foto's)
Video: 🇳🇱 DIGITALE ARDUINO KLOK MET ANIMATIE - Arduino project 2024, November
Anonim
Arduino digitale klok gesinkroniseer deur die 60Hz -kraglyn
Arduino digitale klok gesinkroniseer deur die 60Hz -kraglyn

Hierdie Arduino -gebaseerde digitale klok word gesinkroniseer deur die 60Hz -kraglyn. Dit het 'n eenvoudige en goedkoop algemene anode met 4 syfers van 7 segmente wat ure en minute wys. Dit gebruik 'n kruis -detektor om op te spoor wanneer die inkomende 60Hz sinusgolf die nulspanningspunt oorsteek en 'n vierkantsgolf van 60 Hz aflei.

Oor kort tydperke kan die frekwensie van die inkomende sinusgolf van die kraglyn baie effens wissel as gevolg van las, maar oor 'n lang tydperk is dit baie akkuraat tot 60Hz. Ons kan hiervan voordeel trek om 'n tydsbron te verkry om ons klok te sinchroniseer.

Stap 1: Die kringdiagram

Die kringdiagram
Die kringdiagram

Daar is twee weergawes van die stroombaan, afhangende van die vraag of u 'n transformator met 'n middelkraan of een sonder 'n kraan wil gebruik, in beide gevalle is die stroombaan byna identies. Vir hierdie konstruksie het ek 'n muuradapter (geen middelkraan) gebruik wat 12V AC lewer. Ek sal hierdie ontwerp (Digital Clock1 Circuit Diagram) gebruik vir die kringbeskrywing. Let daarop dat dit belangrik is om 'n muuradapter te gebruik wat 12V AC en nie 12V DC uitset nie, sodat ons die AC -sinusgolf kan inskakel vir tydsberekening. U kan waarskynlik ook 'n transformator gebruik wat 9V AC lewer, R19 verwyder en dit ook laat werk, maar 12V is baie algemeen beskikbaar. Dit is hoe die kring werk:

120V AC by 60Hz word deur transformator TR1 omgeskakel na 12V AC. Dit word na diode D4 gevoer en reggestel sodat slegs +ve spanning deur die kapasitor C3 na ongeveer gelykstroom met rimpeling gevoed word. Die spanning op C3 word via die weerstand R19 aan die 7805 spanningsreguleerder (U6) gevoer. R19 word gebruik om die spanning op C3 te verminder, wat in my geval op ongeveer 15VDC gemeet is. Dit kan deur die 7805 gereguleer word, maar met hierdie insetvlak moet die 7805 ongeveer 10VDC daal en word dit baie warm. Deur R19 te gebruik om die spanning na ongeveer 10VDC te verlaag, voorkom ons dat U6 te veel verhit. Dit is dus nie 'n doeltreffende kragomskakelingstegniek nie, maar dit werk vir ons doeleindes. LET WEL: gebruik hier ten minste 'n 1/2W -weerstand of meer. Die stroombaan trek ongeveer 55 ma, so die kragverlies in R19 is ongeveer 1/3W gebaseer op P = I ** 2*R of P = 55ma x 55ma x 120 ohm = 0.363W. Die volgende U6 lewer suiwer 5V DC met C4 en C5 uit op die uitset om enige geraas op die 5V -kraglyn te filter. Hierdie 5V DC voed alle IC's op die bord.

Van TR1 neem ons ook 'n voorbeeld van die ongefiltreerde wisselsignaal en voer dit in die potensiometer RV1 wat gebruik word om die vlak wat aan die kruis -detektor toegedien word, aan te pas. R18 en R17 vorm 'n spanningsverdeler om die vlak van wisselspanning wat verder inkom, verder te verlaag. Onthou dat dit by 12V wisselstroom inkom, en ons moet dit tot minder as 5 V verminder sodat dit kan werk met ons kruis -detektor wat slegs aangedryf deur 5VDC. R15 en R16 bied stroombeperking, terwyl D1 en D2 bedoel is om te veel bestuur van op-amp U5 te vermy. In die getoonde konfigurasie sal U5 se uitset op pen 1 wissel tussen +5V en 0V elke keer as die inkomende sinusgolf van positief na negatief verander. Dit genereer 'n vierkante golf van 60 Hz wat na die mikrobeheerder U4 gevoer word. Die program wat op U4 gelaai word, gebruik dan hierdie vierkante golf van 60Hz om elke minuut en uur die klok te verhoog. Hoe dit gedoen word, word bespreek in die afdeling oor die sagtewareprogram en in die kommentaar op die sagteware.

U7 die 74HC595 skofregister word gebruik omdat ons 'n beperkte aantal digitale penne op die mikroverwerker het, sodat dit gebruik word om die aantal uitsette uit te brei. Ons gebruik 4 digitale penne op die mikroverwerker, maar kan 7 segmente op die skerm beheer via die 74HC595. Dit word bereik deur voorafbepaalde patrone van bisse, wat in die mikrobeheerder geberg is, en wat elke syfer wat vertoon moet word, in die skofregister te skuif.

Die skerm wat hier gebruik word, is 'n algemene anode, dus moet ons die seine wat uit die 74HC595 kom, omkeer om 'n segment aan te skakel. As 'n segment aangeskakel moet word, sal die sein wat uit die 74HC595 -uitsetpen kom, by +5V wees, maar ons benodig die pen wat dit op die skerm voed, om 0V te wees om die skermsegment aan te skakel. Om dit te kan doen, benodig ons heksomvormers U2 en U3. Ongelukkig kan een omskakelaar IC slegs 6 inversies hanteer, so ons benodig twee daarvan, alhoewel ons op die tweede een slegs een van die 6 hekke gebruik. Gemors ongelukkig. U kan u afvra waarom u nie 'n gewone katode -skerm hier gebruik en U2 en U3 uitskakel nie? Die antwoord is: u kan, ek het toevallig 'n algemene anode -tipe in my onderdele. As u 'n gewone katode -tipe skerm wil of wil gebruik, skakel U2 en U3 uit en bedraad Q1 - Q4 sodat die transistorversamelaars aan die vertoonpenne gekoppel is en die transistor -emitters met die aarde verbind word. Q1 - Q4 beheer watter van die vier 7 -segment -skerms aktief is. Dit word deur die mikrobeheerder beheer, via die penne wat aan die basis van transistors Q1 - Q4 gekoppel is.

Die toename- en stelknoppies sal gebruik word om die regte kloktyd handmatig in te stel vir die werklike gebruik van die klok. As die Set -knoppie een keer ingedruk word, kan die Increment -knoppie gebruik word om deur die ure te gaan wat op die skerm verskyn. As u weer op die Set -knoppie druk, kan die toename -knoppie gebruik word om deur die minute wat op die skerm verskyn, te stap. As die Set -knoppie vir die derde keer ingedruk word, word die tyd ingestel. R13 en R14 trek die mikrobeheerspennetjies wat met hierdie knoppies verband hou, laag as dit nie gebruik word nie.

Let daarop dat ons U4 (Atmega328p) hier van die tipiese Arduino UNO prototipe bord verwyder het en dit saam met die res van ons kring op 'n prototipe bord geplaas het. Om dit te kan doen, moet ons ten minste kristal X1 en kapasitors C1 en C2 verskaf om 'n klokbron vir die mikrokontroleerder te voorsien, pen 1, die resetpen hoog te maak en 5VDC krag te verskaf.

Stap 2: Breadboard u kring

Breadboard jou kring
Breadboard jou kring
Breadboard jou kring
Breadboard jou kring

Ongeag of u die stroombaan presies bou soos in die kringdiagram aangedui word of 'n effens ander transformator, tipe skerm of ander komponente gebruik, moet u eers die kringbord aan die voorkant sit om te verseker dat dit werk en dat u verstaan hoe dit werk.

Op die foto's kan u sien dat 'n paar borde sowel as 'n Arduino Uno -bord vir die hele ding nodig was. Om die mikrobeheerder te kan programmeer of te eksperimenteer of veranderings aan die sagteware aan te bring, benodig u aanvanklik die mikrobeheerder -IC op 'n UNO -bord sodat u 'n USB -kabel daaraan en u rekenaar kan koppel om die program op te laai of sagteware te verander.

Sodra u die horlosie op die broodbord laat werk en u mikrobeheerder geprogrammeer het, kan u die stekker uit die stekker trek en dit in die stopcontact van u finale klok op die prototipe bord aansluit. Volg antistatiese voorsorgmaatreëls wanneer u dit doen. Gebruik 'n antistatiese polsband terwyl u die mikroverwerker hanteer.

Stap 3: Kringbou op Protoboard

Kringbaanbou op Protoboard
Kringbaanbou op Protoboard
Kringbaanbou op Protoboard
Kringbaanbou op Protoboard

Die kring is opgebou op 'n stuk prototipe bord en bedraad van punt tot punt met behulp van #30 AWG -wikkeldraad. Dit bied 'n taai en betroubare resultaat. Omdat die transformator wat ek het, 'n 5 mm -prop aan die einde van die kabel het, het ek die ooreenstemmende vroulike houer aan die agterkant van die bord gemonteer deur 'n stuk 1/2 breë plat aluminiumstrook te sny, te buig en te boor hakie vasgemaak en dit dan aan die bord vasgemaak met klein 4-40 moere en boute. U kan net die aansluiting afsny en die oorblywende kragdrade aan die bord soldeer en u ongeveer 20 minute se werk bespaar, maar ek wou nie hê dat die transformator permanent aangeheg is nie aan die raad.

Stap 4: Maak 'n houer vir die skerm en gee dit bene

Maak 'n houer vir die skerm en gee dit bene
Maak 'n houer vir die skerm en gee dit bene
Maak 'n houer vir die skerm en gee dit bene
Maak 'n houer vir die skerm en gee dit bene
Maak 'n houer vir die skerm en gee dit bene
Maak 'n houer vir die skerm en gee dit bene

Omdat die skerm 16 penne het, 8 aan elke kant, met 'n spasafstand wat wyer is as 'n standaard 16 -pen IC -aansluiting, moet ons die grootte van die aansluiting aanpas om by die skerm te pas. U kan dit doen deur eenvoudig 'n paar draadknipsels te gebruik om die plastiek wat die twee kante van die voetstuk verbind, af te sny, dit te skei en afsonderlik aan die bord te soldeer met 'n afstand wat ooreenstem met die spasiëring van die penne op die skerm. Dit is voordelig om dit te doen, sodat u nie direk aan die skermpenne hoef te soldeer nie en die skerm nie blootstel aan oormatige hitte nie. U kan die aansluiting waarmee ek dit gedoen het, aan die bokant van die bord op die foto hierbo sien.

Om die skerm reg te laat staan, het ek twee 1 boute aan die onderste twee hoekgate van die prototipe bord vasgemaak, soos op die foto's, om 'n eenvoudige staander te maak. wil iets swaar op die agterkant van die boute sit om dit te stabiliseer.

Stap 5: Kontroleer die bedrading van die printplaat en berei voor om te kalibreer

Kontroleer die bedrading van die printplaat en berei voor om te kalibreer
Kontroleer die bedrading van die printplaat en berei voor om te kalibreer

Sodra die printplaat aangesluit is, maar voordat u die IC's aansluit of dit weer aanskakel of aanskakel, is dit 'n goeie idee om die kaartverbindings met 'n DVM na te gaan. U kan die meeste DVM's so instel dat hulle piep as daar kontinuïteit is. Stel u DVM in hierdie modus en volg dan u kringdiagram, kyk soveel as moontlik van die stroomverbindings. Kyk of daar 'n oop kring is, of naby dit, tussen die +5V en die grondpunte. Kontroleer visueel of alle komponente aan die regte penne gekoppel is.

Koppel dan u transformator aan die stroombaan en skakel dit aan. Kontroleer of u presies 5V DC op die 5V -kragrail met 'n omvang of DVM het voordat u enige IC's of die skerm aansluit.

Sluit SLEGS die Op-Amp U5 IC aan vir die volgende stap. Hier sal ons kyk of ons dwarsoorloop 'n vierkantgolf genereer en die potensiometer RV1 aanpas vir 'n skoon 60 Hz sein.

Stap 6: Kringkalibrasie

Kringkalibrasie
Kringkalibrasie
Kringkalibrasie
Kringkalibrasie

Die enigste kalibrasie wat gedoen moet word, is om die potensiometer RV1 aan te pas vir die korrekte vlak van die sein wat die kruis -detektor voed. Daar is twee maniere om dit te doen:

1. Plaas 'n omvangsonde op pen 1 van U5 en maak seker dat u die omvangsonde se aarddraad met die stroombaan verbind. Pas RV1 dan aan totdat u 'n skoon vierkantige golf het, soos in die prent hierbo getoon. As u RV1 op een of ander manier te ver aanpas, sal u óf geen vierkantgolf óf 'n verwronge vierkantgolf hê nie. Maak seker dat die frekwensie van die vierkantgolf 60 Hz is. As u 'n moderne omvang het, sal dit u waarskynlik die frekwensie vertel. As u 'n ou omvang het soos ek, moet u seker maak dat die vierkantsgolfperiode ongeveer 16,66 ms of 1/60 sekondes is.

2. Met behulp van 'n frekwensieteller of DVM in die frekwensie -modus, meet die frekwensie by pen 1 van U5 en pas RV1 vir presies 60 Hz aan.

Sodra hierdie kalibrasie gedoen is, skakel die stroombaan uit en koppel al die IC's en die skerm aan om die stroombaan te voltooi.

Stap 7: Die Arduino -program

Daar is volledige kommentaar op die program, sodat u die besonderhede van elke stap kan uitvind. Vanweë die kompleksiteit van die program is dit moeilik om elke stap te beskryf, maar op 'n baie hoë vlak werk dit so:

Die mikroverwerker ontvang die inkomende vierkantsgolf van 60 Hz en tel 60 siklusse en verhoog die sekondetelling na elke 60 siklusse. Sodra die sekondetelling 60 sekondes of 3600 siklusse bereik, word die aantal minute verhoog en word die sekondetelling op nul teruggestel. Nadat die minute 60 minute bereik is, word die aantal ure verhoog en die aantal minute word teruggestel op nul. die uretelling word na 13 uur na 1 teruggestel, so dit is 'n 12 uur -klok. As u 'n 24 -uursklok wil hê, verander die program om die ure na 24 uur op nul te stel.

Dit is 'n eksperimentele projek, so ek het probeer om 'n Do-While-lus te gebruik om die weerkaatsing van die skakelaars op die knoppies Stel en Verhoging te onderdruk. Dit werk redelik goed. As die Set -knoppie een keer ingedruk word, kan die Increment -knoppie gebruik word om deur die ure te gaan wat op die skerm verskyn. As u weer op die Set -knoppie druk, kan die toename -knoppie gebruik word om deur die minute wat op die skerm verskyn, te stap. As die Set -knoppie vir die derde keer ingedruk word, word die tyd ingestel en begin die klok.

Patrone van 0 en 1 wat gebruik word om elke getal op die 7-segment skerms te vertoon, word gestoor in die skikking genaamd Seven_Seg. Afhangende van die huidige kloktyd, word hierdie patrone na die 74HC595 IC gevoer en na die skerm gestuur. Watter van die vier syfers van die skerm is te eniger tyd aangeskakel om hierdie data te ontvang, word deur die mikroverwerker beheer via die skerm Dig 1, 2, 3, 4 pins. As die kring aangeskakel word, voer die program eers 'n toetsroetine uit, genaamd Test_Clock, wat die korrekte syfers stuur om elke skerm met 'n telling van 0 tot 9 te laat brand. As u dit sien as u aanskakel, weet u dat u alles korrek gebou het.

Stap 8: Onderdele lys

1 - Transformator 120VAC tot 12VAC ongeveer 100ma of meer1 - Prototipe bord ongeveer 3,5 "x 3,5" 1 - 4 syfer 7 segment vertoon YSD -439K2B -35 of ekwivalent (Sparkfun) 2 - Klein drukknoppies op die printplaat NO (enige) 4 - 2N3904 NPN transistors8 - 330 ohm resistors2 - 74LS04 Hex inverters1 - 74HC595 serial to parallel 8 bit shift register 1 - LM358 OP -AMP (Comparator) 1 - ATMEGA328P Microcontroller (Creatron) 4 - 4.7K resistors7 - 10K resistors1 - 1N4007 or 1N4001 diode2 - diodes1 - 120 ohm, 1/2W of 1W resistor1 - PCB mount 10K potentiometer1 - 470uF 25V capacitor1 - 7805 TO220 package voltage regulator1 - 10uF 10V capacitor2 - 0.1 uF 10V capacitors1 - 16MHz crystal (Sparkfun) 2 - 22pF capacitors1 - Female power jack (Opsioneel om 'n mannetjiesprop op u wandtransformator aan te pas) 2 - 16 -polige IC -voetstukke2 - 14 -polige IC -voetstukke1 - 8 -polige IC -aansluiting1 - 28 -pen IC -aansluiting2 - 1 "lang ongeveer #4 of #6 boute en bypassende moere2 - 1/ 4 "lang #4-40 boute en bypassende moere 1 - stuk 1/2" breë plat aluminium strook pasgemaakte snit en op maat geboor

#30 AWG draaddraad#22 AWG draad Soldeer

Aanbeveel: