Hava durumu haberlerinde özellikle yazın sıkça duyulan termometre şu kadar gösterecek ama biz şu kadar hissedeceğiz gibi haberler yer alır. Bunun sebebi olarakda havadaki nem miktarı gösterilir. Havadaki nemi ölçmek için değişik yöntemler olsada (insan saçının nem ile boyunun değişmesi gibi) bunlar çoğunlukla mekanik yöntemlerdir.
Bu projede Atmega8 işlemcisi ve HH10D nem algılayıcısı kullanarak ölçüm sonucun LED ekran üzerinde gösterecek bir proje gerçekleştireceğiz.
Nem bilindiği gibi suyun hava içindeki haline (suyun gaz hali) denebilir.
Gazların birbirine karışabildikleri bilinir. Örneğin atmosfer birçok gazın karışımıdır.(temelde oksijen ve azot) Su gaz haline geçtikten sonra hava içinde bir gaz olarak taşınır. Ama havanın taşıyabildiği su buharı miktarı normal şartlar altında sıcaklığa bağlıdır. (diğer şartların değişmediği varsayılarak) Örneğin hava soğumaya başladığında su yoğunlaşmaya başlar (bulut ve sis gibi hava olayları), dolayısı ile havanın taşıyabildiği su buharı miktarı düşer. Hava ısındıkça havanın taşıyabildiği su buharı miktarı artar. Bu özellikle sahil kesimlerinde yazın aşırı artan nem miktarı ile bilinir.
Normalde belirli nem aralığındaki hava insanlar için uygundur. Az nemli olursa insanlar ağızları kurur ve citleri kuruyarak çatlar. Çok nemli olursa bu durumda insanlar nefes almakta zorlanırlar. Bu nedenle nem kontrolu iklimlendirme sistemleri, seralar, depolama alanları için önemli bir konudur.
Normalde havadaki nem doğrudan ölçülmüyor. Havadaki gazların nem miktarına göre yüzde cinsinden ifade eden RH(%) ifadesi yani bağıl nem kullanılır.
Elektronikte nem miktarını ölçmek için değişik yöntemler vardır. Burada sadece HH10D nem sensöründe kullanılan yöntem ele alınacaktır.
HH10D üzerindeki nem algıllayıcı aslında basit anlamda bir kondansatördür. Kondansatör iki iletken levha arasındaki bir yalıtkan plakadır. İki plaka arasındaki yalıtkan malzeme olursa, hava aralıklı kondansatör olarak adlandırılır. Hava içindeki nemin havanın dielektrik sabitini değiştirdiği bilindiğine göre, havanın içindeki nem miktarı ile hava aralıklı kondansatörün kapasitesi değiştiği sonucu kolaylıkla çıkarılacaktır. (kondansatör plakaları arasındaki havanın dış ortam ile hava giriş çıkışı olacağı varsayımı ile.)
Burada basit bir kapasite-frekans dönüştürücü kullanarak nem miktarına göre frekansı değiştiren bir devre kullanılarak nem değeri frekans değerine dönüştürülür. Artık yapılması gereken bu frekansın ölçülmesi ve biraz matematik işlemlerin uygulanması.
Frekansmetre için fazla uzağa aramaya gerek yok. Hatta Atmega8 işlemcisi bu iş için yeterlidir. İşlemcinin içinde 2 adet 8 bitlik timer/sayıcı ve 1 adet 16 bitlik timer/sayıcı olduğu göz önüne alınarak en azından bu proje için basit bir frekansmetre oluşturulabilir.
Not:Bir frekansmetre projesinin gerçekleştirme planlarımız arasında olsada, bazı zorunluluklar nedeniyle higrometre projesinin öne alınması gerekti.
Hope Microelektronics firması (HOPERF) tarafından üretilmiş olan HH10D nem ölçümü için birçok elektronikçinin ilk tanıştığı elektronik elemanlardan 555 entegresi kullanılarak kapasite-frekans dönüştürücüsünü oluşturulmuş. Devrdeki kondansatör yerine Nem sensörü konulduğu zaman, elbetteki 555 çıkış frekansı ile orantılı olacaktır.
Ama nem sensörü tek başına yeterli değildir. Yani nem ile frekans arasındaki oranı bilmek gerekir. Üretici tarafından HH10D algılayıcısı içine yerleştirilmiş iki adet 2 baytık veri var. Bu veriler, ölçüm değeri ve üretici tarafından verilen matematik ifadesi kullanılarak bağıl nem hesaplanabilir. 2 adet 2 baytlık veri 24C02 tipinde bir EEPROM üzerindeki kayıtlı durumda. Yani i2c veri arayüzü erişimi gerekecektir. Atmega8 üzerindede i2c arayüzü donanım olarak bulunduğundan devre kolayca gereçeklenecektir.
Modülün veri kağıtlarında devrenin 3.3V'un altında çalıştırılması gerektiği belirtilmiş, ama üzerindeki elemanlar (NEM sensörü bilgisi yeterisiz olduğu için hariç tutularak) 5V ile çalışabileceği görülüyor. Sonuçta 7555 entegresi 2-18V aralığında çalışabilirken, 24C02 türüne bağlı olarak 2V ile 5V aralığında çalışabilmektedir. (Belki devre kalibrasyonu düşük gerilimlerde gerçekleştirildiği ve devre ölçüm sonucunun tutması için 2.7 ile 3.3V aralığı önerilmiştir)
Not: EEPROM okuyucu devre 5V ile çalıştığı için eeprom içeriğini okuyabilmek için 5V uygulamak zorunda kalındı ve eeprom okuma işlemi gerçekleştirildi.
Buradaki önemli konulardan birinin Atmega8 bölümünün 5V ile ve HH10D modülünün 3.3V ile çalışmasıdır. Aslında bu işlemci için bir sorun olmamakla birlikte HH10D modülü için bir sorundur. Hele ki SDA bacağı için daha önemli bir sorundur.(Çünkü iletişim iki yönlüdür)
Bu konuda en güzel çözüm Philips firması tarafından sunulmuş.Gate ucu doğrudan 3.3V bağlantısında olmak kaydı ile Drain uçu 5V tarafındaki alet bacağına ve Source ucu 3.3V tarafındaki alet bacağına bağlamak yeterli. Bu bağlantı şekli ile iki yönlü iletişim bağlantısına imkan tanıyacaktır. (Her iki taraf (3.3V ve 5V için pull up dirençleri mutlaka vardır)
Tek yönlü bağlantı için zaten konu doğrudan bir diyot kullanılarak, ve diyodun her iki ucuna pull up dirençleri kullanarak basit bir seviye çevirici oluşturulur.
Tek yönlü devrelerde mesale HH10D FOUT bacağı durumlarda bir transistör seviye çeviricisi yeterlidir. Çünkü yapılan sadece HH10D modülü tarafından oluşturulan sinyalin frekansının ölçümesidir. Bu durumda zaten sürekli değişen sinyal seviyeleri işlemci açısından sorun almayacağından bu transistör devresinin kullanımı yeterlidir.
Devre basitçe Led ekran, Led ekran sürücüleri, Besleme, işlemci HH10D modülü ve seviye çeviriciler olarak ayrılabilir. Devrenin mümkün olduğu kadar küçük olması yönündeki kararlar sonucunda bazı elemanların SMD olması yönünde tercih yapıldı. Hepsi tek baskı devre kartı üzerinde toplandı.
Proje temelde IC1 (Atmega8) üzerine kurulu. Bu işlemcinin saat kaynağı olarak XT1 (4MHZ) kristal ile C4 ve C5 (27pf) kondansatörleri kullanılmaktadır. İşlemcinin bacaklarına bağlanmış R5..R12 (220R) dirençleri DIS1...DIS4 (HDSP-F501) ekranlarının parçalarını sürmektedir. Ayrıca işlemci üzerinden R1..R4 (1K) dirençlerine bağlı Q1..Q4 (BC857) transistörleri DISP1..DISP4 ekranlarının ortak uçlarını sürmektedir.
M1 (HH10D) Nem algıyıcı modülü olup paremetrelerin saklandığı eeprom için SCL ve SDA bacakları varken, nem miktarı ölçümü için bir nem-frekans dönüşümü sinyal çıkışı vardır. IC1 ile M1 SCL bacakları arasına D2 (1N4148) diyodu bağlanmış ve diyodun her iki ucuna işlemci IC1 tarafına R16 (10K) ve M1 tarafına R17 (10K) pull up dirençleri eklenmiştir.
IC1 ile M1 SDA bacakları arasına Gate ucu +3.3V gerilime bağlanmış Source ucu işlemci ve Drain ucu M1 tarafına bağlanmı Q5 (STK7000) mosfeti bağlanmıştır. Bu mosfetin source (işlemci) tarafına R15 (10K) ve Drain (M1) tarafına R18 (10K) pull up dirençleri eklenmiştir.
M1'in FOUT çıkışına bağlı R19 (1K5) direnci üzerinden Q6 (BC847) transistörü sürülür. Bu transistörün emetörü doğrudan gnd hattına bağlanırken kollektör bacağı üzerinden R20(10K) direnci sürülür(pull up). Q6 ve R20 bağlantı noktasından işlemcinin T1 bacağına bağlanır. (frekansmetre için)
Besleme içir P1 klemensine bağlı besleme hattı üzerinden D1 (2W10M) köprüsü üzerinden besleme alınır. (D1 P1 klemensinin kutupsuz şekilde bağlanma olanağı tanır) D1 üzerinden geçen besleme IC2 (7805) ile işlemci için gereken +5V beslemeyi bağlar. IC3 (78L33) ise M1 modülü için gereken +3.3V besleme gerilimini regüle eder.
Devre üzerinde kalan ve belirtilmeyen kondansatörler filtre amaçlıdır.
Devre yapımı konusunda fazla kritik bir nokta yok.
M1 modülü 5'li sıra pin konnektörü üzerinden bağlanmıştır. Ayrıca IC2 ve IC3 arasındaki besleme bağlantı köprüsü unutulmamalıdır. (Şekil-15 üzerinde mavi ile gösterilmiş bağlantıdır).
0R(1206 smd) | R13,R14,R21,R22 |
220R(1206 smd) | R5..R12 |
1K(1206 smd) | R1..R4 |
1K5(1206 smd) | R19 |
10K(1206 smd) | R15..R18 |
10µF/25V | C3,C10 |
100nF(1206 smd) | C1,C2,C6,C7,C8,C9 |
27pF(1206 smd) | C4,C5 |
Atmega8 | IC1 |
7805 | IC2 |
78L33 | IC3 |
HH10D | M1 |
2W10M | D1 |
1N4148(1206 smd) | D2 |
BC857(SOT-23) | Q1..Q4 |
STK7000 | Q5 |
BC847(SOT-23) | Q6 |
4MHz Kristal | XT1 |
BC847(SOT-23) | Q6 |
HDSP-F501 | DIS1..DIS4 |
tip0 2'li klemens) | P1 |
2x6 konnektör | isp |
1x5 sıra pin | - |
Bu elemanlara ek olarak 9V'lu bir adaptör gerekmektedir.
Devre ilk defa çalıştırıldığında sens ve ofset değerlerini bilmediği için elbette yanlış ölçüm sonucu verecektir. Sens ve ofset değerlerini okumak için devrenin gücü kesik iken, isp konnektöründeki MISO (P4) ve GND uçlarını kısadevre edin. Devreye beslemesini verin. İşlemci HH10D üzerindeki EEPROM'dan gerekli verileri okur ve işlemcinin üzerindeki EEPROM'a kaydeder ve artık her açıldığında işlemci üzerindeki EEPROM'dan okumaya devam eder. (Devre çalıştıktan sonra MISO ve GND arasındaki kısadevreyi kaldırmayı unutmayın, aksi durumda ekrande hexadesimal olarak sens değerini göstermeye devam eder).
ISP uçları kısadevre edilme durumları yok iken ekranın sağdan birinci hanesi sönük haldedir. Çünkü Nem ölçüm sonucu onda birlik bir ölçüm içinde verilmektedir. Sağdan birinci hanenin sadece ondalık noktası devrenin ölçüm yaptığı andı göstermek üzere yanıp söner. (Yandığı zaman frekansmetre ölçüm yapmaktadır.
Ölçülen frekans değerini görmek için (hex olarak) verilen işlemci programında belirtilen yerdeki satırları aktif hale getirmeniz, programı derlemeniz ve yüklemeniz gerekiyor.
Gerçi matematik ifadesini HH10D veri kağıtlarında da bulabilirsiniz:
Nem (Yüzde olarak)= (Ofset- ölçülen frekans)*sens/1000 ....(1)
Yukarıdaki ifade tabii ki hex değerleri içermektedir.(girdiler hex sayı sisteminde olmalıdır) Bu şekilde kullanıldığnda sonuç tamsayı olarak çıkacaktır. Eğer bu sonucu görmek isterseniz onluk sisteme çevirmeniz gerekir. Aynı ifadenin onluk sistem olarak;
Nem (Yüzde olarak)= (Ofset- ölçülen frekans)*sens/4096 ....(2)
Bu ifade ile onluk sonuç verecektir. (girdiler onluk sistemde olmalıdır.)
Eğer (1) nolu ifade ile Şekil 16'daki ölçüm sonucunu hesaplarsanız ekranda göreceğiniz sadece 44'dür.
Kullanıcı olarak yapılan ölçüm sonucunu elle kontrol etmek isteyebiliriz. Bunun için isp konnektörü üzerindeki MISO-GND ve SCK-GND bağlantılarını kullanmamız yeterlidir. Sens ve Ofset gösterilmesi devre çalışıyorken yapılabilir. Şekil 19'deki konnektörleri kullanırsanız, konnektör takılı iken kendi değerini gösterir, çıkarıldığında nem değerini gösterir.
MISO-GND Bağlantısı için (SENS değeri)
Sens değeri ekranda HEX olarak gösterilecektir.
SCK-GND Bağlantısı için (OFSET değeri)
Ofset değeri ekranda HEX olarak gösterilecektir.
Ekler:
Atmega8 için gerekli bilgiler
"Atmega8 ve HH10D ile LED Ekranlı Higrometre" için dosyalar-birleşik
Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....
Hiç yorum yok:
Yorum Gönder