hcsr04 ile 2x16 lcd'ye milimetre yazdıramama

Başlatan cettoceviz, 01 Haziran 2016, 21:01:36

cettoceviz

merhaba,
resimdeki gibi bir devre kurdum, mesafe ölçerken milimetre yazdıramıyorum, bu sensörün öyle bir özelliği mi yok yoksa yazılımsal olarak ben mi çözemiyorum? kodlar ve devre aşağıdadır.
selamlar

kod
#include <mesafeolcum.h>
#define LCD_ENABLE_PIN PIN_B2
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#define use_portb_lcd TRUE
#include <lcd.c>
#use delay(clock=4MHz)
unsigned long int sure;
float mesafe;         

void lcd()
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Olculen Mesafe: ");
delay_ms(20);
lcd_gotoxy(1,2);
printf(lcd_putc,"%f",mesafe);
delay_ms(20);
lcd_gotoxy(10,2);
printf(lcd_putc,"cm");
delay_ms(20);
}

void main()
{
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
   lcd_init();
   delay_ms(500);
   set_tris_b(0b00000000);
   set_tris_a(0b00001010);   
   output_b(0b00000000);
   output_a(0b00000000);

   sure=0;
   mesafe=0;

   while(TRUE)
   {
   lcd();
   if(input(pin_a1))
   {
   output_high(pin_a2);
   delay_us(15);
   output_low(pin_a2);
   while(!(input(pin_a3))) //Echo ucu 1 olana kadar hiçbir işlem yapma
      {
      }
      set_timer1(0); 
   while((input(pin_a3)))  //Echo ucu 0 olana kadar hiçbir işlem yapma
      {
      }
      sure=get_timer1(); 
      mesafe=sure/58;
      }
   }

}


devre


yolcu27

#1
hocam merhaba

#include <mesafeolcum.h>


kodlarınıda eklerseniz oradan bakıp bir çözüm üretebiliriz.

cm olarak hesaplamasını mm olarak hesaba çevirmeniz lazım oda sanırım  dediğim kodların içerisinde  yada ben tam olarak bilmiyorum..


en son hesabı bulan formüle x10 ( 10 ile çarpma) işlemini ekleyin mm olarak görünecektir diye düşünüyorum. ekrandaki cm yazısınıda mm olarak değiştirirsiniz

cettoceviz

Alıntı yapılan: yolcu27 - 01 Haziran 2016, 22:13:59
hocam merhaba

#include <mesafeolcum.h>


kodlarınıda eklerseniz oradan bakıp bir çözüm üretebiliriz.

cm olarak hesaplamasını mm olarak hesaba çevirmeniz lazım oda sanırım  dediğim kodların içerisinde  yada ben tam olarak bilmiyorum..


en son hesabı bulan formüle x10 ( 10 ile çarpma) işlemini ekleyin mm olarak görünecektir diye düşünüyorum. ekrandaki cm yazısınıda mm olarak değiştirirsiniz
bütün kodları ekledim, başka kod yok.

sadogan

mesafe=sure/58;
satırı bu şekilde düzenlermisin.
mesafe=(float)sure/58.0;