Napravite ovaj 7-segmentni digitalni sat s krugom upozorenja zvučnim signalom

Napravite ovaj 7-segmentni digitalni sat s krugom upozorenja zvučnim signalom

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:

Rezultat testa 7-segmentnog digitalnog sata

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.

7-segmentni digitalni sat s krugom upozorenja zvučnim signalom

Konfiguracija pina IC 4026:

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.

Krug zujala IC 555

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