// Vúmetro de 7 LEDS con sensor de distancia
int ledPins[] = {8,7,6,5,4,3,2};
int numLeds = 7;
int trigPin = 11;
int echoPin = 10;
void setup() {
// Leds como outputs
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
// Set the trigger and echo pins for the distance sensor
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Send a pulse to the trigger pin to start a distance measurement
digitalWrite(trigPin, LOW);//está apagado antes de soltar la onda
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);//suelta la onda
delayMicroseconds(10);
digitalWrite(trigPin, LOW);//me callo para recibir la onda
// Read the distance measurement from the echo pin
long duration = pulseIn(echoPin, HIGH);//long duration para medir distancias. PulseIn cronometra el tiempo desde que se ha soltao la onda hasta que vuelve y la recoge
// Convert the distance measurement to a VU meter level between 0 and 7
int vuLevel = map(duration, 0, 3000, numLeds, 0);// primer parametro del map el valor que quiero mapear los dos siguientes son el rango de distancia y los dos ultimos son los leds que se van a encender gradualmente
//SI CAMBIO EL 0 Y EL NUM LEDS PASA AL REVÉS
// Turn on the appropriate number of LEDs based on the VU meter level
for (int i = 0; i < numLeds; i++) {
if (i < vuLevel) {
digitalWrite(ledPins[i], HIGH);
} else {
digitalWrite(ledPins[i], LOW);//al estar cerca que se apague
}
}
}