U ovom ćemo postu izraditi digitalni sat pomoću 7-segmentnog LED zaslona s Arduino upravljanim dizajnom.
PO:
Kako krugovi funkcioniraju
Predloženi 7-segmentni satni krug je jeftin, pa čak i početnici u Arduinu to mogu postići s lakoćom. Ovaj se sat sastoji od četiri 7-segmentna zaslona, dva sata i dva minute.
Zaslon je uparen s IC 4026 koji je dizajniran za vožnju 7-segmentnih zaslona. Svaki IC 4026 kontrolira Arduino.
Ovaj sat ima funkciju zvučnog upozorenja, koja oglašava svaki početak sata, dajući okvirnu predodžbu o vremenu bez gledanja na sat. Ovaj sat nema funkciju alarma.
Arduino kodu nije potrebna posebna knjižnica za sastavljanje programa. Sat ima vrlo minimalistički dizajn, samo četiri zaslona i dvije LED diode za indikator AM / PM i nema otmjenih funkcija osim bipiranja svakog sata.
Autorski prototip:
Evo dovršenog prototipa koji koristi karton i otpadne materijale:
Dizajn:
Krug se sastoji od četiri IC 4026 za upravljanje četiri 7-segmentna zaslona i mozga sata arduino. Dva otporna otpora spojena su na pin za resetiranje IC 4026 kako bi se izbjeglo slučajno resetiranje zbog statičkog naboja. AM / PM indikator spojen na arduino u kombinaciji s otpornikom za ograničavanje struje od 330 ohma.
Napomena: Otpornik od 220 ohma do 330 ohma trebao bi biti povezan sa svakim segmentima zaslona.
Konfiguracija pina IC 4026:
Krug zvučnika:
Zvučni signal je samo monostabilni multivibrator dizajniran pomoću IC555. Kad se negativni impuls uvede na pin # 2 IC555, on otkuca približno jednu sekundu. Ovo zvučno upozorenje pomaže korisniku da ima okvirnu predodžbu o vremenu. Pin broj 2 IC555 trebao bi biti povezan s pinom 10 arduina.
Kod programa:
//---------Program developed by R.Girish---------------//
int mint=13
int hrs=11
int beep=10
int rst=8 // reset to mint ic.
int rsth=9 //reset to hrs ic.
int am=7
int pm=6
int y=0
int t=0
int x=0
void setup()
{
pinMode(beep,OUTPUT)
pinMode(hrs,OUTPUT)
pinMode(am,OUTPUT)
pinMode(pm,OUTPUT)
pinMode(mint,OUTPUT)
pinMode(rst,OUTPUT)
pinMode(rsth,OUTPUT)
}
void loop()
{
digitalWrite(beep,1)
digitalWrite(13,0)
delay(10000)
delay(10000)
delay(10000)
delay(10000)
delay(10000)
delay(10000)
digitalWrite(13,1)
t=t+1
if(t==60)
{
digitalWrite(rst,1)
digitalWrite(rst,0)
digitalWrite(hrs,1)
digitalWrite(hrs,0)
digitalWrite(beep,0)
digitalWrite(beep,1)
x=x+1
y=y+1
t=0
delay(2000) // error fixing (varies with temperature)
}
if(x==13) // display 1'O clock after 12'O clock.
{
digitalWrite(rsth,1)
digitalWrite(rsth,0)
digitalWrite(hrs,1)
digitalWrite(hrs,0)
x=1
}
if(y<12)
{
digitalWrite(am,1)
digitalWrite(pm,0)
}
if(y>=12)
{
digitalWrite(pm,1)
digitalWrite(am,0)
}
if(y==24) y=0
}
//---------Program developed by R.Girish---------------//
Kako postaviti vrijeme:
Budući da je vrlo minimalistički dizajn, 'gumb za resetiranje' može se koristiti za podešavanje vremena. Ali korisnik mora postaviti vrijeme pomoću referentnog sata. Korisnik mora resetirati arduino na točno 12’O sata. Jednom kada se to učini, sat samostalno ažurira vrijeme.
Napomena: Budući da gore objašnjeni 7-segmentni digitalni sat koji koristi Arduino nema 'čip sata u stvarnom vremenu', za održavanje točnog vremena postoji mogućnost da vrijeme može voditi / zaostajati zbog promjene temperature okoline.
Da biste to ispravili, evo koraka:
• Ako vaš sat vodi vrijeme referentnog sata za nekoliko sekundi, treba ga usporiti, zabilježite razliku i unesite vrijednost u program u milisekundama.
delay (2000) // ispravljanje pogrešaka (ovisi o temperaturi) To će usporiti nekoliko sekundi svakih sat vremena.
• Zamijenite 2000 svojom vrijednošću.
• Ako zakašnjete u satu, postavite 'delay (0) // fixing error (mijenja se s vremenom)' i unesite sljedeće promjene u program:
delay(10000)
delay(10000)
delay(10000)
delay(10000)
delay(10000)
delay(10000)
to
delay(10000)
delay(10000)
delay(10000)
delay(10000)
delay(10000)
delay(9700)
Zamijenite 'delay (9700)' svojom vrijednošću da biste ubrzavali vrijeme svake minute.
Ovi koraci ne garantiraju da će vrijeme uvijek biti točno, ali pomažu u održavanju vremena uz minimalnu netočnost. Predloženi dizajn je sat od 12 sati.
Prethodno: Sklop indikatora punog punjenja baterije pomoću dva tranzistora Dalje: Corona Effect Generator