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

2 Eylül 2009 Çarşamba

ATMEGA8 ve bilgisayar ile DS1820 algılayıcı RS485 iletişimli Termometre


Giriş

Sıcaklık ölçümü ile ilgili değişik araçlar ve yöntemler var. Elektronik olarak sıcaklık ölçümü “Atmega8 ile LCD Ekranlı Termometre” , “LCD Ekran ve Atmega8 RS485 İletişimi Termometre”, “Atmega8 Led Ekran ve Atmega8 Termometre RS485 İletişimi” ve “ATMEGA8 ve bilgisayar ile RS485 iletişimli Termometre” gibi uygulamalar ile LM35 analog sıcaklık algılayıcısı ile yapıldı. Bu algılayıcı iyi idi ama ne kullanmak için bir analog dijital çevirici gerektiriyor. Bu projede ele alınacak olan sıcaklık algılayıcısı biraz farklı,(DS1820) doğrudan sıcaklığa göre bir dijital çıkış verebiliyor. Bu iyide bu işi nasıl 3 bacaklı bir bağlantı üzerinden başarabiliyor?

DS1820 dijital çıkış verebilen bir sıcaklık algılayıcısıdır. İşlemciye bilgi iletişimi biraz ilginç. Dallas Semiconductor tarafından geliştirilen bir iletişim yöntemi. Yani tüm iletişim tek bir hat üzerinden (GND bağlantısı doğal bir bağlantı sayılmak üzere) gerçekleştiriliyor. Bu yüzden bu bağlantı adına 1-hatlı bağlantı denmektedir..
DS1820 ve 1-hatlı bağlantı

Aslında 1-hatlı bağlantıyı kullanan birçok elektronik eleman var. Ama burada ele alınan elaman DS1820 olacak.

Temelde tüm iletişim tek hat üzerinden gerçekleştiriliyor. Gerçekleştirme şekli sıkı sıkıya şekillendirilmiş bir zamanlama kontrolu üzerinden oluyor.

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

İşlemci veri gönderecekse;

1 için uzun bir darbe oluşturacak; 0 için ise kısa bir darbe oluşturacak. DS1820 bu sinyalleri okuyup gerekli biti alacaktır.(bir bit için)

DS1820 veri gönderecekse;

İşlemci zaten veri alma işlemine hazırdır çünkü kendisi bir veri istemiştir. İşlemci kısa bir darbe oluşturacak ve DS1820 buna ; 1 için uzun bir darbe ve 0 için kısa bir darbe ile karşılık verecektir.

Bit işlemi ile ard arda tekrarlanarak bayt elde edilir.

iş aşamaları 1-hatlı port üzerinden DS1820 erişimi için protokol:
  • Başlama
  • ROM fonksiyon komutu
  • Bellek fonksiyon komutu
  • İş/Veri

DS1820 ile haberleşme aşamaları...
  • işlemci tarafından bir sıfırlama darbesi gönderilir.
  • DS1820 tarafından HAZIR darbesi ile cevaplanır.
  • DS1820 ROM bölümünü okumak isteyen okusun, ama biz atlıyoruz
  • -İşlemci sıcaklığı dönüştür komutunu gönderir.
  • işlemci 500ms süresince hattı lojik 1 seviyesinde tutarak sıcaklık çevrilmesine izin verir.
  • Tekrar işlemci tarafından bir sıfırlama darbesi gönderilir.
  • DS1820 tarafından HAZIR darbesi ile cevaplanır.
  • Tabii ki ROM okuma bölümünü atlıyoruz.
  • Bu noktada İşlemci DS1820'nin Geçici Bellek alanını oku komutu gönderiyor.
  • DS1820 bu noktada CRC kontrol baytı dahil olmak üzere 9 bayt gönderir.
  • işlemci tarafından bir sıfırlama darbesi gönderilir.
  • DS1820 tarafından HAZIR darbesi ile cevaplanır.

bir sıcaklık okuma işlemi tamamlanmış olur. Elimizde CRC kontrolu yapmadığımızı varsayarsak 8 değerlendirilmesi gereken bayt var,bunlar;


  • bayt 0 Sıcaklık LSB
  • bayt 1 Sıcaklık MSB
  • bayt 2 TH Register
  • bayt 3 TL Register
  • bayt 4 Ayrılmış
  • bayt 5 Ayrılmış
  • bayt 6 Count Remain
  • bayt 7 Count Per °C
  • bayt 8 CRC
    Not: biz sadece kırmızı ile işaretli baytları kullanacak ve değerlendirecek şekilde yazılım düzenlendi. Eğer yüksek çözünürlük isteyen varsa pembe ile işaretli baytlar kullanılarak elde edilir. Bunun için biraz internet ve DS1820 üzerine örnekleri araştırmanızı öneririm.

    ilk iki bayt sıcaklık değeridir. LSB sıcaklığın kendisini ve MSB ise sıcaklığın eksi/artı için değer içerir. (asılnda 9.bit oluyor) TH ve TL Registerleri alarm registerleri(kayıt için). 4. ve 5. bayt başka geliştirilen aletlerde kullanılmak üzere ayrılmış. 6. ve 7. bayt yüksek çözünürlük isteyenler için eklenmiş baytlardır. (biraz hesap gerektirir) Son bayt yukarıda belirtilen baytları kullanarak oluşturulan bir hata kontrol baytı.

    DS1820 hakkında ayrıntılı bilgi için biraz internet araştırması yerinde olacaktır. Üreticisi Dallas Semiconductor.
    Devre

    Devre aslında “ATMEGA8 ve bilgisayar ile RS485 iletişimli Termometre” projesinde kullanılan devrenin aynısı tek farkla. LM35 yerine DS1820 takılıyor. Ölçme işlemlerinde kolaylık sağlaması için DS1820 kablo ucuna lehimlendi. Adı geçen proje bu devre için referanstır. Yinede kısaca özet geçersek, İşlemci iki kondansatör C5 ve C6 ve kristal ile saat frekansını üretiyor. L1, C9 ve C10 aslında analog dijital dönüştürücü için ama bu projede analog dijital dönüştürücü kullanılmıyor. D2 ve R2 sistem durum göstergesi olarak DS1820 okuma ve veri gönderilme aşamasını gösteriyor. IC4 ve R1 P1 ile RS485 iletişi noktasını oluşturuyor ki işlemci için RS232/RS485 dönüştürücü işlevini yerine getiriyor. D1,C3,C2,C7,c8 ve IC3 artık iyice bilinen besleme devresini oluşturuyor. IC2 kendisi projenin esas noktasını oluşturuyor DS1820 sıcaklık algılayıcı. Geriye kalan kondansatörler filtre kondansatörleri
    Ş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ı.

    Şekil-4 :Kartın altına lehimlenmiş R3 4K7 direnci.


    Şema

    Şema dikkatle incelenirse neredeyse “ATMEGA8 ve bilgisayar ile RS485 iletişimli Termometre” ile aynı olduğu görülür. Hatta IC2 bile. Çünkü sadece adı değiştirildi. Blok şeması devre şeması hakkında bir fikir verecektir. 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-5:Devrenin blok şeması

    Şekil-6:Devrenin şeması

    İşlemcinin veriyi bilgisayara göndermesi

    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. Öncelikle LSB olarak işaretli bayt 4 bitlik iki gruba ayrılıyor.

    LSB=yüksek 4bit+ alçak 4 bit

    burada gönderilen birinci bayt= "0000"+alçak 4 bit böylece gönderilen birinci bayt tamamlanmış oldu.

    İkinci bayt="1"+MSB 0. biti+"00"+yüksek 4 bit

    bu şekilde gönderilen bilgi bilgisayar tarafından tekrar yorumlanarak sonuç elde edilmiş oluyor. MSB 0.biti aslında bir işaret biti yani ölçülen sıcaklığın eksi veya artı olduğunu belirtiyor. (Ölçüm sonucu işaret ile birlikte 9 bitlik oluyor),

    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ükle 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.

    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-7:Devrenin yerleşim planı.Kırmızı renkli eleman kartın altına lehimlenmiştir

    Şekil-8:Devrenin asıl yapı nedeni. Buzdolabı buzluğunun sıcaklığının ölçümü

    Şekil-9:İyi ki buzdolabı buzluğu küçük ölçeği var, yoksa içinde donarak ölmek işten bile değil

    Bilgisayara buzdolabı uzaktı. Elimde yeterli miktarda kablo yoktu. Bu nedenle yukarıdaki resmi win98 olan bir bilgisayardan elde ettim.
    Devre Elemanları

    120RR1
    470RR2
    4k7R3
    27pFC5,C6
    100nFC1,C4,C7,C9,C10
    10µFC3,C4
    10µHL1
    B125C1500D1
    ATMEGA8IC1
    DS1820IC2
    7805IC3
    ST485IC4
    3,6864Mhz kristalXT1
    6P6C veya 6P2C konnektörP1
    10 Header (ISP10)P3
    kullanılmıyorP2

    Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. Kaliteli 8 ve 28 bacaklı soketler oluşabilecek problemlerin önüne geçecektir.
    Şekil-9:Devrenin toplanmış ve denenmiş hali

    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.

    Bilgisayar Programı

    işlemci tarafı tamamda. Bu devrde tek başına yeterli değildir. Çünkü bu bir iletişim sistemi içeriyor, özellikle bilgisayar ile işlemci devre sistemini kapsadığından bir bilgisayar programı gerekiyor. Bu devre ile verilen program için. Program iki pencereden oluşuyor. Program penceresi ve Seçenekler penceresi.
    Şekil-10:Program penceresinin ekran resmi

    Şekil 10'daki resimde görülen alanların basitce tanımlarını açıklayacak olursak;
    1. Ölçüm sonuç listesi. Ölçümler liste olarak gösterilir.
    2. Son ölçülen değer görüntülenir.
    3. Seçeneklerde belirlenen zaman aralığında ölçüm gerçekleştirilir. Bas başlat-bas bitir.
    4. Kolay okunur ölçüm sonucu (son ölçüm sonucu)
    5. Seçenekler penceresini açar

    Şekil-11:Seçenekler penceresinin ekran resmi

    Şekil 11'deki resimde görülen alanların basitce tanımlarını açıklayacak olursak;
    1. Bilgisayarda seri port seçimini sağlar.
    2. Kaydedilecek metin adı ve yolu(Rapor dosyası)
    3. Kaydedilecek dosyanın adı ve yeri seçinini sağlar.
    4. Seçildiğinde kayıt dosyası izni verir.
    5. Seçenekleri onaylar ve pencereyi kapatır(Program penceresini açar)

    Tabii ki kendi programınızı yazmanıza kim engel olabilir ki...

    video

  • Üstteki film sadece ölçüm devresinin nasıl çalıştığı hakkında genel bir fikir verecektir. LED'in sönme süresi çok kısa, çünkü DS1820'nin ölçüm süresi çok uzun. Eh sıra dışı çözümlerin sıradışı olumsuzlukları olabiliyor.

    Ekler:

    ATMEGA8 hakkında bilgi-www.atmel.com

    ATMEGA8 ve bilgisayar ile DS1820 algılayıcı RS232 iletişimli 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:

    Etiketler

    İzleyiciler