Hello everyone first of all i want to say that i'm a beginner it've been working with arduino's for about a month now so for my first project i've build a light sensor using a HC-SR04 and 4 LED's when an object get closer to the sensor the LED's turn on i've tested the code and everything works but i think the code is a bit long and i think it can be shorter using functions maybe ?
so here's the code and please tell me if i can make it shorter thanks (and is this the right way to upload coads ? )
int trig = 8;
int echo = 7;
int LED1 = 3;
int LED2 = 5;
int LED3 = 6;
int LED4 = 11;
long duration;
int distance;
int distance1;
int distance2;
int distance3;
int distance4;
void setup() {
pinMode(echo,INPUT);
pinMode(trig,OUTPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
}
void loop() {
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
duration=pulseIn(echo,HIGH);
distance=duration*0.034/2;
if ( distance <= 40 ) {
distance1=map(distance,50,40,0,255);
distance1=constrain(distance1,0,255);
analogWrite(LED1,distance1);
} else {
analogWrite(LED1,LOW);
}
if (distance <= 30 ) {
distance2=map(distance,40,30,0,255);
distance2=constrain(distance2,0,255);
analogWrite(LED2,distance2);
} else {
analogWrite(LED2,LOW);
}
if (distance <= 20 ) {
distance3=map(distance,20,10,0,255);
distance3=constrain(distance3,0,255);
analogWrite(LED3,distance3);
} else {
analogWrite(LED3,LOW);
}
if (distance <= 10 ) {
distance4=map(distance,10,2,0,255);
distance4=constrain(distance4,0,255);
analogWrite(LED4,distance4);
} else {
analogWrite(LED4,LOW);
}
}