Padarykite šį 7 segmentų skaitmeninį laikrodį su signalo perspėjimo grandine

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įraše sukursime skaitmeninį laikrodį naudodami 7 segmentų LED ekraną su „Arduino“ valdomu dizainu.

PAGAL:



Kaip veikia grandinės

Siūloma 7 segmentų laikrodžio grandinė yra nebrangi ir net pradedantysis „Arduino“ gali tai lengvai atlikti. Šį laikrodį sudaro keturi 7 segmentų ekranai, du valandoms ir du minutėms.

Ekranas yra suporuotas su IC 4026, kuris skirtas vairuoti 7 segmentų ekranus. Kiekvieną IC 4026 valdo „Arduino“.



Šis laikrodis turi perspėjimo pyptelėjimo funkciją, kuri pypsi kiekvieną valandos pradžią, apytiksliai suprasdama laiką, nežiūrėdama į laikrodį. Šis laikrodis neturi žadintuvo funkcijos.

Programai sudaryti „Arduino“ kodui nereikia jokios specialios bibliotekos. Laikrodis yra labai minimalistinio dizaino, tik keturi ekranai ir du šviesos diodai, skirti AM / PM indikatoriui, be jokių išgalvotų funkcijų, išskyrus pyptelėjimą kas valandą.

Autoriaus prototipas:

7 segmentų skaitmeninio laikrodžio bandymo rezultatas

Čia yra baigtas prototipas, kuriame naudojamos kartono ir laužo medžiagos:

Dizainas:

Grandinę sudaro keturi IC 4026, skirti valdyti keturis 7 segmentų ekranus ir „Arduino“ laikrodžio smegenis. Du nulenkiami rezistoriai yra prijungti prie IC 4026 atstatymo kaiščio, kad būtų išvengta atsitiktinio atstatymo dėl statinio įkrovimo. AM / PM indikatorius prijungtas prie „arduino“ kartu su 330 omų srovės ribotuvu.

Pastaba: nuo 220 iki 330 omų rezistorius turėtų būti prijungti visi ekrano segmentai.

7 segmentų skaitmeninis laikrodis su signalo perspėjimo grandine

IC 4026 kaiščių konfigūracija:

IC 4026 kaiščių konfigūracija

Pyptelėjimo grandinė:

Signalo grandinė yra tik monostabilus multivibratorius, sukurtas naudojant IC555. Kai neigiamas impulsas tiekiamas į IC555 kaištį Nr. 2, jis pypteli maždaug vieną sekundę. Šis garso įspėjimas padeda vartotojui susidaryti apytikslę idėją apie laiką. IC555 kaištis Nr. 2 turėtų būti prijungtas prie „arduino“ kaiščio Nr. 10.

IC 555 zuzerio grandinė

Programos kodas:

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

Kaip nustatyti laiką:

Būdamas labai minimalistinio dizaino, „reset“ mygtuku galima nustatyti laiką. Bet vartotojas turi nustatyti laiką naudodamas atskaitos laikrodį. Vartotojas turi iš naujo nustatyti „arduino“ tiksliai 12'O laikrodžiu. Tai padaroma, laikrodis pats atnaujina laiką.

Pastaba: Kadangi aukščiau paaiškintas 7 segmentų skaitmeninis laikrodis, kuriame naudojamas „Arduino“, neturi „realaus laiko laikrodžio lusto“, norint išlaikyti tikslų laiką, yra tikimybė, kad laikas gali sukelti / atsilikti dėl aplinkos temperatūros pokyčių.

Norėdami tai ištaisyti, atlikite šiuos veiksmus:

• Jei jūsų laikrodis nurodo atskaitos laikrodžio laiką keliomis sekundėmis, jį reikia sulėtinti, užsirašykite skirtumą ir įveskite vertę programoje milisekundėmis.

delay (2000) // klaidų taisymas (skiriasi priklausomai nuo temperatūros) Tai sulėtins kelias sekundes kas valandą.

• Pakeiskite 2000 savo verte.

• Jei laikrodis vėluoja, nustatykite „delay (0) // klaidos taisymas (priklauso nuo laiko)“ ir atlikite šiuos pakeitimus programoje:

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)

Pakeiskite „delay (9700)“ savo verte, kad pagreitintumėte laiką kiekvieną minutę.

Šie veiksmai negarantuoja, kad laikas bus visada tikslus, tačiau tai padeda išlaikyti laiką su minimaliu netikslumu. Siūlomas dizainas yra 12 valandų laikrodis.




Pora: Baterijos pilno įkrovimo indikatoriaus grandinė naudojant du tranzistorius Kitas: „Corona Effect Generator“