Sisällysluettelo:

Arduino -digitaalikello synkronoitu 60 Hz: n voimalinjalla: 8 vaihetta (kuvien kanssa)
Arduino -digitaalikello synkronoitu 60 Hz: n voimalinjalla: 8 vaihetta (kuvien kanssa)

Video: Arduino -digitaalikello synkronoitu 60 Hz: n voimalinjalla: 8 vaihetta (kuvien kanssa)

Video: Arduino -digitaalikello synkronoitu 60 Hz: n voimalinjalla: 8 vaihetta (kuvien kanssa)
Video: Extract GPS location in Arduino with NEO-6m or NEO-7M module 2024, Heinäkuu
Anonim
Arduinon digitaalinen kello Synkronoitu 60 Hz: n voimalinjalla
Arduinon digitaalinen kello Synkronoitu 60 Hz: n voimalinjalla

Tämä Arduino -pohjainen digitaalinen kello synkronoidaan 60 Hz: n voimalinjalla. Siinä on yksinkertainen ja edullinen yhteinen anodi 4 -numeroinen 7 -segmenttinäyttö, joka näyttää tunnit ja minuutit. Se käyttää ristikytkintunnistinta havaitakseen, milloin tuleva 60 Hz: n siniaalto ylittää nollajännitepisteen ja johtaa 60 Hz: n neliöaallon.

Lyhyen ajan kuluessa voimajohdosta tulevan siniaaltotaajuus voi vaihdella hyvin vähän kuormituksen vuoksi, mutta pitkiä aikoja se on keskimäärin 60 Hz: iin erittäin tarkasti. Voimme hyödyntää tätä saadaksemme ajoituksen lähteen kellomme synkronoimiseksi.

Vaihe 1: Piirikaavio

Piirikaavio
Piirikaavio

Piiristä on kaksi versiota sen mukaan, haluatko käyttää muuntajaa, jossa on keskikierre vai ilman, molemmissa tapauksissa piirin toiminta on lähes identtinen. Tätä rakennetta varten käytin seinäadapteria (ei keskikohtaa), joka tuottaa 12 V AC. Käytän tätä mallia (digitaalikellon 1 piirikaavio) piirin kuvauksessa. Huomaa, että on tärkeää käyttää seinäadapteria, joka tuottaa 12 V AC eikä 12 V DC, jotta voimme käyttää ajoitusta AC -siniaaltoon. Voit luultavasti käyttää myös muuntajaa, joka tuottaa 9 V AC: n, poistaa R19: n ja saada sen toimimaan myös, mutta 12 V on hyvin yleisesti saatavilla. Piiri toimii näin:

120 V AC 60 Hz: llä muunnetaan muuntaja TR1 12 V AC: ksi. Tämä syötetään diodille D4 ja tasoitetaan siten, että vain +ve -jännite syötetään kondensaattorilla C3 ja tasoitetaan suunnilleen tasavirtaan aaltoilulla. C3: n jännite syötetään 7805 -jännitesäätimeen (U6) vastuksen R19 kautta. R19: tä käytetään C3: n jännitteen pienentämiseen, joka tapauksessani mitattiin noin 15 VDC. Tätä voidaan säätää 7805: llä, mutta tällä syöttötasolla 7805: n on pudotettava noin 10 VDC ja seurauksena on melko kuuma. Käyttämällä R19: tä pudottaaksesi jännitteen noin 10 VDC: hen estämme U6: n kuumenemasta liikaa. Tämä ei siis ole tehokas tehonmuuntotekniikka, mutta se toimii tarkoituksiimme. HUOMAUTUS: käytä tässä vähintään 1/2 W: n vastusta tai enemmän. Piiri kuluttaa noin 55 ma, joten tehon häviö R19: ssä on noin 1/3 W perustuen P = I ** 2*R tai P = 55ma x 55ma x 120 ohms = 0,363W. Seuraavaksi U6 antaa puhtaan 5 V DC: n ja C4 ja C5 ulostulossa suodattaakseen 5V: n voimalinjan melun. Tämä 5 V DC syöttää virtaa kaikille piirilevyille.

TR1: stä otamme myös näytteen suodattamattomasta AC -signaalista ja syötetään se potentiometriin RV1, jota käytetään säätämään cross over -ilmaisimelle syötettyä tasoa. R18 ja R17 muodostavat jännitteenjakajan, joka vähentää edelleen tulevan vaihtojännitteen tasoa. Muista, että tämä tulee sisään 12 V: n AC -jännitteellä, ja meidän on vähennettävä se alle 5 V: iin, jotta se toimii ristikytkentäanturimme kanssa, joka on vain virtalähteenä 5VDC. R15 ja R16 rajoittavat virtaa, kun taas D1 ja D2 on tarkoitettu estämään op-amp U5: n ylivirtaus. Esitetyssä konfiguraatiossa U5: n lähtö nastassa 1 vaihtelee välillä +5V ja 0V aina, kun tuleva siniaalto muuttuu positiivisesta negatiiviseksi. Tämä muodostaa 60 Hz: n neliöaallon, joka syötetään mikro -ohjaimeen U4. U4: een ladattu ohjelma käyttää sitten tätä 60 Hz: n neliöaaltoa kellon lisäämiseksi joka minuutti ja tunti. Kuinka tämä tehdään, keskustellaan ohjelmistoa käsittelevässä osassa ja ohjelmiston kommenteissa.

U7 74HC595 -siirtorekisteriä käytetään, koska meillä on rajoitettu määrä digitaalisia nastoja mikroprosessorissa, joten sitä käytetään ulostulojen määrän laajentamiseen. Käytämme 4 digitaalista nastaa mikroprosessorissa, mutta voimme ohjata 7 segmenttiä näytöllä 74HC595: n kautta. Tämä saavutetaan siirtämällä ennalta määrättyjä bittikuvioita, jotka on tallennettu mikrokontrolleriin ja jotka edustavat jokaista näytettävää numeroa, siirtorekisteriin.

Tässä käytetty näyttö on yleinen anodi, joten meidän on käännettävä 74HC595: stä tulevat signaalitasot kääntääksemme segmentin päälle. Kun segmentti kytketään päälle, 74HC595 -ulostulonapista tuleva signaali on +5 V, mutta tarvitsemme näytön syöttämän nastan olevan 0 V: n jännitteellä, jotta tämä näyttösegmentti voidaan kytkeä päälle. Tätä varten tarvitsemme kuusioinvertterit U2 ja U3. Valitettavasti yksi taajuusmuuttaja -IC voi käsitellä vain 6 käännöstä, joten tarvitsemme kaksi niistä, vaikka toisessa käytämme vain yhtä kuudesta portista. Hukattavaa valitettavasti. Saatat kysyä, miksi et käytä täällä yleistä katodityyppistä näyttöä ja poista U2 ja U3? Vastaus on, että voit, minulla vain sattuu olemaan yhteinen anodityyppi osieni toimituksessa. Jos sinulla on tai haluat käyttää yhteistä katodityyppistä näyttöä, poista U2 ja U3 ja kytke johdot Q1 - Q4 uudelleen niin, että transistorikollektorit on kytketty näytön nastoihin ja transistorilähettimet on kytketty maahan. Q1 - Q4 ohjaa, mikä neljästä 7 -segmenttinäytöstä on aktiivinen. Tätä ohjaa mikro -ohjain transistorien Q1 - Q4 kantaan liitettyjen nastojen kautta.

Lisäys- ja asetuspainikkeilla asetetaan oikea kellonaika manuaalisesti kellon todelliseen käyttöön. Kun Set -painiketta painetaan kerran, lisäyspainikkeella voidaan selata näytössä näytettyjä tunteja. Kun Set -painiketta painetaan uudelleen, lisäyspainikkeella voidaan selata näytössä näytettyjä minuutteja. Kun Set -painiketta painetaan kolmannen kerran, aika asetetaan. R13 ja R14 vetävät näihin painikkeisiin liittyvät mikro -ohjaimen nastat matalalle, kun niitä ei käytetä.

Huomaa, että tässä olemme ottaneet U4: n (Atmega328p) pois tyypillisestä Arduino UNO -prototyyppikortista ja asettaneet sen prototyyppikortille muun piirimme kanssa. Tätä varten meidän on tarjottava vähintään kide X1 ja kondensaattorit C1 ja C2, jotta mikrokontrollerin kellolähde, nastatappi 1, nollausnasta, korkea ja tuottavat 5 VDC: n virran.

Vaihe 2: Piirisi leipälevy

Breadboard Circuit
Breadboard Circuit
Breadboard Circuit
Breadboard Circuit

Riippumatta siitä, rakennatko piirin täsmälleen piirikaavion osoittamalla tavalla tai käytät ehkä hieman erilaista muuntajaa, näyttötyyppiä tai muita komponentteja, sinun on ensin levitettävä piirilevy sen varmistamiseksi, että se toimii ja ymmärrät miten se toimii.

Kuvista näet, että koko leipälautailu vaati pari lautaa sekä Arduino Uno -levyn. Jotta voit ohjelmoida mikro -ohjaimen tai kokeilla tai tehdä muutoksia ohjelmistoon, tarvitset aluksi mikro -ohjaimen IC: n UNO -piirilevylle, jotta voit liittää siihen USB -kaapelin ja tietokoneen ladataksesi ohjelman tai tehdäksesi muutoksia ohjelmistoon.

Kun olet saanut kellon toimimaan leipälevyllä ja mikrokontrollerisi on ohjelmoitu, voit irrottaa sen pistorasiasta ja kytkeä sen prototyyppikortin viimeisen rakennetun pysyvän kellon pistorasiaan. Muista noudattaa antistaattisia varotoimia, kun teet tämän. Käytä antistaattista rannehihnaa käsitellessäsi mikroprosessoria.

Vaihe 3: Piirin rakentaminen Protoboardilla

Piirien rakentaminen Protoboardilla
Piirien rakentaminen Protoboardilla
Piirien rakentaminen Protoboardilla
Piirien rakentaminen Protoboardilla

Piiri on rakennettu prototyyppikortille ja kytketty pisteestä pisteeseen käyttämällä #30 AWG -lankakierrelankaa. Se antaa kovan ja luotettavan tuloksen. Koska minulla olevassa muuntajassa on urospuolinen 5 mm: n pistoke kaapelin päässä, asensin vastaavan naarasliitännän levyn takaosaan leikkaamalla, taivuttamalla ja poraamalla 1/2 tuuman leveän alumiininauhan kappaleen mukautetun tekoon ja kiinnitä se sitten levyyn pienillä 4-40 mutterilla ja pultilla. laudalle.

Vaihe 4: Pistorasian luominen näyttöä varten ja jalkojen antaminen

Pistorasian luominen näytölle ja jalkojen antaminen
Pistorasian luominen näytölle ja jalkojen antaminen
Pistorasian luominen näytölle ja jalkojen antaminen
Pistorasian luominen näytölle ja jalkojen antaminen
Pistorasian luominen näytölle ja jalkojen antaminen
Pistorasian luominen näytölle ja jalkojen antaminen

Koska näytössä on 16 nastaa, 8 kummallakin puolella, ja tappiväli on leveämpi kuin tavallinen 16 -nastainen IC -liitäntä, meidän on säädettävä pistorasian koko näytön mukaan. Voit tehdä tämän yksinkertaisesti käyttämällä lankaleikkureita katkaistaksesi muovin, joka yhdistää pistorasian kaksi puolta, erottaa ne ja juottaa ne erikseen levylle siten, että etäisyys vastaa näytön nastojen etäisyyttä. Tämä on edullista, jotta sinun ei tarvitse juottaa suoraan näytön nastoihin ja altistaa näyttö liialliselle kuumuudelle. Näet pistorasian, jonka olen tehnyt tämän levyn yläosassa yllä olevassa kuvassa.

Saadaksesi näytön pystyyn pystysuoraan, ruuvain kaksi 1 pulttia prototyyppikortin kahteen alareunaan, kuten kuvissa on esitetty yksinkertaisen jalustan luomiseksi. Tämä oli melko mutkikas, joten jos teet tämän, saatat haluat laittaa jotain painavaa ruuvien takaosaan sen vakauttamiseksi.

Vaihe 5: Piirilevyn johdotuksen tarkistaminen ja kalibroinnin valmistelu

Piirilevyn johdotuksen tarkistaminen ja kalibroinnin valmistelu
Piirilevyn johdotuksen tarkistaminen ja kalibroinnin valmistelu

Kun piirilevy on kytketty, mutta ennen kuin liität virtalähteet tai näytön tai käynnistät sen, on hyvä tarkistaa kortin liitännät DVM: llä. Voit asettaa useimmat DVM -laitteet niin, että ne piippaavat jatkuvuuden ollessa olemassa. Aseta DVM tähän tilaan ja seuraa sitten piirikaaviota ja tarkista mahdollisimman monet piiriliitännät. Tarkista, onko +5V- ja maadoituspisteiden välissä avoin piiri tai lähellä sitä. Tarkista silmämääräisesti, että kaikki komponentit on kytketty oikeisiin nastoihin.

Liitä seuraavaksi muuntaja piiriin ja käynnistä se. Tarkista, että 5 V: n virtakiskossa on täsmälleen 5 V: n tasavirta, jossa on joko laajuus tai DVM, ennen kuin liität mikropiirejä tai näyttöä.

Liitä seuraavaksi VAIN Op-Amp U5 -piiri, kun valmistaudut seuraavaan vaiheeseen. Tässä tarkistamme, että ristikytkentäpiirimme tuottaa neliöaallon, ja säädä potentiometri RV1 puhtaalle 60 Hz: n signaalille.

Vaihe 6: Piirin kalibrointi

Piirin kalibrointi
Piirin kalibrointi
Piirin kalibrointi
Piirin kalibrointi

Ainoa suoritettava kalibrointi on säätää potentiometri RV1 oikeaan signaalin tasoon, joka syöttää ristinilmaisimen. Voit tehdä tämän kahdella tavalla:

1. Aseta mittausanturi U5 -nastaan 1 ja varmista, että liität mitta -anturin maadoitusjohdon piirin maadoitukseen. Säädä seuraavaksi RV1, kunnes saat puhtaan neliöaallon yllä olevan kuvan mukaisesti. Jos säädät RV1: tä liian pitkälle suuntaan tai toiseen, sinulla ei ole neliöaaltoa tai vääristynyt neliöaalto. Varmista, että neliöaallon taajuus on 60 Hz. Jos sinulla on moderni laajuus, se todennäköisesti kertoo taajuuden. Jos sinulla on muinainen ulottuvuus kuten minulla, varmista, että neliöaaltojakso on noin 16,66 ms tai 1/60 sekuntia.

2. Käytä taajuuslaskuria tai DVM: ää taajuustilassa, mittaa taajuus U5: n nastasta 1 ja säädä RV1 täsmälleen 60 Hz: iin.

Kun tämä kalibrointi on tehty, sammuta piiri ja kytke kaikki IC: t ja näyttö loppuun piirin rakentamiseksi.

Vaihe 7: Arduino -ohjelma

Ohjelma on täysin kommentoitu, jotta voit selvittää jokaisen vaiheen yksityiskohdat. Ohjelman monimutkaisuuden vuoksi on vaikea kuvata jokaista vaihetta, mutta erittäin korkealla tasolla se toimii näin:

Mikroprosessori vastaanottaa tulevan 60 Hz: n neliöaallon ja laskee 60 sykliä ja lisää sekuntien määrää 60 syklin jälkeen. Kun sekuntien määrä saavuttaa 60 sekuntia tai 3600 sykliä, minuuttilukua lisätään ja sekuntien määrä nollataan. Kun minuuttien määrä on saavuttanut 60 minuuttia, tunteja lisätään ja minuuttien määrä nollataan. tuntimäärä palautetaan 1: ksi 13 tunnin kuluttua, joten tämä on 12 tunnin kello. Jos haluat 24 tunnin kellon, vaihda ohjelma nollataksesi tunnit 24 tunnin kuluttua.

Tämä on kokeellinen projekti, joten yritin käyttää Do-While-silmukkaa estämään kytkimen pomppimisen Set- ja Increment-painikkeissa. Se toimii kohtuullisen hyvin. Kun Set -painiketta painetaan kerran, lisäyspainikkeella voidaan selata näytössä näytettyjä tunteja. Kun Set -painiketta painetaan uudelleen, lisäyspainikkeella voidaan selata näytössä näytettyjä minuutteja. Kun Set -painiketta painetaan kolmannen kerran, aika asetetaan ja kello alkaa toimia.

Kuviot 0 ja 1, joita käytetään jokaisen numeron näyttämiseen 7-segmenttinäytöissä, tallennetaan taulukkoon nimeltä Seven_Seg. Kellonajasta riippuen nämä kuviot syötetään 74HC595 IC: lle ja lähetetään näyttöön. Mikro näytön neljästä numerosta kytketään päälle kerrallaan näiden tietojen vastaanottamiseksi, mikroprosessori ohjaa näytön Dig 1, 2, 3, 4 nastaa. Kun piiri on kytketty päälle, ohjelma suorittaa ensin testirutiinin nimeltä Test_Clock, joka lähettää oikeat numerot sytyttämään jokaisen näytön ja laskemaan 0: sta 9. Joten jos näet tämän, kun käynnistät, tiedät, että olet rakentanut kaiken oikein.

Vaihe 8: Osaluettelo

1 - Muuntaja 120 VAC - 12 VAC noin 100 mA tai enemmän 1 - Prototyyppikortti noin 3,5 "x 3,5" 1 - 4 -numeroinen 7 -segmenttinen näyttö YSD -439K2B -35 tai vastaava (Sparkfun) 2 - Pienet PCB -kiinnityspainikkeet EI (kaikki) 4 - 2N3904 NPN -transistorit 8 - 330 ohmin vastukset 2 - 74LS04 Hex -taajuusmuuttajat 1 - 74HC595 sarja -rinnakkainen 8 -bittinen siirtorekisteri 1 - LM358 OP -AMP (vertailija) 1 - ATMEGA328P -mikrokontrolleri (Creatron) 4 - 4,7 K vastukset 7 - 10K vastukset 1 - 1N4007 tai 1N4001142 diodit1 - 120 ohmia, 1/2 W tai 1 W vastus1 - PCB -kiinnitys 10K potentiometri1 - 470uF 25V kondensaattori1 - 7805 TO220 -paketin jännitesäädin1 - 10uF 10V kondensaattori2 - 0,1 uF 10V kondensaattorit1 - 16 MHz: n kide (Sparkfun) 2 - 22pF kondensaattorit Valinnainen sovitin urosliittimeen, jos seinämuuntajassa) 4 "pitkät #4-40 pultit ja vastaavat mutterit1 - kappale 1/2" leveää litteää alumiininauhaa ja porattu kokoon

#30 AWG -lankakierrelanka#22 AWG -lanka

Suositeltava: