const int trigger=2, echo=3;
void setup() {
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
for (int pin=4; pin<10; pin++){
pinMode(pin, OUTPUT);
}
}
void loop() {
int distancia = medirDis();
int led = map(distancia, 250, 30, 4, 9);
if (distancia > 250){
enciendeleds (0,0,0,0,0,0);
} else if (distancia >= 30 && distancia < 250 && digitalRead(led) == 0){
digitalWrite(led, HIGH);
} else if (distancia>= 30 && distancia < 250 && digitalRead(led) == 1){
digitalWrite(led + 1, LOW);
} else if (distancia < 30){
enciendeleds (1,1,1,1,1,1);
delay(150);
enciendeleds(0,0,0,0,0,0);
delay(150);
}
Serial.println(distancia);
}
int medirDis() {
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
int tiempo= pulseIn(echo, HIGH);
int distancia = tiempo/58;
delay(38);
return distancia;
}
void enciendeleds (bool v1, bool v2, bool a1, bool a2, bool r1, bool r2){
digitalWrite(4, v1);
digitalWrite(5, v2);
digitalWrite(6, a1);
digitalWrite(7, a2);
digitalWrite(8, r1);
digitalWrite(9, r2);
}