// Tugas 3 Syntax Switch Case
#define ECHO_PIN 15
#define TRIG_PIN 2
#define pinLed1 5
#define pinLed2 18
#define pinLed3 19
#define pinLed4 23
#define pinBuzzer 13
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void setup() {
Serial.begin(115200);
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
int distance = readDistanceCM();
Serial.print("Measured distance: ");
Serial.println(distance);
Serial.println(" cm");
switch (distance) {
case 10 ... 100:Serial.println("Warning = Siaga 1");
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinBuzzer, HIGH);
break;
case 101 ... 200:Serial.println("Warning = Siaga 2");
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinBuzzer, HIGH);
break;
case 201 ... 300:Serial.println("Warning = Siaga 3");
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, LOW);
digitalWrite(pinBuzzer, HIGH);
break;
case 301 ... 400:Serial.println("Warning = Siaga 4");
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinBuzzer, HIGH);
break;
default:
Serial.println("KONDISI AMAN");
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinBuzzer, LOW);
break;
}
delay(1000); // this speeds up the simulation
}