P8 – Đo khoảng cách bằng cảm biến Sharp IR GP2D12

Cảm biến GP2D12 là loại cảm biến tương tự. Nó sử dụng tia hồng ngoại để xác định khoảng cách đến vật phản hồi trong khoảng từ 10 đến 80cm. Tín hiệu lối ra của cảm biến là đường điện áp không tuyến tính tương ứng với khoảng cách đo được. Trong bài này, chúng ta sẽ làm một thiết bị đo khoảng cách bằng cảm biến Sharp IR GP2D12.

Thông số chính:

  • Khoảng đo : 10 –> 80 cm
  • Góc đo tối đa : ~ 40 °
  • Nguồn cung cấp : 4.5 –> 5.5 V
  • Dòng tiêu thụ trung bình : 35 mA
  • Dòng tiêu thụ tối đa: ~ 200 mA
  • Tần số lấy mẫu : 25 Hz (40 ms)

Kết nối đơn giản, 3 chân theo thứ tự trong hình

Tính toán khoảng cách bằng tín hiệu hồng ngoại phản xạ

Tín hiệu lối ra Vo không tuyến tính theo khoảng cách

Nối đến bo Arduino như sau

Sơ đồ thực tế

Gắn thêm màn hình LCD qua giao tiếp I2C. Xem lại bài trước để biết chi tiết cách nối.

Chương trình

// bandardalat.com

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,16,2);
int GP2D12;

void setup()
{
lcd.init(); 
lcd.init();
//
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Distance ");
lcd.setCursor(0,1);
//
Serial.begin(9600); 
}
void loop()
{
GP2D12 = Read_GP2D12(0);

if(GP2D12 > 10 && GP2D12 < 80)
{
Serial.print(GP2D12,DEC);
Serial.println("cm");

lcd.setCursor(0,1);
lcd.print(GP2D12);
lcd.println(" cm ");
}
else
{
Serial.println("out of range");
lcd.setCursor(0,1);
lcd.print("out of range");
}
delay(1000);
}

int Read_GP2D12(byte pin)
{
int tmp;
tmp = analogRead(pin);
if (tmp < 3)return -1;
return (6787.0 /((float)tmp - 3.0)) - 4.0;
}

Cảm biến GP2D12 là loại cũ, độ chính xác không cao. Sharp đã cho ra một số loại cảm biến thay thế tốt hơn như họ SHARP 2Y0Axx.

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *