11 Ocak 2013 Cuma

Sharp IR Sensör ile mesafe ölçümü


SHARP IR sensör (GP2Y) çıkışını, bir ADC ile okuyarak mesafe ölçümü yapmak mümkün.
Sensör çıkışı doğrusal olmadığı için küçük bir hesaplama yapmak gerekiyor.

10 bit çözünürlük ve 5V besleme ile, aşağıdaki formülden mesafe (R) hesaplanabilir.






aşağıdaki mikroPascal kodu, PORTA.2'ye bağlanan IR sensörün, okuduğu mesafe bilgisini hesaplar ve 'cm' olarak lcd'ye yazar.


------------------------------------------program kodu--------------------------------------------

//PIC 16F877A 
//GP2 sensor to A.2
//ADC 10bit

program IRSensor;

var ch: byte;
    t : integer;
    range : real;
    Text : string[2];
    rstr : string[2];
    rr : integer;

begin
  PORTB  := 0;                      
  TRISB  := 0;                      
  intcon := 0;                      

  OPTION_REG := $80;
  ADCON1     := $82;                
  TRISA      := $FF;                


  Lcd_Init(PORTD);                    
  Lcd_Cmd( LCD_CURSOR_OFF);        
  Lcd_Cmd(LCD_CLEAR);               

  Delay_ms(500);

  Text  := 'Mesafe:';             
  Lcd_Out(1, 1, Text);       

  while true do
    begin
      t := ADC_read(2);     
      range := (1/(t*0.000147 + (0.00042*-1))) - 4;
      FloatToStr(range, Text);
      strncpy(rstr,text,2);
      rr := StrToInt(rstr);

      if (rr > 9) and (rr < 81) then begin
         Lcd_Cmd(LCD_CLEAR);
         Lcd_Out(1, 8, rstr);
         Lcd_Out(1, 11, 'cm');
      end
      else
         Lcd_Out(1, 1, '  Out Of range  ');
         
      delay_ms(150);
    end;
end.


------------------------------------------program kodu--------------------------------------------

Hiç yorum yok:

Yorum Gönder