DEVRE AÇIKLAMASI
Devremiz akrep ve yelkovanı da olan digital bir saat devresi. Biraz büyük ve masraflı bir devre. Hem 6 adet display, hem de akrep ve yelkovan birlikte çalıştırılıyor. Mecburen her birini, ayrı ayrı kontrol etmek gerekiyor. Devrenin tasarımı ve programlaması tamamen bana ait. DS 1302 entegresine ait okuma ve yazma işlemleri Sayın Erol Tahir ERDAL Hoca'nın şablon dosyasından alınmıştır. Kendisine buradan teşekkür ediyorum.
Devre 5 volt ile çalışıyor. 7805 regülatör entegresinden 3 adet parelel bağlantılı ve soğutuculu olarak yapılmasına rağmen, yine de hafif ısınma gözlendi. Bundan dolayı 2x6 volt AC trafo tam dalga regüle edildi ve seri olarak 6 amper diyot ile devreye bağlandı. Yüklü halde iken çalışma gerilimi 5.3 volt. Sistemdeki ısı problemi böylece çözüldü.
Display sürücü olarak 74HC595 entegresi kullanıldı. Bu entegre seri girişli ve latch kontrollü 8 bit shift register entegresidir. Display olarak 44cm x 30cm'lik ortak katotlu 6 adet display kullanıldı. 2 display ters çevrilerek, noktaları saniye ikazı olarak kullanıldı.
Günleri (pazar, pazartesi, salı...) göstermek için 4017 entegresi (10'lu sayıcı) kullanıldı. Bu entegrenin clock ve reset kontrolleri Pic16F877 ile yapılıyor. Önce entegre reset ediliyor. DS1302'den alınan GÜN ADI rakamı sayılarak, 4017'ye clock darbesi olarak gönderiliyor. İlgili sayının çıkışı aktif olunca da günleri göstermiş oluyor. Gün gösterme işlemi, sisteme enerji verildiğinde yapılıyor ve devreden çıkıyor. Gece saat 00:00:01 durumunda, yeniden reset edilerek, gün adı sayısı clock darbelerine dönüştürülüyor ve gün ledi bir ileri atlamış oluyor. Ayrıca Ayarlama Moduna geçtiğimizde, bu ledler, saat, dakika, saniye, (tarih) gün, ay, yıl ve gün adı sayısını gösteriyor.
Saatin digital (sayısal) gösterge bölümünü Pic16F877 kontrol ediyor. Saatin analog bölümünü, yani akrep - yelkovan kollarını ise Pic16F84 kontrol ediyor. Pic16F84, PortA.4 nolu bacak ile Pic16F877'den seri olarak saat bilgisi alıyor ve bu bilgileri bir algoritma yardımıyla akrep yelkovan hareketlerine dönüştürüyor. Akrep Yelkovan hareket kontrolü 74HC154 entegresi ile yapılıyor. Bu entegre BCD girişli, 16 çıkışlı decoder/demultiplexer olarak çalışmaktadır. Pic16F84 ile hazırlanan 0-11 arasındaki sayılar, PNP transistörler (BC327) yardımıyla ledleri yakıyor. Akrep için 4 led, yelkovan için ise 6 led kullanılmıştır. Bu arada dikkat! 74HC154 entegresinin aktif çıkışı - negatif'tir. Bundan dolayı PNP transistör kullanılmıştır.
Yelkovan 5'er dakikalık aralarla hareket etmektedir. Aradaki dakikaları göstermek için ise şöyle bir mantık kullanılmıştır. BCD girişli CD4028 (10'lu counter) entegresinin birinci - ikinci - üçüncü - dördüncü çıkışları (sıfırıncı çıkış kullanılmıyor), toplam 10 adet 1N4148 diyodu ile ve bir NPN transistör (BC547) yardımıyla yelkovan ledlerinin tamamına parelel bağlanıyor. Ancak hangi yelkovan ledleri aktif ise, oradaki pozitif gerilimle, ara dakikaları gösteren ledlerin pozitif gerilimleri aynı yerden beslendiği için, yelkovan ledinin aktif olduğu yerdeki 4 adet led de aktif oluyor.
Akrep yelkovanlı digital saatin ayarlama modunda 4 adet tuş kullanıldı. Birinci tuş, Ayar/Kayıt tuşu. Bu tuşa basıldığında, saat ayar moduna geçiliyor ve display'de sadece saat bilgisi görünüyor. İkinci tuş, saat, dakika, saniye, (tarih) gün, ay, yıl, günadı modlarını seçiyor ve tekrar başa dönüyor. Üçüncü ve dördüncü tuşlar ise, aşağı-yukarı sayma işlemini gerçekleştiriyor. Saat ve dakika ayarlanırken, bilgi seri olarak akrep yelkovan devresine de gönderiliyor ve böylece, ayarlama esnasında, akrep ve yelkovan da hareket ediyor.
Saatimiz saat başlarını bir buzzer yardımıyla 200 milisaniyelik bir biip sesiyle duyuruyor. İstenirse, saat başı düdüğü (chime), saatin kutusuna montajlı bir anahtar yardımıyla iptal edilebiliyor. Ayrıca DS1302 entegresine bir adet CR2032 pil bağlanarak, saatimizin, elektrik kesintilerinden etkilenmesi de engellenmiştir.
Saat günde yaklaşık 11 saniye ileri gitmektedir (Sizin yapacağınız devrede farklılık olabilir). Bunu kalibre etmek için, program döngüsüne, her saat başında bir saniye geri almak için bir komut yerleştirilmiştir. Dikkat ! geri alma işlemini basitçe bir PAUSE komutuyla yapmak mümkündür. Ancak saniye bir artıncaya kadar, geriye alma işlemi devam edeceği için sakıncalıdır. Onun yerine 2 saniye bekletip, saati bir saniye ileri almak ve kaydetmek daha doğru olmaktadır. Bu metot tercih edilmiştir. Saatin devre şeması, baskı devresi ve diğer detaylar, kısa bir süre sonra (Elektronik) sayfasının altındaki DOWNLOAD tablosuna ilave edilecektir.