Zrób ten 7-segmentowy zegar cyfrowy z obwodem ostrzegawczym sygnału dźwiękowego

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym poście zamierzamy zbudować zegar cyfrowy wykorzystujący 7-segmentowy wyświetlacz LED z konstrukcją sterowaną przez Arduino.

PRZEZ:



Jak działają obwody

Proponowany 7-segmentowy obwód zegara jest niedrogi i nawet początkujący w Arduino mogą to z łatwością wykonać. Ten zegar składa się z czterech 7-segmentowych wyświetlaczy, dwóch godzin i dwóch minut.

Wyświetlacz jest sparowany z IC 4026, który jest przeznaczony do obsługi 7-segmentowych wyświetlaczy. Każdy układ scalony 4026 jest kontrolowany przez Arduino.



Ten zegar ma funkcję ostrzeżenia dźwiękowego, który emituje sygnał dźwiękowy na początku godziny, dając przybliżony obraz czasu bez patrzenia na zegar. Ten zegar nie ma funkcji alarmu.

Kod Arduino nie wymaga żadnej specjalnej biblioteki do kompilacji programu. Zegar ma bardzo minimalistyczny wygląd, tylko cztery wyświetlacze i dwie diody LED dla wskaźnika AM / PM i nie ma żadnych wymyślnych funkcji poza sygnałem dźwiękowym co godzinę.

Prototyp autora:

Wynik testu 7-segmentowego zegara cyfrowego

Oto gotowy prototyp z tektury i złomu:

Projektowanie:

Obwód składa się z czterech układów IC 4026 do sterowania czterema 7-segmentowymi wyświetlaczami i mózgiem zegara arduino. Dwa rezystory obniżające są podłączone do styku resetowania układu IC 4026, aby uniknąć przypadkowego resetowania z powodu ładunku statycznego. Wskaźnik AM / PM podłączony do arduino w połączeniu z rezystorem ograniczającym prąd 330 omów.

Uwaga: do każdego segmentu wyświetlacza należy podłączyć rezystor od 220 do 330 omów.

7-segmentowy zegar cyfrowy z obwodem ostrzegawczym sygnału dźwiękowego

Konfiguracja pinów IC 4026:

Konfiguracja pinów IC 4026

Obwód brzęczyka:

Obwód brzęczyka to po prostu monostabilny multiwibrator zaprojektowany przy użyciu IC555. Gdy ujemny impuls jest podawany na styk # 2 IC555, wydaje sygnał dźwiękowy przez mniej więcej jedną sekundę. Ten alert dźwiękowy pomaga użytkownikowi z grubsza zorientować się w czasie. Pin nr 2 układu IC555 należy podłączyć do pinu nr 10 arduino.

Obwód brzęczyka IC 555

Kod programu:

//---------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---------------//

Jak ustawić czas:

Ze względu na bardzo minimalistyczną konstrukcję, „przycisk resetowania” może służyć do ustawiania czasu. Ale użytkownik musi ustawić czas za pomocą zegara odniesienia. Użytkownik musi zresetować arduino dokładnie na godzinę 12. Po pierwsze, zegar sam aktualizuje czas.

Uwaga: Ponieważ wyjaśniony powyżej 7-segmentowy zegar cyfrowy wykorzystujący Arduino nie posiada „układu zegara czasu rzeczywistego”, aby zachować dokładny czas, istnieje możliwość, że czas może się wydłużać / opóźniać z powodu zmiany temperatury otoczenia.

Aby to naprawić, oto kroki:

• Jeśli Twój zegar wyprzedza czas zegara odniesienia o kilka sekund, należy go spowolnić, zanotuj różnicę i wprowadź wartość do programu w milisekundach.

delay (2000) // naprawianie błędów (zmienia się w zależności od temperatury) Spowalnia o kilka sekund co godzinę.

• Zastąp 2000 swoją wartością.

• W przypadku opóźnienia zegara ustaw „opóźnienie (0) // naprawianie błędów (zmienia się z czasem)” i wprowadź następujące zmiany w programie:

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)

Zastąp „opóźnienie (9700)” swoją wartością, aby co minutę przyspieszyć czas.

Te kroki nie gwarantują, że czas będzie zawsze dokładny, ale pomaga utrzymać czas przy minimalnej niedokładności. Proponowany projekt to zegar 12-godzinny.




Poprzedni: Obwód wskaźnika pełnego naładowania akumulatora wykorzystujący dwa tranzystory Dalej: Generator efektu koronowego