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.

29 Eylül 2009 Salı

ATMEGA8 ile DS1820 Algılayıcı ve LCD Göstergeli Termometre


Giriş

Sıcaklık ölçümlerindeki yöntem çeşitliliği birçok alternatif ve yaklaşık şekli sunar. Bu çeşitlilik içinden en uygun olanı seçmek kişinin bilgi ve olanaklarına kalmıştır.

Bu projede algılayıcı içinde algılayıcı ve analog dijital çevirici bulunan ve ölçüm sonucunu dijital olarak verebilen DS1820 sıcaklık algılayıcısı kullanıldı.

Sıcaklık değerini göstermek için sayısal bir LCD ekran kullanıldı. Bu LCD ekran daha önceki projelerde nasıl kullanıldığı ve çalıştığı hakkında bilgi verildi. Daha ayrıntılı bilgi için internet ve kitaplarda araştırma yaplıması kişinin kendi tercihine kalmıştır.

LCD olarak 3 1/2 dijit sayısal LCD ekran kullanıldı. Çünkü bu LCD üzerinde "-" işareti ayrıca kontrol edilebilmekte. Tabii ki binler hanesi olarak tanımlanabilen soldan birinci hane sadece "1" rakamını gösterebilmekte. Dolayısı ile "+" işaretinin de gösterebilme yeteneğine sahip. Bu sayede ekran neredeyse sadece sıcaklık gösterecek şekilde yapılmış denebilecek (0C) gösterimi hariç) bir yapıda.

Orjinal LCD ekran projesine bazı eklemeler ve düzenlemeler ile bu proje için kullanılabilir hale getirildi.

Pil veya benzeri alternatif enerji kaynakları ile uzun süreli kullanım için devre biraz fazla güç çekiyor.

DS1820

Bu sıcaklık algılayıcısı biraz değişik bir ürün. Dallas Semiconductor firması tarafından geliştirillmiş bir iletişim protokolüne sahip. 1-telli bağlantı olarak isimlandirilen bir iletişim yöntemi ile kullanılıyor. Bacak bağlantıları incelendiğinde görüleceği üzere bacakları Vcc, GND ve veri ucundan oluşuyor. Tüm iletişim bu veri ucu üzerinden veri aktarımı ve komut aktarımı bu bacak üzerinden sağlanıyor. Bu işlem zamanlama kontrolu üzerinden sağlanıyor. Bu sayede bir karışıklık olmadan veri ve komut aktarınımı mümkün oluyor. Daha ayrıntılı bilgi internet üzerinden elde edilebilir.

Şekil-1 :DS1820 bacaklarının alttan görünümü.

LCD

Burada kullanılan LCD sadece rakamları gösterebilen ve herbir hane parçası için bir bacak bağlantısı içeren bir yapıya sahip. Yani herbir hane parçasını sürmek için bir sürücü ucuna bağlanıyor. Aslında bu işlemci ile ancak yardımcı devreler ile mümkün , zaten o şekilde sağlandı. LCD sürme işleminin değişken gerilim ile yapılması gerekiyor devre bunu sağlaması için düzenlenerek çalıştırılıyor. LCD çalışması ve yapısı hakkında ayrıntılı bilgi internet üzerinde araştırma gerektirdiğini belirtelim.

Donanım Düzenlemeleri

Devre bu projede kullanmak için:
  • öncelikle RS485 ara birimi devre dışı bırakılıyor. Çünkü devre dışına bir
    iletişim söz konusu değil. (kart üzerinde soketleri dursa bile)
  • 4 dijit için kullanılan binler hanesi hane sürücüsü devre dışı bırakılıyor. (4534 - IC5)
  • Soldan ilk ondalık nokta ikinci ondalık nokta ile birleştiriliyor ve soldan ilk ondalık nokta sürücüsü "-" ile bağlanıyor.
  • Sağdan ilk ondalık nokta sürekli yakılıyor ve diğer tüm noktalar söndürülüyor.
  • Tabii ki DS1820 'in veri bacağı IC1 ATMEGA8'in 28. bacağı ( PC5 bacağı ) ile bağlantı oluşturuluyor. (Vcc ve GND bacaklarıda)(DS1820 kullanım kolaylığı için kablo ile karta bağlantısı sağlandı)
  • DS1820'nin veri bacağına sürme özellikleri için veri bacağı ile Vcc arasına bir tane 4k7 direç bağlandı.

Program Akışı

Program konusunda biraz değinilirse;
  • öncelikle devreye besleme geldiğinde işlemci başlama durumu ile zamanlayıcı ve devre ilk şartları yerine getirilir.
  • Sonra devre LCD ilk değerleri ekranda gösterir.
  • Zamanlayıcı süresi dolana kadar bekler. Zamanlayıcı süresi dolduğunda LED yakılır ve bir sıcaklık okuyucu bayrağı işaretlenir.
  • İşlemci sıcaklı okuma işlemine başlamadan sıcaklık okuyucu bayrağını bayrağı işaretini kaldırır.
  • Sıcaklık okuma işlemi için sıcaklık algılayıcısına sıcaklık değerini ölç komutu gönderilir.
  • Ardından sıcaklık algılayıcısına ölçülen değeri işlemciye gönder komutunu gönderir. Bu işlem sonunda LED söndürülür.
  • Okuma işleminden elde edilen değerlere göre işlemci alınan değerleri inceleyip bizim anlayacağımız (LCD üzerinde gösterilecek) şekle dönüştürür. (Hex değerleri onluk sistemine çevirir)
  • son olarak elde edilen onluk sıcaklık değerini LCD ekranda gösterir ve bir sonraki sıcaklık okuması için Zamanlayıcı süresi sonunu bekler.

Zamanlayıcı ve gösterme döngüsü ile sürdürülür.

Devre

Devre aslında “Atmega8 ile LCD Ekranlı Termometre” projesinde kullanılan devrenin LM35 yerine DS1820 takılması ve 4k7 direnç eklenmesi kaydıyla aynı. Ölçme işlemlerinde kolaylık sağlaması için DS1820 kablo ucuna lehimlendi. Adı geçen proje bu devre için referanstır. O devre ile aralarındaki ana fark sıcaklık değerinin okurması ile ilgi. O da zaten işlemci üzerine yüklenen programı ilgilendiriyor. Bu devrede IC5 kullanılmıyor.(3 1/2 dijit LCD ekranda süreciği dijit yok) Devre ile ilgili dosyalar içinde sadece bu devre için baskı devre mevcut. İsteyen onu yapabilir.

Şekil-2 :Bacakları kabloya lehimlenmiş DS1820 .

Not: Bu projede ölçüm çözünürlüğü 0,5C olan sistem kullanıldı. Tabii isteyen yüksek çözünürlük sistemini kullanabilir(eh biraz araştırma iyi olacaktır). Bu nedenle diğer baytlar okunsa bile sadece ilk 2 bayt üzerinde işlem yapıldı.

Şekil-3 :Kartın üzerine lehimlenmiş DS1820 kabloları ve 4k7 direnç.


Şema

Şema dikkatle incelenirse neredeyse “Atmega8 ile LCD Ekranlı Termometre” ile aynı olduğu görülür. Blok şeması devre şeması hakkında bir fikir verecektir. Dikkate edilecek olan DS1820 DQ ve Vcc arasına eklenecek olan 4K7 R-ek direncidir.Donanım zaten işlemci ve DS1820 sayesinde yeterince basitleştirilmiştir. Geri kalan işlemci üzerinde yazılıma yüklenmiştir. Aslında dikkat ettiyseniz DS1820 üzerinde ADC olmayan işlemciler ile bile rahatlıkla kullanılabilecek bir donanım.

Şekil-4:Devrenin blok şeması


Şekil-5:Devrenin şeması


İşlemcinin veriyi işlemesi

Bu bölüme değinmeden geçmek yerinde olmaz. Bu hali ile işlemci bilgisayara 2 baytlık veri göndermekte. Ama bunları DS1820'den okunmuş halinden biraz farklı halde gönderiyor.

Bilgisayarda ise sıcaklığın değerlendirilmesi için gelen değerin onluk sisteme çevrildiğini varsayarak. Her zaman için ölçüm 0,5 C'lik çözünürlükte olduğuna göre elde edilen bilgi doğrudan 2'e bölünerek istenen sıcaklık elde edilebilir.

Sıcaklık= ölçülen değer/2 tabi bu sonuç pozitif değerler için geçerli.

Negatif sıcaklık değerleri için ise basitçe

Sıcaklık =(ölçülen değer-256)/2 olarak hesaplanabilir.

Öncelikle işlemci yüksek baytı inceliyor eğer 0x00 ise ölçüm sonucu pozitif ve bu işlem sürdürülüyor. Eğer değer 0xFF ise ölçü değeri o zaman negatif oluyor ki bu durumda LCD ekran üzerindeki "-" işareti aktifleştiriliyor. Ve 256-ölçüm(düşük bayt) işlemi uygulanıyor. Buraya kadar sadece sıcaklığın +/- belirlendi.

Bu noktada ölçüm(düşük bayt)

Devre Yapımı

Devre yapımında kritik bir eleman yok. Baskı devre kartı üzerinde geçekleştirildiğinde standart eleman yerleşimi göz önüne alınarak devre kurulabilir. Bu noktada diğer devre montaj teknikleri kullanıldığında bacakların doğru bağlanması önemlidir. Tabii ki kristal topraklanmalıdır. Devrede 7805 5V gerilim regülatörü üzerinden geçen akım göreceli olarak küçük olduğu için ek bir soğutucu kullanımına gerek duyulmamamıştır.
Tüm dirençler çeyrek wattır.
Besleme konusunda bir sorun oluşturmayacağınızı düşünüyorsanız girişteki köprüyü devre dışı bırakabilir veya tek bir diyotla değiştirebilirsiniz. (Kendi besleme kaynağınız varsa ve devreyi kendiniz kullanacaksanız). Bacak bağlantıları uyan başka bir LED kullanılabilir. Entegreler için soket kullanılması sonradan oluşabilecek sorunların çözümünde size yardımcı olabilecektir. Belki daha sonra tümdevreleri başka bir devre üzerinde kullanmak isteyebilirsiniz. Sizin imkan ve tercihlerinize kalmış bir durum...

Şekil-6:Devrenin yerleşim planı.Kırmızı renkli eleman kartın altına lehimlenmiştir.



Şekil-7:Devrenin toplanmış ve denenmiş hali



Şekil-8:LCD soketi değiştirilmiş hali

Şekil-8'de görülen LCD soketi bir zorunluluk sonucu değiştirildi. LCD ekran ile ilgili projelerde görülen LCD soketi bu proje uygulamasında bazı sorunlara(temas)yol açtığı için değiştirilmesi zorunluluğu doğdu. Aslında alınması gereken en önemli ders malzeme seçiminde kaliteli olanların tercih edilmesinin bir lüks olmadığı, aksine daha sonra ortaya çıkabilecek sorunların önlenmesi açından önemli olduğudur. Not: Bu soket LCD soketi değil ama diğerine göre daha iyi.

Şekil-9:Oda sıcaklığını ölçerken


Şekil-10:Buzdolabı buzluğu sıcaklığını ölçme(aşamalı düşüşte çekilmiş resimler)

Şu günlerde hava sıcaklığı henüz eksi değerlere ölçebilecek kadar düşmemişken eksi sıcaklık değerlerini ölçülebilecek yerler arasında en ulaşılabileni tabii ki buzdolabı. Buzdolabı buzluğu heleki derin dondurucusu varsa eksi sıcaklık testi için ideal. Şekil-10 bunu gösteren bir dizi resimden oluşuyor.

Besleme ister doğrudan adaptör bağla, istersen fiş-priz bağlantısını kullan. Ama devre kutu içine konulacaksa bu fiş-priz bağlantısı bağlantısı kullanışlı olacaktır.
LED sürekli yanıyorsa devreye besleme geliyor demektir .Devrenin çalıştığı, daha doğrusu ölçüm yaptığı led'in sönüp yanmasından takip edilebilir.

NOT: Programın ds1820 ile ilgili okuma bölümünü bir başkasının projesinden aldığımı belirtmeliyim. İnternette bulabilirsiniz


Ekler:

ATMEGA8 hakkında bilgi-www.atmel.com

ATMEGA8 ile DS1820 Algılayıcı ve LCD Göstergeli Termometre için dosyalar- birleşik

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

Hiç yorum yok:

Translate

Sayfalar

Etiketler

İzleyiciler