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.

18 Mayıs 2011 Çarşamba

Atmega8 ve HH10D ile USB bağlantılı higrometre


"Atmega8 ve HH10D ile LED Ekranlı Higrometre" projesi ile LED ekranlıda olsa bir higrometre yapıldı. Ama bu aleti okumak için sürekli başında biri bulunmak zorunda. Yani (örneğin sera) ortamın neminin sürekli olarak izlenmesi gerekli olan bir durumda haliyle LED ekranlı bir higrometre yetersiz kalacağı ortada. Bu durumda ölçü aletinin bilgisayar gibi veri kaydetme yeteneği olan bir makineye bağlanması gerekir.

Bu projede Atmega8 ve HH10D (nem algılama modülü) kullanarak bilgisayara USB bağlantısı üzerinden ölçüm sonuçları gönderilmeye çalışılacak.
Nem Ölçümü

Dünyamızın atmosfer dediğimiz bölümü bilindiği üzere bir gaz karışımıdır. Bu gaz karışımının için normal şartlar altında azot, oksijen, karbondioksit ve diğer gazların yanısıra su buharı da bulunur. Atmosferdeki su buharı miktarına göre çeşitli etkilere sahiptir. Sıcaklık ile ilişkili olan su buharı etkisi kimi yaz günlerinde özellikle sahillerde yaşayan kişiler için hayatı çekilmez kılar. Kışın soğuk günlerinde ise su buharı azlığı çatlamış ve kurumuz ciltler ve dudakları göz önüne serer.

Bazı ortamlar açısından su buharı (nem) daha önemlidir. Örneğin bir sera veya bir ürünün kurutulması ile ilgili bir bölüm ise iş biraz daha önem kazanır. Atmosferik tahminler açısından ise önemi daha da artar.

Bu projedeki nem ölçümü Hope Microelektronics firması (HOPERF) firması tarafından üretilmiş olan HH10D isimli bir nem algılayıcı modül kullanılarak gerçekleştirilir. "Atmega8 ve HH10D ile LED Ekranlı Higrometre" projesinde bu sensörün kullanımı hakkında bilgi bulabilirsiniz.

Algılayıcı çıkışı basitçe nem ve frekans bağlantılı bir çıkış vermektedir. Böylece çıkışta ölçülen frekans nem ile orantılıdır. Daha doğrusu ters orantılıdır. Nem arttıkça frekans azalır. Böylece HH10D parametrelerindeki "Offset" denkleştirme parametresi sadece ölçülebilecek en yüksek frekansı verir.(Nem=0).

Gerisi sadece HH10D için yayınlanmış veri kağıdındaki formülü uygulamaktır. Sonuç yüzde ifadesi ile bağıl nem değerini verir.
USB


Şekil-1 :USB bağlantı fişi.

Şu anda bilgisayarlar açısından neredeyse vazgeçilmez bir arabirim bağlantısıdırlar. Kullanım esnekliği ve kolaylığı nedeniyle (en azından kullanıcı açısından) oldukça y aygınlaşmış durumdadırlar. Yazıcı, tarayıcı, taşınabilir bellek, taşınabilir sabit disk, oyun kolları, klavye ve fare gibi bir çok araç için USB bağlantısı kullanılır hale gelmiştir.

Bu projede "FT232BL USB-Seri Dönüştürücü" projesinde kullanılan devre kullanılmaktadır. "FT232BL USB-Seri Dönüştürücü" projesi adından da anlaşılacağı gibi bir USB-seri (UART) dönüştürücüdür. Bu projenin alında işte bu bölümü dikkate değer. Nem ölçüm sonucu bilgisayara bu şekilde iletilir.

Şekil-2 :FT232BL USB-Seri Dönüştürücü kartı üzerindeki FTDI232.

Bilindiği gibi Atmega8 işlemcisinin USB portu yok, ama bir UART portu var. Atmega8'in UART portu USB-seri dönüştürücünün Seri portuna bağlanır ve USB-seri dönüştürücünün USB bölümüde bilgisayara.

Sonuçta bu USB-seri dönüştürücü bilgisayar ile Atmega8 devresi arasında bir köprü olarak kullanılıyor. USB-seri dönüştürücünün bilgisayardaki sürücüleri Sanal seri port oluşturan bölümü kullanılacağından, bir yerde bilgisayar üzerindeki ölçüm programı sanki Atmega8 devresi bilgisayarın seri portuna bağlanmış gibi işlem yapacaktır.
Devre

Proje bileşenleri göz önüne alındığında basitçe HH10D modülü, Atmega8 işlemci devresi (işlemci devresi) , USB-seri dönüştürücü ve projeye dahil edilmesi gereken bir bilgisayar. (Bilgisayar ölçüm aralığını belirler, ölçüm sonucuna göre gelen bilgileri hesaplar ve sonucu gösterir, hatta gerekirse hesaplanan bilgiler bilgisayara kaydedilir.

HH10D modülü ortamdaki nem miktarına göre belirli bir frekansta kare dalga yayınlar. İşlemci devresi yayınlanan bu karedalgayı bilgisayardan gelen emirler doğrultusunda ölçümler ve ölçüm sonucunu USB-seri dönüştürücüye iletir. USB -seri dönüştürücü bilgisayarın USB portuna yöneltir. Bilgisayar üzerindeki program gelen bu bilgiyi hesaplar ve sonucunu kullanıcıya iletilir.

Şekil-3 :İşlemci kartı (Atmega8 işlemcisi ve HH10D nem algılama sensörü ile.


Şekil-4 :USB-seri dönüştürücü kartı


Şekil-5 :İşlemci kartı ile USB-seri dönüştürücü kartını bağlayan iki ucunda 2x5'li dişi konnektör bulunan 10 yollu şerit kablo


Şekil-6 :USB-seri dönüştürücü kart ile bilgisayar arasındaki bağlantıyı sağlayan USB kablo


Şekil-7 :işlemci kartı ile USB-seri dönüştürücü kartı birbirine bağlı halde

Şema

USB seri dönüştürcü Devresinin kalbi zaten görüldüğü üzere FT232BL IC1. Tüm iletişim sistemini bu eleman kontrol ediyor. Bu tüm devreye bağlı olan R9 ve R10 (27R) seri USB akım sınırlama dirençleri. Burada R9 (27R) ucuna bağlı olan R8 (1K5) direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 (4k7) ve R7 (10K)devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 (1K)dirençleri LED1 ve LED2 LED’lerinin akım sınırlama dirençleridir. LED1 ve LED2 LED’leri seri port iletişim monitörü olarak çalışır. R3(10K) ve R4 (2K2) IC2 (93C46) EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. Bu bağlantı şekli konusunda ayrıntılı bilgi için FT232BL veri kağıtlarını incelenmesi yerinde olabilir. C1,C2 (27pF) ve XT1 (6MHz)ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konektörü. (isteyen doğrudan USB kablosunu doğrudan lehimleyebilir.) P1 seri bağlantı için bağlantı portudur. P2 ve P3 ise besleme bağlantısı için seçim konektörleridir. Her ikisine takılacak köprü yardımıyla kullanılabilir.

İşlemci kartı IC3 (ATmega8) işlemcisi tarafından yönlediriliryor. Bu işlemcinin saat frekansı ihtiyacı C11 ve C12 (27pF) kondansatörler ile birlikte XT2 (3.6864MHZ) kristal tarafından karşılanıyor. M1 ile gösterilen HH10D modülü nem ölçümü sonucunu frekans ölçümü için işlemciye gönderirken aynı zamanda nem/frekans dönüşümü için gereken parametreleri saklar. SDA iletişimi için R19 (10K) ,Q1 (BS170) ve R17 (10K) elemanları gerilim seviye dönüşümünü sağlarlar. SCL için ise R18 (10K), D2 (1N4148) R16 (10K) elemanları gerilim seviye dönüşümünü sağlarlar. FOUT (frekans çıkış sinyali için) R11 (1k), Q2 (BC847) ve R14 (10K) gerilim seviye dönüşümünü sağlar.

M1 modülü için gereken 3.3V'luk besleme gerilimini IC4(LP2950-3.3) gerekli regülasyonu sağlayacaktır.

Devrenin beslemesi P4 konnnektörü üzerinden D1 (2W10M) köprü diyodu üzerinden IC5 (7805)regüle edilerek devrelinin ihtiyacı olan beslemeyi oluşturur.

Belirtilmeyen geri kalan kondansatörler filtre amaçlıdır.

Şekil-8:Blok şeması


Şekil-9:Devre şeması (P1 ve P5 konnektörleri gösterilmemiştir)

Devre Yapımı

Devre montajı açısından kritik bir durum yoktur. Görüldüğü gibi devre son derece sadedir. Yüzey montaj elemanların montajında biraz daha dikkatli olmak yerinde olacaktır.

Yüzey montaj elemanları herne kadar eleman yüzü üzerinde gösterilsede bu elemanlan kartın bakır yolları üzerine monte edildiğinde eleman yüzü üzerinden görülüdüğü gibi gösterilmiştir. Herhangi bir şüpheye düştüğünüzde ilgili elemanların veri kağıtlarını kontrol etmeniz de yarar var.

Şekil-10:USB-seri dönüştürücü ve işlemci kartının yolları


Şekil-11:USB-seri dönüştürücü ve işlemci kartının eleman yerleşimi


Şekil-12:USB-seri dönüştürücü ve işlemci kartının yolları birlikte eleman yerleşimi

Devre Elemanları

0R(köprüleme) SMD-1206R12,R13,R15
27RR9,R10
470RR5
1KR1,R2
1K SMD-1206R11
1k5R8
2k2R4
4k7R6
10KR3,R7
10K SMD-1206R14,R16,R17,R18,R19
27pFC1,C2
27pF SMD-1206C11,C12
100nFC3,C4,C5
100nF SMD-1206C6,C7,C9,C13,C14
10µF/25VC8,C10
3mm Kırmızı LEDD2
3mm Yeşil LEDD1
FT232BLIC1
Atmega8 (DIL)IC3
93C46 (DIL)IC2
7805IC5
LP2950-3.3IC4
BS170Q1
BC847 SMDQ2
1N4148 SMDD2
2W10M veya benzeriD2
6Mhz kristalXT1
3.6864Mhz kristalXT2
HH10DM1
10 Header(2x5)P1,P5
6 Header(2x3)isp
USB-A konnektörUSB-A
3 bacak sıra pinP2,P3
köprüköprü(jumper) 2 Adet
2 bacaklı klemansP4

Besleme için 9V'luk adaptör, USB-seri dönüştürücü kartı ile işlemci kartı arasına (P1 ve P5) 2x5 bağlantı uçu ile birlikte 10 yollu yassı kablo kablo ve konnektörü ve bilgisayar için USB bağlantı kablosu unutulmamalıdır.
Ayar ve kullanım

Ayar için öncelikle USB -seri dönüştürücü kartındaki P2 ve P3 konnektörleri üzerindeki köprüler ayarlanması gerekir. Bu köprüler FTDI232 işlemcisinin besleme ve çalışma şeklini belirler.

İşlemci kartı üzerindeki köprüleme için kullanılan kabloyu unutmayın. (IC4 ile IC5 arasındaki besleme için).

Şekil-13:USB-seri dönüştürücü kartı üzerindeki köprülerin konumları.)


Şekil-14:İşlemci kartı üzerindeki besleme için gereken köprü kırmızı çizgi ile gösterilmiştir.

Devre çalıştırıldığında ve bilgisayar bağlantısı yapıldığında öncelikle USB kartının USB sürücülerinin bilgisayara yüklenmesi gerekiyor. Bu sürücüleri FTDI232 ürününün üretici sitesinde son sürümlerini bulabilirsiniz.

Projede USB bağlantısı olduğu belirtildi isede aslında sanal seri port kullanılacağından bilgisayar üzerindeki ölçüm ve kontrol programını çalıştırın. "Ayarlar" butonuna tıklayın. Açılan "Ayarlar" Penceresinde öncelikle USB kartınız için oluşturulan seri portu seçin. "Tamam" butonuna basın. Tekrar "Ayarlar" butonuna basın ve Ayarlar penceresini açın

Bu aşamada öncelikle HH10D modülünden ölçüm ile ilgili paremetrelerin okunup program tarafından kaydilmesinin sağlanması gerekiyor. "Sens Oku" butonuna basıldığında işlemci kartından 2 baytlık değer okunur ve butonun hemen yanındaki ilgili alana yerleştirilir. (devre çalışıyorsa) "Offset Oku" butonuna basıldığında aynı şekilde işlemci kartından 2 baytlık değeri okunur ve bunotunun yanındaki ilgili metin alanına yerleştirilir. Şu aşamada ölçüm için yeterlidir. Sadece "Tamam" butonuna bas ve ayarları kapat.

Ana penceredeki "Tek Ölçüm" butonuna basıldığında işlemciye ölçümü başlatması için gerekli komutu gönderir. (ölçüm için en az 1 saniye geçmesi gerekir) İşlemci kartında yapılan ölçüm 2 baytlık veri halinde gelir. HH10D veri kağıtlarında belirtilen matematik ifade ışığında işlem yapılır ve sol taraftaki listede görüldüğü gibi butonun hemen üzerindeki metin alanında da o anki değer görüntülenir.

Sürekli ölçüm için "Ölç" butonuna bas. Bu "Ayarlar" penceresinde seçilebilen zamanlayıcı değerleri ile belirli aralıklarla ölçümün gerçekleştirilmesini sağlar. Bu butona basıldığı zaman etketi "Durdur" olarak değişir. Ölçmeyi sonlandırmak için "Durdur" butonuna bas.

Nem ölçme sonuçlarından yapılan hesaplamada sonuçlar virgülden sonra iki hane ile sınırlandırılmıştır. Bağıl nem zaten yüzde ile ifade edildiğinden tam sayı bölümü 0 ile 99 aralığında olacaktır.
Bilgisayar programı

"NemMetre.exe" programı Delphi 7 ile yazıldı ve derlendi. Program sadece XP üzerinde denendi. Programı çalıştırmak için "NemMetre.exe" dosyasının yanında "NemMetre.ini" dosyasıda gerekmektedir. İni dosyası yok ise program ile ilgili ayarlar yapıldıkça Ayarlar penceresinde "Tamam" butonuna her tıklanışta yapılan ayarlar ile ilgili değişiklikler için önce ini dosyası oluşturulur ve sonraki değişiklikler bu ini dosyasına kaydedilir.

FTDI için USB sürücü yazılımı yüklenmesi gerekir. Bu konulu ile ilgili olarak FTDI sitesinde sürücü ve nasıl yükleneceği konusunda bilgi verilmektedir.
ANA PENCERE
"NemMetre.exe" programı çalıştırıldığında ile ekrana gelecek olan penceredir.

Şekil-15:Ana pencere.

Ana pencere üzerinde rakamlarla ilişkilendirilen alanları incelersek;
  1. Program açık olduğu süre içinde hesaplanan nem değerleri listesi (Son ölçüm en üsttekidir.)
  2. Program açık olduğu sürede hesaplanan son nem değeri
  3. Butona tıklandığında tek ölçüm yapar.
  4. Butona tıklandığında ölçüm işlemlerini başlatır. Ayarlar penceresindeki "Okuma Zamanı" alanındaki seçilen zaman birimi sıklığında ölçüm gerçekleştirilir.
  5. Ayarlar penceresine girmek için tıkla.

AYARLAR PENCERESİ

Şekil-16:Ayarlar penceresi.

Ayarlar penceresi üzerindeki rakamlarla ilişkilendirilen alanları incelersek;
  1. USB-seri dönüştürücü tarafından oluşturulan sanal seri porta seçmek için açılır menü. Program açıldığında bilgisayar üzerindeki seri portlar taranır ve bu menüye eklenir. (Donanıma bağlı olarak değişken olabilir)
  2. İşlemci kartından "Sens" değerini almak için butona tıkla (Hassasiyet değeri).
  3. İşlemciden alınan "Sens" değeri bu alana yazılır.
  4. İşlemciden alınan "Offset" değeri almak için bu butona tıkla (Denkleştirme)
  5. İşlemciden alınan "Offset" değeri bu alana yazılır.
  6. Yapılan ölçüm sonuçlarının bilgisayara kaydedilmesi için bir metin dosyası açmak gerekir. Bu buton işte o metin dosyasını açmak (daha doğrusu boş metin dosyası) için kullanılır.
  7. Ölçüm sonuçlarının kaydedileceği metin dosyası adı ve bilgisayar üzerindeki yeri
  8. "Ölç" butonu ile kullanılan otomatik ölçme zaman aralığını belirler.
  9. Ölçüm sonuçlarının metin dosyasına (7 nolu alandaki dosya adına) kaydetme izni için işaretle. İşaretli değilse kayıt yapılmaz.
  10. Ayarlar işlemlerini tamamlanması, ayarların kaydedilmesi ve "Ayarlar" enceresinin kapatılması ve ana pencere geri dönülmesi için "Tamam" butonuna tıkla.


Ekler:

ATMEGA8 hakkında bilgi için

"Atmega8 ve HH10D ile USB bağlantılı 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:

Translate

Sayfalar

Etiketler

İzleyiciler