Vyrobte si tyto 7segmentové digitální hodiny s obvodem pípnutí

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





V tomto příspěvku budeme konstruovat digitální hodiny pomocí 7segmentového LED displeje s designem řízeným Arduino.

PODLE:



Jak obvody fungují

Navrhovaný 7 segmentový hodinový obvod je levný a dokonce i začátečník v Arduinu to může snadno dosáhnout. Tyto hodiny se skládají ze čtyř 7 segmentových displejů, dvou pro hodiny a dvou pro minuty.

Displej je spárován s IC 4026, který je určen pro řízení 7 segmentových displejů. Každý IC 4026 je řízen Arduino.



Tyto hodiny mají funkci upozorňování na pípnutí, která pípá každý začátek hodiny, což poskytuje přibližnou představu o čase bez pohledu na hodiny. Tyto hodiny nemají funkci alarmu.

Kód Arduino nepotřebuje k sestavení programu žádnou speciální knihovnu. Hodiny mají velmi minimalistický design, jen čtyři displeje a dvě LED diody pro indikátor AM / PM a žádné fantastické funkce kromě pípání každou hodinu.

Autorův prototyp:

Výsledek testu 7segmentových digitálních hodin

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

Design:

Obvod se skládá ze čtyř IC 4026 pro ovládání čtyř 7 segmentových displejů a mozku hodinového Arduina. Dva stahovací odpory jsou připojeny k resetovacímu kolíku IC 4026, aby se zabránilo náhodnému resetování v důsledku statického náboje. Indikátor AM / PM připojený k arduino v kombinaci s 330 ohmovým omezovačem proudu.

Poznámka: Odpor 220 až 330 ohmů by měl být připojen ke každému segmentu displeje.

7segmentové digitální hodiny s obvodem upozornění na pípnutí

Konfigurace kolíků IC 4026:

Konfigurace kolíků IC 4026

Zvukový obvod:

Zvukový obvod je pouze monostabilní multivibrátor navržený pomocí IC555. Když je na pin # 2 IC555 přiveden záporný puls, pípne zhruba jednu sekundu. Toto zvukové upozornění pomáhá uživateli získat přibližnou představu o čase. Pin # 2 IC555 by měl být připojen k pin # 10 arduino.

Obvod bzučáku 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---------------//

Jak nastavit čas:

Protože je velmi minimalistický, lze k nastavení času použít „resetovací tlačítko“. Uživatel však musí čas nastavit pomocí referenčních hodin. Uživatel musí arduino resetovat přesně ve 12 hodin. Jedním z nich je čas, který sám aktualizuje čas.

Poznámka: Vzhledem k tomu, že výše vysvětlené sedmisegmentové digitální hodiny využívající Arduino nemají „hodinový čip reálného času“, existuje pro udržení přesného času možnost, že čas může vést / zaostávat kvůli změně okolní teploty.

Chcete-li to napravit, postupujte takto:

• Pokud vaše hodiny vedou čas referenčních hodin o několik sekund, je třeba je zpomalit, poznamenejte si rozdíl a zadejte hodnotu v programu v milisekundách.

delay (2000) // oprava chyby (liší se podle teploty) To každou hodinu zpomalí o několik sekund.

• Nahraďte 2000 svou hodnotou.

• Pokud máte zpoždění hodin, nastavte „zpoždění (0) // oprava chyby (liší se podle času)“ a proveďte v programu následující změny:

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 „delay (9700)“ svou hodnotou, aby se čas každou minutu zrychlil.

Tyto kroky nezaručují, že čas bude vždy přesný, ale pomáhá udržovat čas s minimální nepřesností. Navrhovaný design je 12 hodin.




Předchozí: Obvod indikátoru plného nabití baterie pomocí dvou tranzistorů Další: Generátor efektů Corona