Hatayı bulamadım 18f4520 pic-dht11 sensör

Başlatan trukla, 14 Haziran 2015, 12:18:32

trukla

Arkadaşlar herkese merhaba.Pic programlama konusunda yeni sayılırım pek bir bilgim olmamakla beraber 16x2 lcd ,dht11 sensör ve 18f4520 entegresini kullanarak sıcaklık 30 derecenin üzerine cıktıgında vantilatör nem %50 nin altına düştüğünde buhar makinesini çalıştıracağım(220 voltu bt139 kullanarak kontrol etmeyi denedim)bir proje yapmaya çalıştım.Proteusta çalıştırmış olmama rağmen devre kartını basıp herşeyi yerine taktığımda uygulamayı çalıştıramadım.entegre kristal ve koddaki frekanslarım aynı yani 10mhz.kontrol ettim herhangi bir kısa devre yok.Farklı olarak sadece 9v pili 5volta düşürüp bağlamak yerine 5volt adaptör(telefonun şarj cihazı) kullandım.proteus çizimini ve devre kartımı sizinle paylaşacağım.Proteusa ek olarak rb cıkıslarından birisine 220 volt kontrol etmek için bt139 ekledim.Doğru mu yaptım bilmiyorum ama bt139 un 1 bacağından 220 nin (+) sını klemensle girip 2 bacağından çıkış aldım (evdeki ışıkların anahtar mantığı gibi düşündüm) 3 bacağına da tetik için entegrenin rb çıkışını
bağladım.
Sorunum sizce ne olabilir ne denemeliyim ? birde Dirençleri doğru ohmda kullanmışmıyım?Birde lcd için ayrı besleme mi kullanmam lazım gerçi onuda denedim ama LCD nin beslemesi konusunda da fikir verirseniz sevinirim.

Açıkça anlatmaya çalıştım sorunumu umarım başarılı olmuşumdur.


http://i.hizliresim.com/a5a7Yd.png

http://i.hizliresim.com/j5adgG.jpg

resimleri direk buraya koymayı beceremedim sanırım arkadaşlar kusura bakmayın .

ilginiz için teşekkür ederim şimdiden.

ceyhanan

Öncelikle devredeki ledleri kristal frekansına göre belirli bir aralıkta yakıp söndürmeyi dene. En basitinden 1000 saniyede bir yakmayı dene. Bunun için CCS C kullanıyorsan delayms(500) gibi bir fonksiyon olması gerekiyor tam hatırlamıyorum noktasını virgülünü. Yani;

void main(void){
   init();
   while(1){
       ledYak();
       delay_ms(500);
       ledSondur();
       delay_ms(500);
   }
}


gibi bir program ile ledin düzgün bir biçimde yanıp söndüğünden emin ol. Eğer olmuyorsa bunun sebebi, PIC'in beslemesi, configürasyon ayarları veya MCLR ucunun VDD seviyesinde olmaması yani PIC'in resette kalması olabilir.

En basitten karmaşığa doğru gitmek her zaman daha iyidir. Bu nedenle kurduğun devrelerde ilk işin led yakıp söndürmek gibi basit işler olsun.

Kolay gelsin.

sifirzero

Ptoteusda calisiyorsa.pcb de yanlisin vardir.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

Recep METE

Arkadaşım kodları yüklersen breadboarda kurup deneyeceğim. Böylece problemi çözmene yardımcı olabilirim
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

sadogan