DHT11 Veri Alma Sorunu

Başlatan 0magnum0, 07 Mayıs 2016, 23:29:51

0magnum0

Proje çalışmam doğrultusunda sıcaklık ve nem ölçme işlemi yapmak için Dht11'ı 18f877 ile kullanmayı düşündüm.Maliyet açısından bunu seçtim işin açıkcası.Lakin CCS ile kaynaklar pek olmadığını gördüm gezmedğim site,bakmadığım proje kalmadı. Sensörden veriyi alamıyorum hakim olamadığım bir nokta burası.Yardımcı olabilir misiniz ?

aygun78

merhabalar bende bu konu üzerinde günlerdir uğraşıyorum. Ben okumayı başardım. Fakat Proteus'ta dht11 bağladığım bacakta "Logic contention(s) detected on net #00019." hatası çıkıyor. Bu sorunu çözemedim. Ekte pic18f4520 ile yapılmış örnek var.
Hatanın sebebi konusunda bilgim yok.
Forumdaki arkadaşların yardımını bekleyeceğiz artık.

Hattuşa

proteus 7 türevi kullanıyorsanız şayet proteus 7. de simüle dosyası yok, proteus 8 ve üzerinde ancak simüle edebilirsiniz

ete

Logic contention hatası genellikle bir pinin hem giriş hemde çıkış olması durumunda ortaya çıkan bir hatadır.
Aslında Simulasyonun ürettiği bir hata olmalı. DHT-11 ile haberleşmede Data bacağı bazen çıkış bazen giriş pini olarak çalışmaktadır.  Sensörle haberleşme sistemine bakarsanız;
- Data pini çıkış yapılıyor ve bu pinden 18 ms süre ile LOW çıkartılıyor. Burada Data pini Çıkış olarak işlem gördü.
- Daha sonra Çıkışa HIGH verilip 40us bekleniyor. Data pini hala çıkış olarak çalışıyor.
- Daha sonra Data pinini Giriş olarak ayarlayıp sensörden gelen bilgiye göre değer almasını sağlıyoruz. Sensör o anda Data pinine LOW veriyor ve dolayısıyla pin giriş olarak bu LOW değerini algılamaya çalışıyor.
Buna benzer şekilde pin hem çıkış hem giriş olarak çalışıp bilgi alışverişini tamamlıyor. Aslında pini giriş olacağı aman girişe , çıkış olacağı aman çıkışa çeviren komutlar doğru biçimde verilirse bu hata meydana gelmez. C dilinde bu iş tam olarak yapılıyor diye düşünüyordum ama orada da benzer durum var demekki. Zİra Basic de bazı komutlar pini giriş veya çıkış olarak otomatik ayarlar. Mesela LOW DTA dediğiniz zaman bu komut önce DTA pinini Çıkış yapar sonra o çıkışa LOW verir. Bu nedenle programda ;
OUTPUT DTA
DTA=0
demek yerine  yalnızca LOW DTA demek basicde yeterli oluyor.

Simulasyon bunu ayırd edemiyor. Data pini sensörden bir bilgi bekliyor ise o pinin önce giriş olarak ayarlanması gerekir ki gelen bilgiyi okuyabilsin. Benzer şekilde giriş olan bir pinden bir puls çıkarmaya kalkışırsanız o pals çıkmaz ve Lojik uyumsuzluk hatası meydana gelir. Burada olan olay budur. Sensör okunabiliyor ise sorun yok demektir.

Ete

aygun78

Proteus 8 kullaniyorum.Ete hocam similasyonda okuyor sorun yok.Gercek devrede denemedim.Dener denemez sonucu paylasirim.

aygun78

Deneme fırsatım oldu.Dht11 sorunsuz çalışıyor. Fakat tepki süresi biraz uzun. Ds18b20 ye göre 2-3 derece eksik ölçüyor.

Powered by EzPortal