Cara Memprogram Sensor Linetracking TCRT5000 Pada ESP32

Cara Memprogram Sensor Linetracking TCRT5000 Pada ESP32

Sensor Line Tracking TCRT5000 adalah sensor inframerah yang digunakan untuk mendeteksi warna permukaan (biasanya hitam atau putih) — dan paling sering digunakan pada robot pengikut garis (line follower).

Berikut ini adalah cara memprogram Sensor Linetracking TCRT5000 pada ESP32 :

#include <Arduino.h>


int port_sensor_garis = A0;


bool baca_sensor_garis() {
int sensorValue = analogRead(port_sensor_garis); 
return sensorValue < 500; 
}

void setup()
{
Serial.begin(9600);
pinMode(port_sensor_garis, INPUT);

}
void loop(){
bool sensor_garis = baca_sensor_garis();
Serial.println("Garis : " + (String)sensor_garis);


}

Berikut ini adalah penjelasan dari kode di atas :


Fungsi Utama Kode

Membaca nilai pantulan cahaya dari sensor garis (misalnya TCRT5000) menggunakan pin analog A0, lalu menampilkan ke Serial Monitor apakah ada garis (hitam/putih) yang terdeteksi.


Penjelasan Baris demi Baris

1. Import Library Dasar

#include <Arduino.h>
  • Digunakan agar sketch dapat berjalan di berbagai board dengan kompatibilitas penuh.
  • Ini opsional di Arduino IDE, tapi dibutuhkan di platform seperti PlatformIO.

2. Deklarasi Pin Sensor

int port_sensor_garis = A0;
  • Mendefinisikan bahwa sensor garis terhubung ke pin analog A0.

3. Fungsi untuk Membaca Sensor

bool baca_sensor_garis() {
  int sensorValue = analogRead(port_sensor_garis); 
  return sensorValue < 500; 
}

Penjelasan:

  • analogRead() membaca nilai analog dari 0–1023 (karena ADC 10-bit).
  • Nilai kecil berarti permukaan hitam (sedikit pantulan IR).
  • Nilai besar berarti permukaan putih (banyak pantulan IR).
  • Jika nilai < 500 → dianggap garis terdeteksi (true).
    • Threshold 500 ini bisa disesuaikan tergantung sensor dan kondisi pencahayaan.

4. Fungsi Setup

void setup() {
  Serial.begin(9600);
  pinMode(port_sensor_garis, INPUT);
}
  • Serial.begin(9600) → Memulai komunikasi serial.
  • pinMode(..., INPUT) → Mengeset pin A0 sebagai input (sebenarnya analogRead() tidak butuh pinMode, tapi tetap aman).

5. Fungsi Loop

void loop() {
  bool sensor_garis = baca_sensor_garis();
  Serial.println("Garis : " + (String)sensor_garis);
}

Penjelasan:

  • Fungsi baca_sensor_garis() dijalankan.
  • Hasil (true atau false) dicetak ke Serial Monitor.
  • Output: Garis : 1 → Jika garis (hitam) terdeteksi Garis : 0 → Jika tidak ada garis (putih)

Contoh Hasil di Serial Monitor

Jika permukaan hitam berada di bawah sensor:

Garis : 1

Jika permukaan putih berada di bawah sensor:

Garis : 0

Catatan Penting

  • Nilai threshold 500 bisa diatur sesuai kondisi pencahayaan dan tipe permukaan.
  • Untuk respons lebih halus, kamu bisa tambahkan delay() di loop() atau gunakan pembacaan analog langsung di Serial Monitor untuk kalibrasi.

Kesimpulan

Program ini:

  • Membaca sensor garis TCRT5000 (analog).
  • Menentukan apakah garis (hitam) terdeteksi.
  • Menampilkan hasil sebagai true/false di Serial Monitor.

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?