byte led1 = 15;
byte led2 = 2;
byte led3 = 4;
byte led4 = 16;
byte led5 = 17;
byte led6 = 5;
byte led7 = 18;
byte led8 = 19;
byte led9 = 21;
byte led10 = 22;
//pin sensor ultrasonik
byte trigPin1 = 13;
byte echoPin1 = 12;
#define kecepatanSuara 0.034
//#define digunakan untuk membuat sebuah konstanta
float jarakcm1;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("ESP32 Water level");
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(led10, OUTPUT);
}
void loop() {
// ambil jarak dari sensor
unsigned long durasi = 0;
//memerintahkan sensor ultrasonik
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
//mencari durasi waktu
durasi = pulseIn(echoPin1,HIGH);
//menghitung jarak
jarakcm1 = durasi * kecepatanSuara / 2;
Serial.print("Jarak = ");
Serial.println(jarakcm1);
//matikan semua LED
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
//jika jarak kurang dari sama dengan 10
if(jarakcm1<=10){
digitalWrite(led1, HIGH);
}
if(jarakcm1>10 && jarakcm1<=20){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
}
if(jarakcm1>20 && jarakcm1<=30){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}
if(jarakcm1>30 && jarakcm1<=40){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
}
if(jarakcm1>40 && jarakcm1<=50){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
if(jarakcm1>50 && jarakcm1<=60){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
}
if(jarakcm1>60 && jarakcm1<=70){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
}
if(jarakcm1>70 && jarakcm1<=80){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
if(jarakcm1>80 && jarakcm1<=90){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
digitalWrite(led9, HIGH);
}
if(jarakcm1>90){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
digitalWrite(led9, HIGH);
digitalWrite(led10, HIGH);
}
delay(1000); // this speeds up the simulation
}