float jarakcm1;
//pin sensor ultra sonic
byte trigPin1 = 13; // trigerpin
byte echoPin = 12; //echopin
#define kecepatanSuara 0.034
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;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(trigPin1, OUTPUT);
pinMode(echoPin, 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() {
unsigned long durasi = 0;
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
//mencari durasi waktu
durasi = pulseIn(echoPin, HIGH);
// kalkulasi 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 10cm maka 1 LED menyala
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);
}
// put your main code here, to run repeatedly:
delay(1000); // this speeds up the simulation
}