Bip Uyarı Devresi ile bu 7 Segmentli Dijital Saati yapın

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazımızda Arduino kontrollü tasarıma sahip 7 segment LED ekran kullanarak dijital bir saat inşa edeceğiz.

TARAFINDAN:



Devreler Nasıl Çalışır?

Önerilen 7 segmentli saat devresi ucuzdur ve Arduino'daki yeni başlayanlar bile kolaylıkla başarabilir. Bu saat, ikisi saat ve ikisi dakika için olmak üzere dört adet 7 segmentli ekrandan oluşur.

Ekran, 7 segmentli ekranları çalıştırmak için tasarlanmış IC 4026 ile eşleştirilmiştir. Her IC 4026, Arduino tarafından kontrol edilir.



Bu saat, her saat başı bip sesi çıkaran ve saate bakmadan zaman hakkında kaba bir fikir veren bip sesi uyarı işlevine sahiptir. Bu saatin alarm işlevi yoktur.

Arduino kodunun programı derlemek için herhangi bir özel kitaplığa ihtiyacı yoktur. Saatin çok minimalist bir tasarımı var, sadece dört ekran ve AM / PM göstergesi için iki LED var ve her saat bip sesi dışında hiçbir fantezi işlevi yok.

Yazarın prototipi:

7 Segment Dijital Saatin Test Sonucu

İşte karton ve hurda malzemeler kullanılarak tamamlanmış bir prototip:

Dizayn:

Devre, dört adet 7 segmentli ekranı ve saat arduino'nun beynini kontrol etmek için dört IC 4026'dan oluşur. Statik yük nedeniyle yanlışlıkla sıfırlamayı önlemek için IC 4026'nın sıfırlama pinine iki adet aşağı çekme direnci bağlanmıştır. 330 ohm akım sınırlama direnci ile birlikte arduino'ya bağlı AM / PM göstergesi.

Not: 220 ohm ila 330 ohm direnç, ekranın her segmentine bağlanmalıdır.

Bip Uyarı Devresine Sahip 7 Segmentli Dijital Saat

IC 4026'nın pin yapılandırması:

IC 4026

Sesli uyarı devresi:

Bipleyici devresi, IC555 kullanılarak tasarlanmış bir tek kararlı multivibratördür. IC555'in 2. pinine negatif bir darbe beslendiğinde, kabaca bir saniye boyunca bip sesi çıkarır. Bu sesli uyarı, kullanıcının saat hakkında kaba bir fikir edinmesine yardımcı olur. IC555'in 2 numaralı pini, arduino'nun 10 numaralı pinine bağlanmalıdır.

IC 555 sesli uyarı devresi

Program kodu:

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

Zaman nasıl ayarlanır:

Çok minimalist bir tasarım olan 'sıfırlama düğmesi' zamanı ayarlamak için kullanılabilir. Ancak kullanıcı, referans saati yardımıyla saati ayarlamalıdır. Kullanıcı, arduino'yu tam olarak 12’O ​​saatinde sıfırlamalıdır. Bu yapılırsa saat, saati kendi kendine günceller.

Not: Arduino kullanan yukarıda açıklanan 7 segmentli dijital saat, doğru zamanı korumak için 'gerçek zamanlı saat çipine' sahip olmadığından, ortam sıcaklığındaki değişiklik nedeniyle zamanın ileri / geri gitme olasılığı vardır.

Bunu düzeltmek için aşağıdaki adımlar şunlardır:

• Saatiniz referans saatin zamanına birkaç saniye yol gösteriyorsa, yavaşlaması gerekir, farkı not edin ve programdaki değeri milisaniye cinsinden girin.

gecikme (2000) // hata düzeltme (sıcaklığa göre değişir) Bu, her saat birkaç saniye yavaşlayacaktır.

• 2000 değerini değerinizle değiştirin.

• Saat gecikmeleri varsa 'gecikme (0) // hata düzeltme (zamana göre değişir)' ayarını yapın ve programda aşağıdaki değişiklikleri yapın:

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)

Zamanı her dakika hızlandırmak için 'gecikmeyi (9700)' değerinizle değiştirin.

Bu adımlar, zamanın her zaman doğru olacağını garanti etmez, ancak zamanı minimum düzeyde tutmaya yardımcı olur. Önerilen tasarım 12 saatliktir.




Önceki: İki Transistör Kullanan Pil Tam Şarj Gösterge Devresi Sonraki: Corona Etkisi Oluşturucu