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.
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