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:
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.
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.
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