Sensörden gelen bilgiyi LCD de yazdırma problemi

Başlatan samet_ehm, 06 Şubat 2015, 23:27:26

samet_ehm

Arkadaşlar merhaba. Ben HC-SR04 ultrasonik mesafe sensöründen mesafe bilgisini alıp Lcd'de yazdırmaya çalışıyorum. Şuanda mesafeyi ölçüp Lcd de yazıyor fakat, Lcd ekranı donup kalıyor ya da Lcd de kareler çıkıyor. Lcdnin pinlerine dokununca arada gelip gidiyor. CCS C ile çalışıyorum. Aşağıdaki resimde Lcd'nin ve sensörün bağlantı şeması ve kod gösterilmektedir. Yardımcı olabilecek varsa şimdiden teşekkür ederim.
#include <mesafelcd3.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)

#define use_portb_lcd TRUE   // LCD B portuna bağlı



int16 sure,uzaklik;

#define trig pin_C0
#define echo pin_C1
#use fast_io(c)
#use fast_io(b)

#include <lcd.c>


void main()
{
  
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
   
   set_tris_b(0x00);
   set_tris_c(0x02);
   output_b(0x00);
   output_c(0x00);
   
   lcd_init();
   delay_ms(100);

   while(TRUE)
   {
   
   lcd_send_byte(0,0x0d);   // LCD'ye komut gönderiliyor. İmleç yanıp sönsün komutu.

          for(;;)
            {
             output_high(trig);                   
             delay_us(20);                       
             output_low(trig);
   while(!input(echo))                     
   {}
   set_timer1(0);
   while(input(echo))                     
   {}
   sure=get_timer1();
   uzaklik=(sure*10)/(58.0);
   
   printf(LCD_PUTC, "\f Uzaklik = %Lu cm"uzaklik);
 
   delay_ms(500);
   
            }
   }

}

Recep METE

#1
Kesinlikle bağlantı hatası var.Devreyi muhtemelen breadboard üzerine kurmuşsundur.Breadboard üzerinde bu tip hataları çok yapar.Devreyi usanmadan yeniden kur.Düzeleceğini sanıyorum.

mesaj birleştirme:: 07 Şubat 2015, 09:07:39

Arkadaşım simülasyonda HC-SR04 modelini nasıl oluşturdun.Bir zahmet açıklar mısın? Bir de simülasyonda çalışıyor mu acaba?
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

samet_ehm

Evet breadboard üzerinde kurdum. Lcd pinlerinin doğru olup olmadığı konusunda şüpheliyim. Simulasyonda HC-SR04 yok ben bağlantısını göstermek amaçlı şekillerle çizdim.

fthdmrl

#3
proteusta HC-SR04 bulamadım ben acaba bulabileceğimiz bir yer varmı?


thelastrap

devrenin + ve - ucuna 100nf kondansatör bağla bazen bundanda yapabiliyor

samet_ehm

Arkadaşlar devreyi söküp tekrar kurdum ve şuan aktif olarak çalışmakta teşekkür ediyorum.