Sadržaj:

Arduino digitalni sat sinhroniziran linijom napajanja 60Hz: 8 koraka (sa slikama)
Arduino digitalni sat sinhroniziran linijom napajanja 60Hz: 8 koraka (sa slikama)

Video: Arduino digitalni sat sinhroniziran linijom napajanja 60Hz: 8 koraka (sa slikama)

Video: Arduino digitalni sat sinhroniziran linijom napajanja 60Hz: 8 koraka (sa slikama)
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Novembar
Anonim
Arduino digitalni sat sinhroniziran mrežnim naponom od 60Hz
Arduino digitalni sat sinhroniziran mrežnim naponom od 60Hz

Ovaj digitalni sat zasnovan na Arduinu sinhroniziran je mrežnim naponom od 60Hz. Ima jednostavan i jeftin zajednički anodni 4 -znamenkasti 7 -segmentni ekran koji prikazuje sate i minute. Koristi detektor ukrštanja za otkrivanje kada dolazni sinusni val od 60Hz pređe nultu točku napona i izvede kvadratni val od 60 Hz.

U kratkim vremenskim periodima učestalost dolaznog sinusnog vala s dalekovoda može vrlo malo varirati zbog opterećenja, ali u dugim vremenskim periodima prosječno iznosi do 60Hz vrlo precizno. Ovo možemo iskoristiti za izvođenje vremenskog izvora za sinhronizaciju našeg sata.

Korak 1: Dijagram kola

Dijagram kola
Dijagram kola

Postoje dvije verzije kruga, ovisno o tome želite li koristiti transformator sa središnjom slavinom ili bez nje, u oba slučaja rad kola je gotovo identičan. Za ovu sam konstrukciju koristio zidni adapter (bez središnje slavine) koji izlazi 12V AC. Koristit ću ovaj dizajn (digitalni dijagram sata 1) za opis kola. Imajte na umu da je važno koristiti zidni adapter koji izlazi 12V AC a ne 12V DC kako bismo mogli uključiti AC sinusni val radi mjerenja vremena. Vjerojatno biste mogli koristiti i transformator koji emitira 9V AC, uklanja R19 i uključuje ga, ali 12V je vrlo često dostupno. Ovako krug funkcionira:

120V AC na 60Hz pretvara se u 12V AC pomoću transformatora TR1. Ovo se napaja na diodu D4 i ispravlja tako da se samo +ve napon dovodi do kondenzatora C3 i izravnava na otprilike istosmjernu struju s valovitošću. Napon na C3 dovodi se u regulator napona 7805 (U6) preko otpornika R19. R19 se koristi za smanjenje napona na C3 koji je u mom slučaju izmjeren na približno 15VDC. To se može regulirati pomoću 7805, ali s ovim nivoom ulaza 7805 mora pasti za približno 10VDC i kao rezultat toga postaje prilično vruće. Korištenjem R19 za smanjenje napona na oko 10VDC sprječavamo da se U6 previše zagrije. Dakle, ovo nije efikasna tehnika pretvaranja energije, ali radi u naše svrhe. NAPOMENA: ovdje upotrijebite najmanje 1/2W otpornik ili više. Krug troši oko 55 ma, pa je rasipanje snage u R19 oko 1/3W na osnovu P = I ** 2*R ili P = 55ma x 55ma x 120 ohma = 0.363W. Sljedeći U6 izlazi čisti 5V DC sa C4 i C5 na izlazu za filtriranje bilo kakve buke na 5V dalekovodu. Ovaj 5V DC napaja sve IC -ove na ploči.

Iz TR1 također uzimamo uzorak nefiltriranog izmjeničnog signala i unosimo ga u potenciometar RV1 koji se koristi za podešavanje razine koja se dovodi na detektor ukrštanja. R18 i R17 formiraju razdjelnik napona kako bi dodatno smanjili nivo izmjeničnog napona koji dolazi. Zapamtite da ovo dolazi na 12V AC i moramo ga smanjiti na manje od 5 V kako bi radio s našim detektorom ukrštanja koji je samo napaja 5VDC. R15 i R16 osiguravaju ograničavanje struje, dok su D1 i D2 namijenjeni sprječavanju prenapona op-amp U5. U prikazanoj konfiguraciji izlaz U5 na pinu 1 će se izmjenjivati između +5V i 0V svaki put kada se dolazni sinusni val promijeni iz pozitivnog u negativan. Ovo generira kvadratni val od 60 Hz koji se dovodi do mikrokontrolera, U4. Program učitan na U4 tada koristi ovaj kvadratni val od 60Hz za povećanje sata svaki minut i sat. Kako se to radi bit će raspravljeno u odjeljku o softverskom programu i komentarima na softver.

U7 registar pomaka 74HC595 koristi se jer imamo ograničen broj digitalnih pinova na mikroprocesoru, pa se koristi za proširenje broja izlaza. Na mikroprocesoru koristimo 4 digitalna pina, ali možemo kontrolirati 7 segmenata na ekranu putem 74HC595. To se postiže prebacivanjem unaprijed određenih uzoraka bitova, pohranjenih u mikrokontroleru, i koji predstavljaju svaku znamenku za prikaz, u registar pomaka.

Zaslon koji se ovdje koristi je zajednička anoda, pa moramo uključiti nivo signala koji izlazi iz 74HC595 da bismo uključili segment. Kada bi segment trebao biti uključen, signal koji izlazi iz 74HC595 izlaznog pina bit će na +5V, ali treba nam da pin koji se napaja na zaslonu bude na 0V kako bismo uključili taj segment prikaza. Dakle, za to su nam potrebni šesterokutni pretvarači U2 i U3. Nažalost, jedan pretvarač IC može podnijeti samo 6 inverzija pa su nam potrebne dvije od njih iako na drugom koristimo samo jedno od 6 vrata. Nažalost rasipnički. Možda ćete se pitati zašto ovdje ne biste koristili uobičajeni prikaz tipa katode i uklonili U2 i U3? Pa odgovor je da možete, slučajno imam zajednički tip anode u opskrbi dijelovima. Ako imate ili želite koristiti uobičajeni prikaz tipa katode, samo uklonite U2 i U3 i ponovno spojite Q1 - Q4 tako da su tranzistorski kolektori spojeni na pinove zaslona, a odašiljači tranzistora na masu. Q1 - Q4 kontrolira koji je od četiri 7 -segmentna ekrana aktivan. Ovim upravlja mikrokontroler, preko pinova spojenih na bazu tranzistora Q1 - Q4.

Dugmad za povećanje i podešavanje će se koristiti za ručno podešavanje tačnog vremena kada je u pitanju stvarno korištenje sata. Kada pritisnete dugme Set jednom, dugme Increment se može koristiti za kretanje kroz sate prikazane na ekranu. Kada se dugme Set ponovo pritisne, dugme za povećanje se može koristiti za korake kroz minute prikazane na ekranu. Kada se tipka Set pritisne treći put, vrijeme se postavlja. R13 i R14 povlače pinove mikrokontrolera povezane s ovim gumbima nisko kada se ne koriste.

Imajte na umu da smo ovdje skinuli U4 (Atmega328p) sa tipične Arduino UNO prototipne ploče i stavili je na prototipnu ploču s ostatkom našeg kola. Da bismo to učinili, moramo minimalno osigurati kristal X1 i kondenzatore C1 i C2 koji osiguravaju izvor takta za mikrokontroler, vezni pin 1, pin za resetiranje, visoki i osigurati napajanje od 5VDC.

Korak 2: Upravljačka ploča vašeg kruga

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

Bez obzira na to gradite li krug točno onako kako je prikazano na dijagramu kruga ili možda koristite malo drugačiji transformator, tip ekrana ili druge komponente, prvo biste trebali zamisliti krug kako biste bili sigurni da radi i da razumijete kako funkcionira.

Na slikama možete vidjeti da je za izradu cijele stvari potrebno nekoliko ploča, kao i Arduino Uno ploča. Dakle, da biste programirali mikrokontroler ili eksperimentirali ili izvršili promjene u softveru, u početku će vam trebati IC mikrokontrolera na UNO ploči, tako da možete spojiti USB kabel na njega i vaše računalo da biste učitali program ili izvršili izmjene softvera.

Jednom kad sat počne raditi na matičnoj ploči i programirate mikrokontroler, možete ga isključiti iz utičnice i priključiti u utičnicu na završnoj verziji stalnog sata na prototipnoj ploči. Obavezno slijedite antistatičke mjere opreza kada to radite. Prilikom rukovanja mikroprocesorom koristite antistatičku narukvicu.

Korak 3: Konstrukcija kola na Protoboard -u

Konstrukcija kola na Protoboardu
Konstrukcija kola na Protoboardu
Konstrukcija kola na Protoboardu
Konstrukcija kola na Protoboardu

Krug je izgrađen na komadu prototipne ploče i ožičen od točke do točke pomoću žice za omatanje #30 AWG. Pruža čvrst i pouzdan rezultat. Budući da transformator koji imam ima muški utikač od 5 mm na kraju kabela, montirao sam odgovarajuću žensku utičnicu na stražnju stranu ploče rezanjem, savijanjem i bušenjem komada ravne aluminijske trake široke 1/2 kako bih napravio prilagođen držač, a zatim ga pričvrstite na ploču s malim 4-40 matica i vijaka. Mogli ste jednostavno odrezati konektor i lemiti preostale žice za napajanje na ploču i uštedjeti oko 20 minuta rada, ali nisam želio da transformator bude trajno pričvršćen na ploču.

Korak 4: Kreiranje utičnice za ekran i davanje nogu

Stvaranje utičnice za ekran i davanje nogu
Stvaranje utičnice za ekran i davanje nogu
Stvaranje utičnice za ekran i davanje nogu
Stvaranje utičnice za ekran i davanje nogu
Stvaranje utičnice za ekran i davanje nogu
Stvaranje utičnice za ekran i davanje nogu

Budući da zaslon ima 16 pinova, po 8 sa svake strane, s razmakom između pinova koji je širi od standardne 16 pinske IC utičnice, moramo prilagoditi veličinu utičnice tako da odgovara ekranu. To možete učiniti tako da jednostavno pomoću par rezača žice odrežete plastiku koja spaja dvije strane utičnice, odvojite ih i zasebno ih lemite na ploču s razmakom koji odgovara razmaku pinova na zaslonu. To je poželjno učiniti tako da ne morate lemiti izravno na igle ekrana i izlagati ekran pretjeranoj toplini. Na gornjoj ploči na gornjoj slici možete vidjeti utičnicu na kojoj sam ovo uradio.

Kako bih zaslon ispravno stajao, pričvrstio sam dva vijka od 1 na donje dvije kutne rupe prototipne ploče, kao što je prikazano na fotografijama, kako bih napravio jednostavno postolje. Ovo je bilo prilično nepodnošljivo, pa ako to učinite, možda ćete želite staviti nešto teško na stražnju stranu vijaka kako biste to stabilizirali.

Korak 5: Provjerite ožičenje ploče i pripremite se za kalibraciju

Provjera ožičenja tiskane ploče i priprema za kalibraciju
Provjera ožičenja tiskane ploče i priprema za kalibraciju

Nakon što je ploča spojena, ali prije uključivanja IC -ova ili zaslona ili uključivanja, dobra je ideja provjeriti veze ploče s DVM -om. Većinu DVM -ova možete postaviti tako da pišu kada postoji kontinuitet. Postavite svoj DVM u ovaj način rada, a zatim slijedite shemu strujnog kruga i provjerite što je moguće više spojeva kruga. Provjerite postoji li prekid strujnog kruga ili blizu njega između +5V i uzemljenja. Vizuelno proverite da li su sve komponente povezane na ispravne pinove.

Zatim spojite transformator na strujno kolo i uključite ga. Prije nego što priključite bilo koju IC ili zaslon, provjerite imate li točno 5V DC na 5V strujnoj žici s opsegom ili DVM -om.

Sljedeće uključite SAMO Op-Amp U5 IC u pripremi za sljedeći korak. Ovdje ćemo provjeriti da li naš unakrsni krug stvara kvadratni val i podesiti potenciometar RV1 za čisti signal od 60 Hz.

Korak 6: Kalibracija kruga

Kalibracija kruga
Kalibracija kruga
Kalibracija kruga
Kalibracija kruga

Jedina kalibracija koju je potrebno izvršiti je podešavanje potenciometra RV1 za ispravan nivo signala koji napaja detektor ukrštanja. Postoje dva načina za to:

1. Stavite sondu opsega na pin 1 U5 i spojite žicu uzemljenja sonde opsega na masu kruga. Zatim podesite RV1 dok ne dobijete čisti kvadratni val kao što je prikazano na gornjoj slici. Ako na ovaj ili onaj način previše podesite RV1, nećete imati kvadratni ili izobličen kvadratni val. Uvjerite se da je frekvencija kvadratnog vala 60 Hz. Ako imate moderan opseg, vjerovatno će vam reći frekvenciju. Ako imate drevni opseg poput mene, pobrinite se da kvadratni val bude približno 16,66 ms ili 1/60 sekundi.

2. Pomoću brojača frekvencija ili DVM -a u Frequency modu izmjerite frekvenciju na Pin 1 na U5 i podesite RV1 za točno 60 Hz.

Nakon što se ova kalibracija završi, isključite krug i priključite sve IC -ove i zaslon kako biste dovršili izgradnju kola.

Korak 7: Arduino program

Program je potpuno komentiran tako da možete saznati detalje svakog koraka. Zbog složenosti programa teško je opisati svaki korak, ali ovako funkcionira na vrlo visokom nivou:

Mikroprocesor prima dolazni kvadratni val od 60 Hz i broji 60 ciklusa te povećava broj sekundi nakon svakih 60 ciklusa. Kada broj sekundi dostigne 60 sekundi ili 3600 ciklusa, broj minuta se povećava, a broj sekundi se vraća na nulu. Kada broj minuta dosegne 60 minuta, broj sati se povećava, a broj minuta se vraća na nulu. odbrojavanje sati se vraća na 1 nakon 13 sati, tako da je ovo sat od 12 sati. Ako želite 24 -satni sat, samo promijenite program tako da nakon 24 sata vratite sate na nulu.

Ovo je eksperimentalni projekt, pa sam pokušao upotrijebiti Do-While petlju za suzbijanje odbijanja prekidača na tipkama Set i Increment. Radi prilično dobro. Kada jednom pritisnete dugme Set, dugme Increment se može koristiti za kretanje kroz sate prikazane na ekranu. Kada se dugme Set ponovo pritisne, dugme za povećanje se može koristiti za korake kroz minute prikazane na ekranu. Kada se tipka Set pritisne treći put, vrijeme se postavlja i sat počinje raditi.

Obrasci od 0 i 1 koji se koriste za prikaz svakog broja na 7-segmentnim ekranima pohranjeni su u nizu pod nazivom Seven_Seg. U zavisnosti od trenutnog vremena na satu, ovi obrasci se šalju na IC 74HC595 i šalju na ekran. Koja od 4 znamenke zaslona je uključena u bilo kojem trenutku za primanje ovih podataka, kontrolira mikroprocesor putem zaslona Dig 1, 2, 3, 4 pinova. Kada se krug uključi, program prvo pokreće testnu rutinu pod nazivom Test_Clock koja šalje ispravne znamenke kako bi osvijetlile svaki zaslon s brojem od 0 do 9. Dakle, ako vidite ovo kada se uključite, znate da ste sve izgradili ispravno.

Korak 8: Lista dijelova

1 - Transformator 120VAC do 12VAC približno 100 mA ili više1 - Prototipna ploča približno 3,5 "x 3,5" 1 - 4 -znamenkasti 7 -segmentni ekran YSD -439K2B -35 ili ekvivalent (Sparkfun) 2 - Mali gumbi za postavljanje na PCB NO (bilo koji) 4 - 2N3904 NPN tranzistori 8 - 330 ohmski otpornici2 - 74LS04 Šesterokutni pretvarači1 - 74HC595 serijski prema paralelnom 8 bitnom registru pomaka 1 - LM358 OP -AMP (komparator) 1 - ATMEGA328P mikrokontroler (Creatron) 4 - 4,7K otpornici 7 - 10K otpornici1 - 1N4007 ili 1N4001 dioda diode1 - 120 ohm, otpornik 1/2W ili 1W1 - 10K potenciometar za montažu na PCB1 - 470uF 25V kondenzator1 - 7805 TO220 regulator napona paketa1 - 10uF 10V kondenzator2 - 0,1 uF 10V kondenzatori1 - 16MHz kristal (Sparkfun) 2 - 22pF kondenzatori1 - ženski priključak Opcionalno za ugradnju muškog utikača ako postoji na vaš zidni transformator) 2 - 16 -polne IC utičnice2 - 14 -pinske IC utičnice1 - 8 -polna IC utičnica1 - 28 -polna IC utičnica2 - 1 "dugačke oko 4 ili 6 vijaka i odgovarajuće matice2 - 1/ 4 "dugački vijci #4-40 i odgovarajuće matice1 - komad ravne aluminijske trake široke 1/2", prilagođeni rez i izbušene prema veličini

#30 AWG žica za umotavanje žice#22 AWG žicaSpajkanje

Preporučuje se: