Vyrobte si tieto 7-segmentové digitálne hodiny s obvodom pípnutia

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku zostrojíme digitálne hodiny využívajúce 7-segmentový LED displej s riadeným dizajnom Arduino.

BY:



Ako fungujú obvody

Navrhovaný 7-segmentový hodinový obvod je lacný a ľahko ho zvládne aj začiatočník v Arduine. Tieto hodiny pozostávajú zo štyroch 7 segmentových displejov, dvoch na hodiny a dvoch na minúty.

Displej je spárovaný s IC 4026, ktorý je navrhnutý pre ovládanie 7 segmentových displejov. Každý IC 4026 je ovládaný Arduino.



Tieto hodiny majú funkciu upozornenia na pípnutie, ktoré pípne každý začiatok hodiny, a poskytuje približnú predstavu o čase bez toho, aby ste sa dívali na hodiny. Tieto hodiny nemajú funkciu alarmu.

Kód Arduino nepotrebuje na zostavenie programu žiadnu špeciálnu knižnicu. Hodiny majú veľmi minimalistický dizajn, iba štyri displeje a dve LED diódy pre indikátor AM / PM a žiadne iné fantázie ako pípanie každú hodinu.

Autorský prototyp:

Výsledok testu 7-segmentových digitálnych hodín

Tu je dokončený prototyp s použitím lepenky a šrotu:

Dizajn:

Obvod sa skladá zo štyroch IC 4026 na ovládanie štyroch 7 segmentových displejov a mozgu hodinového Arduina. Dva sťahovacie odpory sú pripojené k resetovaciemu kolíku IC 4026, aby sa zabránilo náhodnému resetovaniu v dôsledku statického náboja. Indikátor AM / PM pripojený k arduino v kombinácii s rezistorom obmedzujúcim prúd 330 ohmov.

Poznámka: Odpor od 220 ohmov do 330 ohmov by mal byť pripojený ku každému segmentu displeja.

7-segmentové digitálne hodiny s obvodom varovania pípaním

Konfigurácia kolíkov IC 4026:

Konfigurácia pinov IC 4026

Obvod pípania:

Obvod pípania je iba monostabilný multivibrátor navrhnutý pomocou IC555. Keď sa na pin # 2 IC555 privádza záporný impulz, pípne zhruba jednu sekundu. Toto zvukové upozornenie pomáha používateľovi získať približnú predstavu o čase. Kolík č. 2 IC555 by mal byť pripojený k kolíku č. 10 arduina.

Obvod bzučiaka IC 555

Programový kód:

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

Ako nastaviť čas:

„Resetovacie tlačidlo“ je veľmi minimalistický dizajn a je možné ho použiť na nastavenie času. Používateľ však musí nastaviť čas pomocou referenčných hodín. Používateľ musí resetovať arduino presne na 12’O ​​hodiny. Jedným z nich je čas, ktorý si sám aktualizuje čas.

Poznámka: Pretože vyššie vysvetlené 7-segmentové digitálne hodiny využívajúce Arduino nemajú „hodinový čip v reálnom čase“, pre udržanie presného času existuje možnosť, že čas môže viesť / zaostávať v dôsledku zmeny teploty okolia.

Ak to chcete napraviť, postupujte takto:

• Ak vaše hodiny vedú čas referenčných hodín o niekoľko sekúnd, je potrebné ich spomaliť, poznačte si rozdiel a zadajte hodnotu do programu v milisekundách.

delay (2000) // oprava chyby (líši sa podľa teploty) To každú hodinu spomalí o niekoľko sekúnd.

• Nahraďte 2000 vašou hodnotou.

• Ak máte oneskorenie hodín, nastavte „oneskorenie (0) // oprava chyby (líši sa podľa času)“ a vykonajte v programe nasledujúce zmeny:

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)

Nahraďte „oneskorenie (9700)“ svojou hodnotou, aby ste čas každú minútu zrýchlili.

Tieto kroky nezaručujú, že čas bude vždy presný, ale pomáha udržiavať čas s minimálnou nepresnosťou. Navrhovaný dizajn je 12 hodín.




Dvojica: Obvod indikátora úplného nabitia batérie pomocou dvoch tranzistorov Ďalej: Generátor efektov Corona