Sadržaj:

60Hz Arduino sat: 8 koraka
60Hz Arduino sat: 8 koraka

Video: 60Hz Arduino sat: 8 koraka

Video: 60Hz Arduino sat: 8 koraka
Video: Самый маленький MacBook в мире 2024, Studeni
Anonim
60Hz Arduino sat
60Hz Arduino sat

Ovaj digitalni sat baziran na Arduinu sinkroniziran je mrežnim naponom od 60Hz. Ima jednostavan i jeftin zajednički anodni 4 -znamenkasti 7 -segmentni zaslon koji prikazuje sate i minute. Koristi detektor križanja za otkrivanje kada dolazni sinusni val od 60Hz prelazi nultu točku napona i izvodi kvadratni val od 60 Hz.

U kratkim vremenskim razdobljima učestalost dolaznog sinusnog vala s dalekovoda može se vrlo malo razlikovati zbog opterećenja, ali tijekom dugih vremenskih razdoblja u prosjeku je vrlo precizno do 60Hz. To možemo iskoristiti za izvođenje vremenskog izvora za sinkronizaciju našeg sata.

Korak 1: Korak 1: Sheme

Korak 1: Sheme
Korak 1: Sheme

Postoje dvije verzije kruga, ovisno o tome želite li koristiti transformator sa središnjom slavinom ili onu bez, u oba slučaja rad kruga 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 kruga. Imajte na umu da je važno upotrijebiti zidni adapter koji izlazi 12V AC, a ne 12V DC kako bismo mogli uključiti izmjenični sinusni val radi mjerenja vremena. Vjerojatno biste mogli koristiti i transformator koji emitira 9V AC, uklanja R19 i također radi, ali 12V je vrlo često dostupno. Ovako krug funkcionira:

120V AC na 60Hz pretvara se u 12V AC transformatorom TR1. To se napaja na diodu D4 i ispravlja tako da se samo +ve napon dovodi na kondenzator C3 i izravnava na približno istosmjernu struju s valovanjem. 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 ovom razinom ulaza 7805 mora pasti za približno 10VDC i kao rezultat toga postaje prilično vruće. Upotrebom R19 za pad napona na oko 10VDC sprječavamo da se U6 previše zagrije. Dakle, ovo nije učinkovita tehnika pretvaranja energije, ali radi u naše svrhe. NAPOMENA: ovdje upotrijebite najmanje 1/2 otpornika ili više. Krug troši oko 55 ma, pa je rasipanje snage u R19 oko 1/3W na temelju P = I ** 2*R ili P = 55ma x 55ma x 120 ohma = 0,363 W. Sljedeći U6 daje čisti 5V DC s 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 križanja. R18 i R17 tvore razdjelnik napona kako bi dodatno smanjili stupanj ulaznog izmjeničnog napona. Zapamtite da ovo dolazi na 12 V AC i moramo ga smanjiti na manje od 5 V kako bi radio s našim detektorom križanja 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 izmjenjivat će se između +5V i 0V svaki put kad se dolazni sinusni val promijeni iz pozitivnog u negativan. Time se stvara 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 svake minute i sata. Kako se to radi bit će raspravljeno u odjeljku o softverskom programu i komentarima na softver. U7 koristi se registar pomaka 74HC595 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 zaslonu putem 74HC595. To se postiže prebacivanjem unaprijed određenih uzoraka bitova, pohranjenih u mikrokontroleru, a koji predstavljaju svaku znamenku za prikaz, u registar pomaka. Zaslon koji se ovdje koristi je uobičajena anoda, pa moramo uključiti razine signala koji izlaze iz 74HC595 kako bismo uključili segment. Kad bi segment trebao biti uključen, signal koji izlazi iz 74HC595 izlaznog pina bit će na +5V, ali trebamo da pin koji se napaja na zaslonu bude na 0V kako bismo uključili taj segment zaslona. Dakle, za to su nam potrebni šesterokutni pretvarači U2 i U3. Nažalost, jedan IC pretvarač 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 upitati 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čku vrstu anode u opskrbi dijelovima. Ako imate ili želite koristiti zaslon uobičajene katode, 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 zaslona aktivan. Time upravlja mikrokontroler, preko pinova spojenih na bazu tranzistora Q1 - Q4. Gumbi za povećanje i podešavanje koristit će se za ručno postavljanje ispravnog vremena sata kada je u pitanju stvarno korištenje sata. Kad jednom pritisnete gumb Set, gumb Increment se može koristiti za korake kroz sate prikazane na zaslonu. Kad se tipka Set ponovno pritisne, tipka za povećanje može se koristiti za korake kroz minute prikazane na zaslonu. 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 kruga. Da bismo to učinili, moramo u najmanju ruku osigurati kristal X1 i kondenzatore C1 i C2 kako bismo osigurali izvor takta za mikrokontroler, vezni pin 1, pin za resetiranje, visoki i osigurali snagu 5VDC.

Korak 2: Korak 2: Prototip Breadboard -a

Korak 2: Prototip Breadboard -a
Korak 2: Prototip Breadboard -a
Korak 2: Prototip Breadboard -a
Korak 2: Prototip Breadboard -a

Bez obzira na to sastavljate li krug točno onako kako je prikazano na dijagramu kruga ili možda koristite nešto drugačiji transformator, vrstu zaslona ili druge komponente, prvo biste trebali postaviti krug na krug kako biste bili sigurni da radi i da razumijete kako radi.

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 izmjene 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 za prijenos programa ili izmjene softvera. Jednom kad sat počne raditi na ploči i programirate mikrokontroler, možete ga isključiti iz utičnice i priključiti u utičnicu na završnoj ploči stalnog sata na prototipnoj ploči. Pri tome obavezno slijedite antistatičke mjere opreza. Prilikom rukovanja mikroprocesorom koristite antistatičku narukvicu.

Korak 3: Korak 3: Konačna izgradnja

Korak 3: Konačna izgradnja
Korak 3: Konačna izgradnja
Korak 3: Konačna izgradnja
Korak 3: Konačna izgradnja

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. Omogućuje č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 1/2 široke aluminijske trake široke po mjeri držač i zatim ga pričvrstite na ploču s malim 4-40 matica i vijaka. Mogli ste samo 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: Korak 4: Stvaranje utičnice za zaslon i davanje nogu

Korak 4: Stvaranje utičnice za zaslon i davanje nogu
Korak 4: Stvaranje utičnice za zaslon i davanje nogu
Korak 4: Stvaranje utičnice za zaslon i davanje nogu
Korak 4: Stvaranje utičnice za zaslon i davanje nogu
Korak 4: Stvaranje utičnice za zaslon i davanje nogu
Korak 4: Stvaranje utičnice za zaslon i davanje nogu

Budući da zaslon ima 16 pinova, po 8 sa svake strane, s razmakom između pinova širim od standardne 16 -polne IC utičnice, moramo prilagoditi veličinu utičnice kako bi odgovarala zaslonu. To možete učiniti jednostavno pomoću para rezača žice da biste odrezali plastiku koja spaja dvije strane utičnice, odvojili ih i zasebno lemili 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 zaslona i izlagati zaslon prekomjernoj toplini. Na gornjoj ploči na gornjoj slici možete vidjeti utičnicu na koju sam to učinio.

Kako bi se zaslon ispravno uspravio, 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 bi se stabiliziralo.

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

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

Nakon što je ploča spojena, ali prije uključivanja IC -ova ili zaslona ili uključivanja, dobro je provjeriti veze ploče s DVM -om. Većinu DVM -ova možete postaviti tako da pišu kad postoji kontinuitet. Postavite svoj DVM u ovaj način rada, a zatim slijedite dijagram 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. Vizualno provjerite jesu li sve komponente spojene na ispravne pinove.

Zatim spojite transformator na strujno kolo i uključite ga. Prije priključivanja bilo kojih IC -ova ili zaslona provjerite imate li točno 5V DC na 5V naponskoj vodilici s opsegom ili DVM -om. Sljedeće uključite SAMO Op-Amp U5 IC u pripremi za sljedeći korak. Ovdje ćemo provjeriti generira li naš križni krug kvadratni val i podesiti potenciometar RV1 za čisti signal od 60 Hz.

Korak 6: Korak 6: Kalibracija kruga

Korak 6: Kalibracija kruga
Korak 6: Kalibracija kruga
Korak 6: Kalibracija kruga
Korak 6: Kalibracija kruga

Jedino kalibriranje koje je potrebno izvršiti je podešavanje potenciometra RV1 za ispravnu razinu signala koji napaja detektor križanja. Postoje dva načina za to:

1. Stavite sondu opsega na pin 1 U5 i spojite žicu uzemljenja sonde opsega na masu kruga. Zatim namjestite 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 val ili izobličen kvadratni val. Uvjerite se da je frekvencija kvadratnog vala 60 Hz. Ako imate moderan opseg, vjerojatno će vam reći učestalost. Ako imate drevni opseg poput mene, pobrinite se da razdoblje kvadratnog vala 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 U5 i podesite RV1 za točno 60 Hz. Nakon što je kalibracija izvršena, isključite krug i priključite sve IC -ove i zaslon kako biste dovršili izgradnju kruga.

Korak 7: Korak 7: Arduino program

Program je potpuno komentiran tako da možete shvatiti pojedinosti svakog koraka. Zbog složenosti programa teško je opisati svaki korak, ali ovako funkcionira na vrlo visokoj razini:

Mikroprocesor prima dolazni kvadratni val od 60 Hz i broji 60 ciklusa te povećava broj sekundi nakon svakih 60 ciklusa. Kad broj sekundi dosegne 60 sekundi ili 3600 ciklusa, broj minuta se povećava, a broj sekundi se vraća na nulu. Kad broj minuta dosegne 60 minuta, broj sati se povećava, a minute 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 radno vrijeme vratite na nulu. Ovo je eksperimentalni projekt, pa sam pokušao upotrijebiti petlju Do-While za suzbijanje odbijanja prekidača na tipkama Set i Increment. Radi relativno dobro. Kad jednom pritisnete gumb Set, gumb Increment se može koristiti za korake kroz sate prikazane na zaslonu. Kad se gumb Set ponovno pritisne, gumb za povećanje može se koristiti za korake kroz minute prikazane na zaslonu. Kad se tipka Set pritisne treći put, vrijeme se postavlja i sat počinje raditi. Uzorci 0 i 1 koji se koriste za prikaz svakog broja na 7-segmentnim zaslonima pohranjeni su u nizu pod nazivom Seven_Seg. Ovisno o trenutnom vremenu takta, ti uzorci se šalju na IC 74HC595 i šalju na zaslon. Koja je od 4 znamenke zaslona uključena u bilo kojem trenutku za primanje ovih podataka, mikroprocesor kontrolira preko zaslona Dig 1, 2, 3, 4 pinova. Kad 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: Korak 8: Ponuda PCBWay -a

Time je ovaj post zaključen, ali pokrovitelj ovog projekta je PCBWay koji u to vrijeme slavi svoju 5. obljetnicu. Provjerite na https://www.pcbway.com/anniversary5sales.html i ne zaboravite da njihova usluga montaže sada iznosi samo 30 USD.

Preporučeni: