#define ECHO_PIN 2
#define TRIG_PIN 3
// Menentukan PIN untuk LED
uint8_t ledPin[] = {13, 12, 11, 10, 9}; // pin led
uint8_t nyalaLED = 0; // jml led menyala
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
for (uint8_t j = 0; j < 5; j++) {
pinMode(ledPin[j], OUTPUT);
}
}
float bacaJarakCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int durasi = pulseIn(ECHO_PIN, HIGH);
return durasi * 0.03435 / 2; // Kec. suara 343.5 m/s atau 0.03435 cm/ms
}
void loop() {
float jarak = bacaJarakCM();
if (jarak > 380) {
nyalaLED = 0;
} else if (jarak < 380 && jarak > 300) {
nyalaLED = 1;
} else if (jarak < 300 && jarak > 200) {
nyalaLED = 2;
} else if (jarak < 200 && jarak > 100) {
nyalaLED = 3;
} else if (jarak < 100 && jarak > 20) {
nyalaLED = 4;
} else {
nyalaLED = 5;
}
// MEMBERIKAN INSTRUKSI KE AKTUATOR (LED)
for (uint8_t i = 0; i < nyalaLED; i++) {
digitalWrite(ledPin[i], HIGH);
}
for (uint8_t i = nyalaLED; i < 5; i++) {
digitalWrite(ledPin[i], LOW);
}
Serial.print("Jarak (cm): ");
Serial.println(bacaJarakCM());
delay(100);
}