×

Infrared Distance Sensor SHARP GP2Y0A41SK0F dengan Arduino

Sensor inframerah buatan SHARP sudah tidak baru di dunia robotic, sejak tahun 2000an, sensor ini banyak digunakan pada pembuatan robot, baik sebagai sensor jarak, pengukur jarak, dan aplikasi pengukuran jarak lainya. Terdapat banyak jenis sensor SHARP yang diproduksi, semuanya berbeda pada nilai jarak yang dapat dibaca oleh sensor tersebut. Semakin besar rentang baca yang dimiliki oleh sensor, maka semakin besar error hasil pembacaaan (tidak terlalu akurat). Sedangkan semakin pendek/ dekat rentang pembacaan sensor, akan didapati hasil baca yang lebih baik.

Kali ini Klinik Robot akan membahas penggunaan sensor jarak inframerah SHARP SP2Y0A41SK0F dengan spesifikasi pengukuran jarak pada 4cm s/d 30cm.

Berikut ini link datasheet yang dapat dilihat : klik sini.

Untuk detail pembahasan dapat dilihat pada video youtube dibawah ini, namun secara garis besar dibahas sebagai berikut :

  1. Pengaruh jarak antara pemancar inframerah dengan penerima sensor inframerah akan mempengaruhi pembacaan objek yang diukur
  2. Pengaruh error pembacaan sisi samping dari sisi pemancar dan juga error pembacaan sisi samping dari sisi pemancar penerima.
  3. Pembacaan error pada lebar objek yang kurang dari 35mm dan lebih dari 35mm.
  4. Pembacaan error pada objek yang memiliki ketinggian lebih rendah dari sensor sebesar 6mm dan lebih tinggi dari sensor minimal 15mm (diukur dari titik tengah sensor)..
  5. Beberapa tips dari pabrikan, mengenai warna objek, penambahan kapasitor 10uF untuk kestabilan tegangan input sensor, dan lainnya.

Sensor yang dibahas dapat dibeli pada link berikut ini :

Berikut script Arduino yang digunakan :

// Sharp IR GP2Y0A41SK0F Distance Test
// Youtube: Klinik Robot - untuk keterangan lebih lanjut
#define sensor A0 // Sharp IR GP2Y0A41SK0F (4-30cm, analog)
void setup() {
  Serial.begin(9600); // start the serial port reading sensor output
}
void loop() {
  
  // Tegangan Power Supply = 5 Volt DC
  float volts = analogRead(sensor)*0.0048828125;  // value from sensor * (5/1024)
  int distance = 13*pow(volts, -1); // worked out from datasheet graph
  delay(1000); // slow down serial port 
  
  if (distance <= 30){
    Serial.println(distance);   // print the distance
  }
}