// Definisikan pin yang terhubung ke setiap sensor
const int sensor1Pin = 35; // GPIO 35 untuk Sensor 1
const int sensor2Pin = 34; // GPIO 34 untuk Sensor 2
const int sensor3Pin = 33; // GPIO 33 untuk Sensor 3
int count = 0;
bool sensor1Passed = false;
bool sensor2Passed = false;
bool sensor3Passed = false;
void setup() {
Serial.begin(115200);
pinMode(sensor1Pin, INPUT);
pinMode(sensor2Pin, INPUT);
pinMode(sensor3Pin, INPUT);
// Inisialisasi sensor untuk memastikan semua dalam keadaan HIGH
delay(500); // Tunggu sejenak agar sensor stabil
int sensor1Value = digitalRead(sensor1Pin);
int sensor2Value = digitalRead(sensor2Pin);
int sensor3Value = digitalRead(sensor3Pin);
// Cek kondisi awal sensor
if (sensor1Value == LOW) sensor1Passed = true;
if (sensor2Value == LOW) sensor2Passed = true;
if (sensor3Value == LOW) sensor3Passed = true;
Serial.println("Inisialisasi Selesai. Mulai counting...");
}
void loop() {
int sensor1Value = digitalRead(sensor1Pin); // Baca nilai dari Sensor 1
int sensor2Value = digitalRead(sensor2Pin); // Baca nilai dari Sensor 2
int sensor3Value = digitalRead(sensor3Pin); // Baca nilai dari Sensor 3
// Cek Sensor 1
if (sensor1Value == LOW && !sensor1Passed) {
sensor1Passed = true;
Serial.println("Sensor 1 Terdeteksi");
}
// Cek Sensor 2
if (sensor1Passed && sensor2Value == LOW && !sensor2Passed) {
sensor2Passed = true;
Serial.println("Sensor 2 Terdeteksi");
}
// Cek Sensor 3
if (sensor1Passed && sensor2Passed && sensor3Value == LOW && !sensor3Passed) {
sensor3Passed = true;
Serial.println("Sensor 3 Terdeteksi");
count++;
Serial.print("Jumlah PCB: ");
Serial.println(count);
}
// Reset flag saat semua sensor kembali HIGH (PCB sudah sepenuhnya lewat)
if (sensor1Passed && sensor2Passed && sensor3Passed &&
sensor1Value == HIGH && sensor2Value == HIGH && sensor3Value == HIGH) {
sensor1Passed = false;
sensor2Passed = false;
sensor3Passed = false;
Serial.println("Reset Flags");
}
delay(100); // Delay kecil untuk debouncing
}