Sisukord:

Arduino digitaalkell sünkroonitud 60 Hz toiteliiniga: 8 sammu (piltidega)
Arduino digitaalkell sünkroonitud 60 Hz toiteliiniga: 8 sammu (piltidega)

Video: Arduino digitaalkell sünkroonitud 60 Hz toiteliiniga: 8 sammu (piltidega)

Video: Arduino digitaalkell sünkroonitud 60 Hz toiteliiniga: 8 sammu (piltidega)
Video: Простые цифровые часы с использованием Arduino, код часов Arduino, часть 1 2024, November
Anonim
Arduino digitaalkell Sünkroonitud 60 Hz toiteliiniga
Arduino digitaalkell Sünkroonitud 60 Hz toiteliiniga

Seda Arduino -põhist digitaalset kella sünkroonib 60 Hz toiteliin. Sellel on lihtne ja odav ühine anood 4 -kohaline 7 -segmendiline ekraan, mis näitab tunde ja minuteid. See kasutab ristandurit, et tuvastada, millal sissetulev siinuslaine ületab nullpingepunkti ja tuletab 60 Hz ruutlaine.

Lühikese aja jooksul võib elektriliinist saabuva siinuslaine sagedus koormuse tõttu väga pisut erineda, kuid pika aja jooksul on see keskmiselt kuni 60 Hz. Me saame seda ära kasutada, et tuletada ajastuse allikas oma kella sünkroonimiseks.

Samm: vooluahela skeem

Vooluahela skeem
Vooluahela skeem

Skeemil on kaks versiooni sõltuvalt sellest, kas soovite kasutada keskkraaniga trafot või ilma, mõlemal juhul on vooluahela töö peaaegu identne. Selle ehituse jaoks kasutasin seinaadapterit (ilma keskkraanita), mis väljastab 12 V vahelduvvoolu. Ma kasutan seda disaini (digitaalse kella 1 vooluahela skeem) ahela kirjeldamiseks. Pange tähele, et on oluline kasutada seinaadapterit, mis väljastab 12 V vahelduvvoolu, mitte 12 V alalisvoolu, et saaksime ajastamiseks kasutada vahelduvvoolu siinuslainet. Tõenäoliselt võiksite kasutada ka trafot, mis väljastab 9 V vahelduvvoolu, eemaldage R19 ja pange see ka tööle, kuid 12 V on väga sageli saadaval. Vooluring töötab järgmiselt:

Trafo TR1 muudab 120 V vahelduvvoolu 60 Hz juures 12 V vahelduvvooluks. See suunatakse dioodile D4 ja alaldatakse nii, et kondensaator C3 toidab ainult +ve pinget ja tasandab seda pulsatsiooniga ligikaudu alalisvooluni. Pinge C3 -l suunatakse takisti R19 kaudu pingeregulaatorisse 7805 (U6). R19 kasutatakse C3 pinge vähendamiseks, mida minu puhul mõõdeti umbes 15 V DC. Seda saab reguleerida seadmega 7805, kuid sellise sisenditaseme korral peab 7805 langema umbes 10 V alalisvoolu ja selle tagajärjel muutub see üsna kuumaks. Kasutades R19 -d pinge langetamiseks umbes 10 V alalisvooluni, hoiame ära U6 liigse kuumutamise. Nii et see ei ole tõhus energia muundamise tehnika, kuid see sobib meie eesmärkidel. MÄRKUS: kasutage siin vähemalt 1/2W takistit või rohkem. Ahel tarbib umbes 55 ma, seega on võimsuse hajumine R19 -s umbes 1/3W, kui P = I ** 2*R või P = 55ma x 55ma x 120 oomi = 0,363W. Järgmisena väljastab U6 5V alalisvoolu alalisvoolu koos C4 ja C5 väljundiga, et filtreerida 5V toiteliini müra. See 5 V alalisvool toidab kõiki tahvli IC -sid.

TR1 -st võtame ka filtreerimata vahelduvvoolu signaali proovi ja sisestame selle potentsiomeetrisse RV1, mida kasutatakse ristandurile juhitava taseme reguleerimiseks. R18 ja R17 moodustavad pingejaguri, et veelgi vähendada sissetuleva vahelduvpinge taset. Pidage meeles, et see tuleb sisse 12 V vahelduvvoolul ja me peame selle vähendama alla 5 V, et see töötaks meie ristanduriga, mis on ainult toide 5VDC. R15 ja R16 piiravad voolu, samas kui D1 ja D2 on ette nähtud op-amp U5 ületamise vältimiseks. Näidatud konfiguratsioonis muutub U5 väljund 1. tihvtil +5 V ja 0 V vahel iga kord, kui sissetulev siinuslaine muutub positiivsest negatiivseks. See tekitab 60 Hz ruutlaine, mis juhitakse mikrokontrollerile U4. Seejärel kasutab U4 -le laaditud programm seda 60 Hz ruutlainet kella suurendamiseks iga minuti ja tunni tagant. Kuidas seda teha, arutatakse tarkvaraprogrammi osas ja tarkvara kommentaarides.

U7 kasutatakse 74HC595 nihkeregistrit, kuna meil on mikroprotsessoril piiratud arv digitaalseid kontakte, seega kasutatakse seda väljundite arvu laiendamiseks. Me kasutame mikroprotsessoril 4 digitaalset tihvti, kuid saame 74HC595 kaudu juhtida ekraanil 7 segmenti. See saavutatakse, nihutades nihkeregistrisse mikrokontrollerisse salvestatud ja iga kuvatavat numbrit tähistavate bittide etteantud mustreid.

Siin kasutatav ekraan on tavaline anood, nii et segmendi sisselülitamiseks peame 74HC595 -st väljuvad signaali tasemed ümber pöörama. Kui segment tuleb sisse lülitada, on 74HC595 väljundtihvist väljuv signaal +5 V pingel, kuid selle kuvarisegumi sisselülitamiseks vajame selle toitepinget ekraanil 0V. Seega vajame selleks kuuskantmuundureid U2 ja U3. Kahjuks saab üks inverter -IC hakkama ainult 6 inversiooniga, seega vajame neist kahte, kuigi teisel kasutame ainult ühte kuuest väravast. Kahjuks raiskav. Võite küsida, miks mitte kasutada siin tavalist katooditüüpi ja kõrvaldada U2 ja U3? Noh, vastus on, et saate, mul lihtsalt juhtub, et minu varuosades on tavaline anooditüüp. Kui teil on või soovite kasutada tavalist katooditüüpi ekraani, eemaldage lihtsalt U2 ja U3 ning ühendage Q1 - Q4 uuesti, nii et transistorikollektorid on ühendatud ekraanipistikutega ja transistori emitterid on ühendatud maaga. Q1 - Q4 kontrollib, milline neljast 7 -segmendilisest kuvarist on aktiivne. Seda juhib mikrokontroller transistoride Q1 - Q4 alusega ühendatud tihvtide kaudu.

Suurendus- ja seadistusnuppe kasutatakse kella tegelikuks kasutamiseks käsitsi õige kellaaja seadistamiseks. Kui nuppu Set vajutatakse üks kord, siis suurendusnuppu saab kasutada ekraanil kuvatud tundide lugemiseks. Kui nuppu Set uuesti vajutada, saab suurendusnuppu kasutada ekraanil kuvatavate minutite sirvimiseks. Kui nuppu Set kolmandat korda vajutatakse, määratakse kellaaeg. R13 ja R14 tõmbavad nende nuppudega seotud mikrokontrolleri tihvtid madalaks, kui neid ei kasutata.

Pange tähele, et siin oleme U4 (Atmega328p) Arduino UNO tüüpilisest prototüübiplaadilt maha võtnud ja pannud selle prototüüpplaadile koos ülejäänud vooluringiga. Selleks peame minimaalselt varustama kristalli X1 ja kondensaatorid C1 ja C2, et pakkuda mikrokontrollerile kellaallikat, sidetihvti 1, lähtestusnõela, kõrge ja pakkuda 5 V alalisvoolu toiteallikat.

2. etapp: oma vooluringi leivaplaat

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

Olenemata sellest, kas ehitate vooluahelat täpselt nii, nagu on näidatud vooluahelal, või kasutate võib -olla pisut erinevat trafot, kuvaritüüpi või muid komponente, peaksite ahela kõigepealt tööle panema, et tagada selle toimimine ja mõista, kuidas see töötab.

Piltidelt on näha, et kogu asja leivalaudamiseks oli vaja nii paari tahvlit kui ka Arduino Uno tahvlit. Nii et mikrokontrolleri programmeerimiseks või eksperimendi tegemiseks või tarkvaras muudatuste tegemiseks vajate esialgu mikrokontrolleri IC -d UNO tahvlil, et saaksite sellega USB -kaabli ja arvuti ühendada, et programm üles laadida või tarkvara muuta.

Kui olete kella leivaplaadil töötama pannud ja mikrokontrolleri programmeerinud, saate selle vooluvõrgust lahti ühendada ja ühendada selle prototüüpplaadil oleva lõpliku püsikella pistikupessa. Seda tehes järgige kindlasti antistaatilisi ettevaatusabinõusid. Mikroprotsessori käsitsemisel kasutage antistaatilist randmepaela.

3. samm: vooluringi ehitamine Protoboardil

Vooluahela ehitus Protoboardil
Vooluahela ehitus Protoboardil
Vooluahela ehitus Protoboardil
Vooluahela ehitus Protoboardil

Vooluahel on konstrueeritud prototüüpplaadile ja juhtmest punkt -punkti, kasutades #30 AWG traatmähist traati. See annab tugeva ja usaldusväärse tulemuse. Kuna minu käsutuses oleval trafol on kaabli otsas isane 5 mm pistik, paigaldasin vastava naissoost anuma plaadi tagaküljele, lõigates, painutades ja puurides 1/2 tolli lamedat alumiiniumriba, et teha kohandatud sulg ja seejärel kruvige see plaadi külge väikeste 4–40 mutri ja poldiga. Võite lihtsalt pistiku katkestada ja ülejäänud toitejuhtmed plaadile joota ning säästa end umbes 20-minutise töö eest, kuid ma ei soovinud trafo püsivat kinnitamist juhatusele.

Samm: ekraani pesa loomine ja jalgade andmine

Ekraanile pesa loomine ja jalgade andmine
Ekraanile pesa loomine ja jalgade andmine
Ekraanile pesa loomine ja jalgade andmine
Ekraanile pesa loomine ja jalgade andmine
Ekraanile pesa loomine ja jalgade andmine
Ekraanile pesa loomine ja jalgade andmine

Kuna ekraanil on 16 tihvti, 8 kummalgi küljel, mille tihvtide vahe on laiem kui tavaline 16 -kontaktiline IC -pistikupesa, peame pesa suurust kuvarile sobivaks kohandama. Seda saate teha, kasutades lihtsalt paar traatlõikurit, et katkestada pistikupesa kahte külge ühendav plastik, eraldada need ja joota need eraldi plaadile vahega, mis vastab ekraanil olevate tihvtide vahekaugusele. Seda on kasulik teha nii, et te ei peaks jootma otse ekraani tihvtide juurde ja jätma ekraani liigse kuumuse kätte. Pistikupesa, millega olen seda teinud, näete ülaltoodud pildil tahvli ülaosas.

Ekraani paremaks püstitamiseks kruvisin lihtsa aluse valmistamiseks kaks 1 -tollist polti prototüüpplaadi kahe alumise nurgaaugu külge, nagu on näidatud fotodel. See oli üsna nõrk, nii et kui te seda teete, võite tahate poltide tagaküljele panna midagi rasket, et seda stabiliseerida.

Samm: kontrollige trükkplaadi juhtmestikku ja valmistuge kalibreerimiseks

Trükkplaadi juhtmestiku kontrollimine ja kalibreerimiseks valmistumine
Trükkplaadi juhtmestiku kontrollimine ja kalibreerimiseks valmistumine

Kui trükkplaat on ühendatud, kuid enne IC -de või ekraani ühendamist või selle sisselülitamist on hea mõte kontrollida plaadi ühendusi DVM -iga. Enamiku DVM -e saate seadistada nii, et need jätkuva järje korral piiksuvad. Seadistage oma DVM sellesse režiimi ja järgige seejärel oma skeemi, kontrollige võimalikult palju vooluahela ühendusi. Kontrollige, kas +5V ja maanduspunktide vahel on avatud vooluring või selle lähedal. Kontrollige visuaalselt, kas kõik komponendid on ühendatud õigete tihvtidega.

Seejärel ühendage trafo vooluahelaga ja lülitage see sisse. Enne IC -de või kuvari ühendamist kontrollige, kas 5V toiteplokil on täpselt 5V alalisvool, millel on ulatus või DVM.

Järgmiseks ühendage AINULT Op-Amp U5 IC, valmistudes järgmiseks sammuks. Siin kontrollime, kas meie ülevooluahel tekitab ruutlaine ja reguleerime potentsiomeetrit RV1 puhta 60 Hz signaali jaoks.

6. samm: ahela kalibreerimine

Vooluahela kalibreerimine
Vooluahela kalibreerimine
Vooluahela kalibreerimine
Vooluahela kalibreerimine

Ainus kalibreerimine, mida tuleb teha, on reguleerida potentsiomeeter RV1 nii, et signaal oleks õigel tasemel, mis toidab ristandurit. Selleks on kaks võimalust.

1. Asetage skaalasond U5 kontaktile 1 ja veenduge, et ühendaksite sondi maandusjuhtme vooluahela maandusega. Järgmisena reguleerige RV1, kuni teil on puhas ruudukujuline laine, nagu on näidatud ülaltoodud pildil. Kui reguleerite RV1 ühel või teisel viisil liiga kaugele, ei ole ruutlainet või moonutatud ruutlainet. Veenduge, et ruutlaine sagedus on 60 Hz. Kui teil on kaasaegne ulatus, ütleb see teile tõenäoliselt sageduse. Kui teil on iidne ulatus nagu mul, veenduge, et ruutlaine periood on umbes 16,66 ms või 1/60 sekundit.

2. Sagedusloenduri või DVM -i abil sagedusrežiimis mõõtke sagedus U5 pin 1. ja reguleerige RV1 täpselt 60 Hz jaoks.

Kui see kalibreerimine on tehtud, lülitage vooluring välja ja ühendage vooluringi ehituse lõpuleviimiseks kõik IC -d ja ekraan.

Samm: Arduino programm

Programm on täielikult kommenteeritud, nii et saate iga sammu üksikasjad selgeks teha. Programmi keerukuse tõttu on iga sammu raske kirjeldada, kuid väga kõrgel tasemel see toimib:

Mikroprotsessor võtab vastu 60 Hz ruutlaine ja loeb 60 tsüklit ning suurendab iga 60 tsükli järel sekundite arvu. Kui sekundite arv jõuab 60 sekundini või 3600 tsüklini, suurendatakse minutite arvu ja sekundite arv nullitakse. Kui minutite arv jõuab 60 minutini, suurendatakse tundide arvu ja minutite arv nullitakse. tundide arv taastatakse 13 tunni pärast 1 -ks, seega on see 12 -tunnine kell. Kui soovite 24 -tunnist kella, muutke programm, et 24 tunni pärast nullida tunnid.

See on eksperimentaalne projekt, nii et proovisin kasutada Do-while-tsüklit, et summutada nuppude Set ja Increment lülitite põrkumist. See töötab mõistlikult hästi. Kui nuppu Set üks kord vajutada, saab suurendusnuppu kasutada ekraanil kuvatud tundide lugemiseks. Kui nuppu Set uuesti vajutada, saab suurendusnuppu kasutada ekraanil kuvatavate minutite sirvimiseks. Kui nuppu Set kolmandat korda vajutada, määratakse kellaaeg ja kell hakkab tööle.

Mustrid 0 ja 1, mida kasutatakse iga numbri kuvamiseks 7-segmendilistel kuvaritel, salvestatakse massiivi nimega Seven_Seg. Sõltuvalt praegusest kellaajast sisestatakse need mustrid 74HC595 IC -le ja saadetakse ekraanile. Millist ekraani neljast numbrist on andmete vastuvõtmiseks korraga sisse lülitatud, juhib mikroprotsessor ekraani Dig 1, 2, 3, 4 kontakti kaudu. Kui vooluahel on sisse lülitatud, käivitab programm esmalt testimisrutiini nimega Test_Clock, mis saadab õiged numbrid iga ekraani süttimiseks, lugedes 0 kuni 9. Nii et kui näete seda sisselülitamisel, teate, et olete kõik õigesti üles ehitanud.

8. samm: osade loend

1 - trafo 120VAC kuni 12VAC umbes 100ma või rohkem NPN -transistorid 8 - 330 oomi takistid 2 - 74LS04 kuuskantmuundurid 1 - 74HC595 jada -paralleelne 8 -bitine nihkeregister 1 - LM358 OP -AMP (võrdleja) 1 - ATMEGA328P mikrokontroller (Creatron) 4 - 4,7 K takistid 7 - 10K takistid 1 - 1N4007 või 1N4001142 dioodid 1-120 oomi, 1/2 W või 1W takisti Võimalik paigaldada seinapistikule isane pistik, kui see on olemas) 2–16 -kontaktilised IC -pistikupesad2–14 -kontaktilised IC -pistikupesad1–8 -kontaktilised IC -pistikupesad1–28 -kontaktilised IC -pistikupesad2–1 tolli pikkused umbes #4 või #6 poldid ja vastavad mutrid 4 "pikad #4-40 poldid ja vastavad mutrid1 - tükk 1/2" laiusest alumiiniumribast kohandatud lõikega ja puuritud mõõtu

#30 AWG traatmähise traat#22 AWG traat

Soovitan: