Lcd yanıyor fakat yazı gelmiyor

Başlatan sametbozkus, 03 Mayıs 2011, 21:32:55

sametbozkus

Arkadaşlar merhaba bitirme projesi olarak fan kontrollü çift sensörlü bir sıcaklık devresi yapıyorum DS18B20 sensörü kullandım devree enerji uyguladığımda LCD yanıyor yani ışık geliyor fakat sensörün sıcaklığını göstermiyor acaba sorun nerde olabilir?

Mucit23

LCD kontrast ayarıyla oynamayı deneyin

sametbozkus

Potansiyometre yardımıyla denedim artırınca sadece kareler çıkıyor LCD de ama sıcaklık değeri yazmıyor :S :(

Tagli

Işığın gelmesi tek başına bir şey ifade etmez. Sağlamlık testi için, devrede PIC yokken LCD'nin beslemesini bağlayıp kontrast bacağını toprağa çek. Üst satırın tamamının yanması gerek, yani üst satırda kareler görmelisin.
Gökçe Tağlıoğlu

sametbozkus

Ewet abi kareleri gördüm üst satırda fakat yazı yazmıyor işte

frederic

Sadece karelerin çıkması pic ile iletişimin olmaması anlamına gelir,yazılımını ve pic ile lcd arasındaki data hatlarını tekrar bir gözden geçir.

adoka

Yaptıgın devrenin semasını buraya eklersen hatanın nerede oldugu daha kolay anlasılır.Varsa program kodlarını da eklemeni tavsiye ederim kodlarda da hata olabilir...
Bir mum diğer bir mumu tutuşturmakla, ışığından bir şey kaybetmez. (Mevlana)

sametbozkus

// 2 adet ds18b20 kontrol yazılımı ///
#include<18f452.h>
#fuses xt
#use delay(clock=4000000)
#define use_portd_lcd TRUE
#include<lcd.c>
#include<ds_1.c> // 1 nolu sensör için dosya
#include<ds_2.c> // 2 nolu sensör için dosye
// not adresler kullanılacak olan işlemci tipine göre
// değişiklik gösterir. Başka işlemci Kullanılacak ise
// ilgili adres değişikliklerini yapınız

void main()
{
unsigned int16 s1,s2;
float ortalama=0;
char polarite1,polarite2;
lcd_init();
delay_ms(50);
lcd_putc("\f");
lcd_putc("BiYOMEDiKAL.....");
lcd_putc("\n  Samet BOZKUS  ");
delay_ms(1000);
for(;;)
{
s1 = read_ds18b20_1(); // 1 nolu sensör (pin_c1 adres=31760)
if(s1 > 2000) // negatif sıcaklık değerleri için
{ s1 = ~s1/16 + 1 ; polarite1 = '-';}
else if( s1 == 0 ) // sıfır için
{ polarite1 = ' '; }
else // pozitif sıcaklık değerleri için
{ s1 = s1/16; polarite1 = '+'; }

s2 = read_ds18b20_2(); // 2 nolu sensör (pin_c2 adres=31761)
if(s2 > 2000)
{ s2 = ~s2/16 + 1 ; polarite2 = '-';}
else if( s2 == 0 )
{ polarite2 = ' '; }
else
{ s2 = s2/16; polarite2 = '+'; }
ortalama=(s1+s2)/2;
printf(lcd_putc,"Ortalama= %f",ortalama);
delay_ms(1000);
if(ortalama>=25)
{
lcd_putc("\f");
printf(lcd_putc,"S1: %c%02lu  S2: %c%02lu",polarite1,s1,polarite2,s2);
output_high(pin_b0);
lcd_putc("\nFAN DEVREDE!");
delay_ms(200);
}
if(ortalama<=21)
{
lcd_putc("\f");
printf(lcd_putc,"S1: %c%02lu  S2: %c%02lu",polarite1,s1,polarite2,s2);
output_low(pin_b0);
lcd_putc("\nFAN DEVRE DISI!");
delay_ms(200);
}
}

}



Arkadaşlar devrenın yazılımı budur for dongusune kadar porgram calısıyor fakat for dongusunden sonra o sıcaklıkları mıkroişlemci okuyamadıgından dolayı lcd ye yazı gelmıyor LCD de Samet BOZKUS  BIYOMEDİKAL yazdırıuor for dongusunu işleyemiyor mikroişlemci.
  Acaba proğramın neresinde bi sorun olabilir