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.

17 Temmuz 2013 Çarşamba

Atmega8 ve LM75 ile LED Ekranlı Termometre

Elektronik termometreler elektroniği bilenler için sıradan hatta neredeyse ilk başladıklarında yaptıkları ilk devreler arasındadır. Çeşitli haberleşme yöntemlerini kullanan sıcaklık algılayıcılar amaca uygun olarak rahatlıkla seçilip kullanılabilmektedir. Ölçülen sıcaklığın insanların anlayabileceği bir biçimde görüntülenebilmesi için de bir çok ara yüz birimi vardır.

Bu projede "Atmega8 ve LM75 ile LED Ekranlı Termometre" üzerinde duracağız

LM75

Şekil-1 :Küçük bir kart üzerindeki LM75. i2c pull-up dirençleri görülmektedir. Üstteki kondansatörler 100nF ve 10µF'dır

Sıcaklığı ölçen sayısal sistem üzerinde 9 bitlik sıcaklık bilgisini işlemci tarafından okunabilmesi için i2c bağlantısını kullanılır. Her ne kadar., LM75'in sıcaklık alarmı gibi başka işlevleri var ise de, bu projede üzerinde durulmayacaktır. LM75 sıcaklık algılayıcı -55 ile +125 derece arasında ölçüm yapabilmektedir.

LM75 için alet adresi 1001,A2,A1,A0 ve oku/yaz biti ile oluşturulur. Bu projede A2,A1 ve A0 bacakları toprağa bağlandığından 0 olur ve dolayısı ile alet slave adresi 1001000+oku/yaz şeklinde düzenlenir. Buna göre LM75 yaz tanım kodu 10010000(0x90) ve oku tanım kodu 10010001 (0x91) şeklinde olmaktadır.

Şekil-2 :i2c üzerinden işlemci ve LM75 arasındaki iletişim..

Bir sıcaklık verisinin okunmasında;
  • LM75'e başlama durumu gönder 
  • LM75'e tanıma kodunu (çip kodu+adres+ yaz biti) gönder ---LM75'den kabul durumu bekle 
  • LM75'e okunacak bayt adresini (0x00) gönder --- LM75'den kabul durumu bekle 
  • LM75'e başlama durumu gönder --- LM75'den kabul durumu bekle 
  • LM75'e tanıma kodunu (çip kodu+adres+ oku biti) gönder ---LM75'den kabul durumu bekle 
  • LM75'den sıcaklık yüksek anlamlı baytı oku --- LM75'e kabul durumunu gönder 
  • LM75'den sıcaklık düşük anlamlı baytı oku --- LM75'e kabul değil durumunu gönder 
  • LM75'e durdur durumu gönder...


kabul durumu :Lojik-0
kabul değil durumu: Lojik-1


Artık bu noktadan sonra okunan verinin değerlendirilerek sıcaklık değeri ile eşleştirilmesine kalmıştır.

Düşük anlamlı baytı sadece bit7 değerlendirilmektedir. bit.7'de sıcaklık değerinin ondalık hanesine denk düşmektedir ki sadece 0 ve 5 değerini almaktadır.
Şekil-3 :LM75'den alınan sıcaklık verisi.

Yüksek anlamlı baytın bit-7 ise sıcaklığın negatif veya pozitif değerini ayırmak için kullanılmaktadır.

Yüksek anlamı bayt değeri onluk sistemde doğrudan sıcaklık değerine denk düşmektedir ki bu bir çevirme işlemine gerek olmayacağı anlamını taşır. Sadece sıcaklık değeri sıfırın altında ise o zaman elde edilen değerinden 255'nın çıkarılması gerekmektedir.(ikinin tümleyeni ve yüksek anlamlı baytın bit-7 dahil).Bu noktada göz önüne alınması gereken LSB değerininde hesaba katılması gerekliliğidir.

LED ekran

Şekil-4 :Devrede kullanılan LED ekranları birisinin üzerindeki 2 rakamı.

LED elektroniğin en bilinen elemanıdır. Burada kullanıcı arayüzünde rakamsal değer olarak verebilmek için 7 parçalı ortak anotlu LED ekranlar kullanılmaktadır.

Sadece işlemcinin bacak sayısı her LED ekranı tek tek sürmeye yeterli gelmediğinden dolayı çoğullama adı verilen bir teknik kullanılmaktadır. Yeni her LED ekran aynı anda sürülmemektedir. Sadece zamanın küçük bir kesrinde kendisine ait değeri göstermektedir. İnsan gözü saniyenin 1/20'deki değişimleri algılayamadığı için bütün değerleri bir anda gösteriliyormuş gibi algılıyoruz.

Bu işlemcinin bacak sayısında tasarruf sağlıyor ama işlemci programını biraz karıştırıyor..

Devre

Şekil-5 :Tam sistem. Tek yapılması gereken besleme bağlantısı

Devre işlemci kartından oluşmaktadır. Her ne kadar LM75 ayrı bir kart üzerinde ise de hepsini bir kart üzerine toplamak baskı devre çizebilenler için sorun olmayacaktır. İşlemci devresi ;işlemci, besleme LED ekran ve LED ekran sürücüleri tek bir alanda toplanarak küçük bir devre oluşturulmasını sağlamıştır.
Şekil-6 :İşlemci kartı. Bu kart daha önceki projelerde kullanılan bir devre olduğu için bazı eleman fazlalıkları vardır.(voltmetre ve termometre )
Şekil-7 :İşlemci kartı arkadan görünüm. Görünmeyen elemanlar kartın arkasında. Kart tasarlanırken harici kristal kullanılabileceği de öngörülmüştü. Bu nedenle PCB üzerinde kristal ile ilgili bacak bağlantıları da yer almaktadır.

Not: LM75'i başka devrelerde de kullanabilmek için küçük bir kart üzerinde kablo ile bağlama yolu seçilmiştir. (özellikle buzdolabının sıcaklığını gözlemlemek için).
Şekil-8 :LM75'in bulunduğu kart

Şema

İşlemci ile işlem yaptığımıza sistemin kalbini IC1 Atmega8 oluşturuyor. D2, D3, D4, D5 ortak anotlu gösterge LED'leri oluşturuyor. Gösterge ile işlemci arasındaki seri bağlı R5, R6, R7, R8, R9, R10, R11 ve R12 (220Ohm) LED göstergelerin akım sınırlama dirençleridir. LED ekranların ortak uçlarını süren Q1, Q2, Q3, Q3 (BC327) transistörleri, bazılarına bağlı R1, R2, R3 ve R4 (1K)dirençleri üzerinden işlemciye bağlanır. Böylelikle gösterge bölümü bitirilmiş olur.

IC3 (LM75) ayrı küçük bir kart üzerinden kablo ile taşınmıştır. IC3 için i2c bağlantısı desteği olan R13 ve R14 (10K) pull-up dirençleri eklenmiştir.

D1 (2W10M) köprü diyodu üzerinden bağlı olan IC2 (7805) gerilim regülatörü devre beslemesi için 5V gerilimini üretir.

ISP konnektörü işlemcinin programlanması için gereken bağlantı elemanını oluşturur.


Geriye kalan kondansatörler filtre amaçlı elemanları oluşturur.
Şekil-9:Blok şeması

Şekil-10:Devre şeması (P1,P4 ve P6 konnektörü gösterilmemiştir)

Devre Yapımı

Devre montajı açısından kritik bir durum yoktur. Görüldüğü gibi devre son derece sadedir. Sadece kabloları karta lehimlerken kısa devre olmamaları için dikkatli olmak yerinde olacaktır.

Şekil-11:Kartların yollar

Şekil-12:Kartların üstteki eleman yerleşimi Kart üzerindeki C5,C6,XTL1 elemanları kart üzerine takılması gerekli değildir, takılsa bile çalışmayacaktır.

Şekil-13:Kartların alttaki eleman yerleşimi

Şekil-14:Kartların yolları birlikte üstteki eleman yerleşimi

Şekil-15:Kartların yolları birlikte alttaki eleman yerleşimi

Şekil-16:Kartların bağlantıları. .

Şekil-17:Tüm sistemin bağlantı yapılmış hali. Parmak ucu sıcaklığı ölçerken

Devre Elemanları

220R R5,R6,R7,R8,R9,R10,R11,R12
1K R1,R2,R3,R4
10K (1206 smd) R13,R14
100nF C2,C3,C4
100nF (1206 smd) C7,C9
10µF C1
10µF (1206 SMD) C8
B125C1500 veya benzeri D1
LM75( SOIC8) IC3
FYS-3611BS (LED ekran) D2,D3,D4,D5
7805 IC2
Atmega8 IC1
LM75 IC3
6 Header (ISP6) ISP
2'li Klemens P1
Besleme için 9V'luk adaptör unutulmamalıdır.

Sonuç

Sonuç olarak devre küçük bir yapıda. (daha da küçültülmemesi için elbette bir sebep yok) İsteyen LM75'i de işlemci kartına dahil ederek bir ortam termometresi oluşturabilir. Sadece dikkat etmesi gereken kutu içine konulduğu zaman devrenin hava alması için yeterli sayıda delik açılması gerekliliğidir. Bu şekilde LM75 doğru bir şekilde ölçüm yapması sağlanır.
Şekil-18:Ortam sıcaklığı


Şekil-19:Buzdolabı. Suyun en yoğun olduğu sıcaklıkta

Şekil-20:Buzdolabı buzluk. Yazın bu sıcaklığı görebileceğiniz nadir yerlerden biri

Şekil-21:Buzdolabı buzluk. Biraz daha beklersek daha da soğuyacaktır.


 Not: Filmin sonuna doğru parmak ile LM75'e dokunulmuş ve sıcaklık artırılmıştır.

Ekler:
Atmega8 hakkında bilgi için

"Atmega8 ve LM75 ile LED Ekranlı Termometre" projesi için gereken dosyalar

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


Hiç yorum yok:

Translate

Sayfalar

Etiketler

İzleyiciler