#define NUM_SENSORS 8 // Jumlah sensor LDR
int LDR_pins[NUM_SENSORS] = {A0, A1, A2, A3, A4, A5, A6, A7}; // Pin LDR yang terhubung ke Arduino
int LDR_values[NUM_SENSORS]; // Array untuk menyimpan nilai baca LDR
int threshold; // Nilai threshold
void setup() {
Serial.begin(9600); // Mulai komunikasi serial untuk debug
for (int i = 0; i < NUM_SENSORS; i++) {
pinMode(LDR_pins[i], INPUT); // Set pin sensor LDR sebagai input
}
}
void loop() {
int maxLDR = 0;
// Membaca nilai dari setiap sensor LDR
for (int i = 0; i < NUM_SENSORS; i++) {
LDR_values[i] = analogRead(LDR_pins[i]);
if (LDR_values[i] > maxLDR) {
maxLDR = LDR_values[i]; // Menyimpan nilai tertinggi
}
}
// Menentukan treshold dari nilai LDR maksimum
threshold = maxLDR * 0.8; // 80% dari nilai maksimum sebagai treshold
// Menampilkan nilai sensor dan treshold untuk debugging
Serial.print("Threshold: ");
Serial.println(threshold);
for (int i = 0; i < NUM_SENSORS; i++) {
Serial.print("Sensor ");
Serial.print(i);
Serial.print(": ");
Serial.println(LDR_values[i]);
}
// Proses untuk menentukan arah mobil
followLine();
delay(100); // Delay agar pembacaan sensor tidak terlalu cepat
}
// Fungsi untuk mengikuti garis berdasarkan treshold
void followLine() {
for (int i = 0; i < NUM_SENSORS; i++) {
if (LDR_values[i] >= threshold) {
// Sensor ini membaca gelap (Lintasan Hitam)
// Implementasikan logika untuk menggerakkan motor atau mengambil tindakan lain di sini
Serial.print("Sensor ");
Serial.print(i);
Serial.println(" : HITAM");
} else {
// Sensor ini membaca terang (Lintasan Putih)
Serial.print("Sensor ");
Serial.print(i);
Serial.println(" : PUTIH");
}
}
}