Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

14 Ağustos 2009 Cuma

Atmega 8 ile LCD mutfak Saati


Zaman için teknolojinin gelişimi ile bazı şeyler değişti. Gün oldu mutfakta haşladığımız yumurtanın isteğimizi gibi olması için neler yapmadık. Kimi zaman süreyi kaçırıp iyi pişmiş bir yumurta yedik.Yada iyi pişmiş bir yumurta beklerken yarı pişmiş veya pişmemiş bir yumurtayla karşılatık. Eh, yerine göre pek iyi bir deneyim olmayabiliyor. Hazır bir çorba yapmak için bile saat ihtiyacı duyduk. Şimdi gidipde mutfak için bir saat mi alalım? Bu projede bir mutfak saati ele alacağız. Aslında bir zamanlayıcı diyelim.

Zamanlayıcı

Belirli bir zaman aralığını ölçmek için oluşturulmuş sistemlerdir. Temelde bu işlemi saatin o anı (yani sıfır noktası diyelim) başlangıç noktası kabul edilerek bu değer üzerine sayılır. Bu işlemi özel bir alete uygularsak;

Sistem sıfır konumundan itibaren istenen değere kadar sayar(ileriye doğru). Bu durumda istenen değerin önceden belirlenmesi veya zamanlayıcının takibi gerekebilir.

İkinci olarak belirlenen bir değer girilir ve bu değerden geriye doğru yani sıfır noktasına sayması istenir. Bu şekilde istenen zaman aralığı elde edilmiş olur.

Devre


Şekil-1 :ATMEGA 8 LCD Mutfak Saati devresinin çalışan bir görüntüsü.

Her iki yönteminde kullanımı mümkündür. İstenen değerin girilmesinde bir sayısal tuş takımı kullanılabilrdiği gibi basit birkaç tuştan oluşan bir devrde yeterli olabilir. Bu projede "Atmega 8 ile LCD Saat" projesinde anlatılan sistem kullanılacaktır. Zaten o projede "ATMEGA 8 ile RS485 iletişimli LCD Ekran" projesinin devamı idi. Bu projede kullanılacak sistem için öncelikle sözü geçen projelerin incelenmesinde fayda var.

Burada basitçe 3 buton kullanacağız.

Başlama/Durdurma, hane ayarları ve sıfırlama gibi işlemler yüklenen bu tuşlar şu hali ile bir kablo ile isp konnektörüne bağlanmıştır.

Not:Sistem için bir alarm çıkışı öngörülmemiştir. Aslında iyi olabilir. Kişinin kendi arzusuna bırakılmıştır.


Şimdi basitçe sistemin çalışmasını ele alırsak;

Bir değer girişmişse, yani başlangıç olarak sıfırdan farklı bir değer varsa, bu durumda sistem saat ve dakika biçiminde bir sayıcı olarak belirlenmiş demektir. Atanabilecek maksimum değer 23:59 şeklinde olacaktır. Dolayısı ile zamanlayıcı geriye doğru sayacaktır ve 00:00 değerine ulaştığında girilmiş olan değere geri dönecek.(Tabii ki başla/durdur butonu ile kontrol edilebilir) Değerler Saat: Dakika şeklinde biçimlenmiştir. (Bu durumda ayıraç noktaları yanıp sönecektir) Sistem başla/durdur butonu ile kontrol edilir. Dolayısı ile bu butona basılana kadar sayma işlemine devam edecektir.

İkinci durumda zamanlayıcı 00:00 değerinden başlar ve ileri doğru sayar. Burada kullanıcı başla/durdur butonuna basana kadar sistem saymaya devam eder. Sayıcı haneleri Dakika:Saniye şeklinde biçimlenir. Tabii ki alabileceği maksimum değer 59:59 olur ki bu değerden sonra 00:00 değerinden devam eder.

Her iki durumda zamanlayıcı devrede iken ayar butonları çalışmaz. Zamanlayıcı dururken ayar butonlarının her ikisine birlikte basılması sistemin 00:00 değerine döndürecektir.

Şekil-2 :Saat için buton işlev ve resimi.

Şema

Şema olarak "Atmega 8 ile LCD Saat " projesinde anlatıldığı ve gösterildiği şekilde aynen geçerli. Değişiklik sadece programda. .

Devre Yapımı

Yapı hakkında ekleyecek bir şey yok. İş sizin bilgi ve tecrübenize kalmış. Lehimleri yaparken dikkatli olur, kısa devre oluşturulmazsa ve kaliteli ürünler kullanıldığı takdirde sorun çıkmaz.

Şekil-3:Kart çalışırken


Şekil-4:Kart ilk açıldığındaki değeri

Butonları isteğin gibi düzenleme kullanma şansın açık. Zevkine ve olanaklarına kalmış.

Devre Elemanları

Listeye eklenecek eleman sadece butonlar. Bunu projeyi inceleyerek kendinizin bulabileceği bir öğeler. "ATMEGA 8 ile RS485 iletişimli LCD Ekran" projesi zaten bu projenin temelini oluşturuyor.

Devre olarak saat projesindeki gibi çalışıyor. Program olarak hem ileri (saniye ve dakika) ve geri (saat ve dakika) olarak düzenlendi. Bunlar başlangıç değerinin 00:00 olma durumuna göre karar verecek şekilde düzenlendi...

Kullanımı

Aletin kullanımı basit.

*Saatin ileri doğru sayması için ekran 00:00 değerine sıfırlanmışken(butonlar ile) başla/durdur butonuna bas. Durdurmak için tekrar bas. Alet sıfırlanana (butonlar ile) kadar başla/durdur yapılabilir.(dakika:saniye biçimindedir) Alet 59:59 değerine ulaştığında 00:00 değeri döner.

*Saatin geriye doğru sayması için saat ve dakika butonları ile istenen değeri ayarla. Başla/Durdur butonuna bas. Durdurmak için tekrar bas. Alet sıfırlanana (butonlar ile) kadar başla/durdur yapılabilir.(Saat:dakika biçimindedir) Alet 00:00 değerine ulaştığı zaman ayarlanan değere geri döner.

*Sıfırlamak için saat ve dakika butonlarını birlikte bas.Ekran 00:00 değerine döner. Yeni değer girişi için bekler.

Not:sıfırlama işlemi zamanlayıcı devrede iken de yapılabilir.



Ekler:

Atmega 8 ile LCD mutfak Saati için dosyalar- birleşik

ATmega8 hakkında ayrıntılı bilgi için

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....

Hiç yorum yok:

Translate

Sayfalar

Etiketler

İzleyiciler