// Proyecto 7: Sensor de proximidad "Cerca de ti"
// Autor: [Tu nombre]
// Explicación: El sensor ultrasónico HC-SR04 mide la distancia y enciende
// de 1 a 10 LEDs según la proximidad del objeto.
#define TRIG 9
#define ECHO 8
// Pines del bargraph (ajusta si cambiaste conexiones)
int leds[] = {22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
void setup() {
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
// Configuramos los pines del bargraph
for (int i = 0; i < 10; i++) {
pinMode(leds[i], OUTPUT);
digitalWrite(leds[i], LOW);
}
}
void loop() {
long duracion;
float distancia;
// Enviar pulso ultrasónico
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// Leer tiempo de eco
duracion = pulseIn(ECHO, HIGH);
// Calcular distancia (cm)
distancia = duracion * 0.034 / 2;
// Limitar a 0–10 niveles
int nivel = map(distancia, 2, 50, 10, 0); // 2 cm → 1 LED, 50 cm → 10 LEDs
nivel = constrain(nivel, 0, 10);
// Mostrar distancia en monitor serial
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
// Encender LEDs según nivel
for (int i = 0; i < 10; i++) {
if (i < nivel) {
digitalWrite(leds[i], HIGH);
} else {
digitalWrite(leds[i], LOW);
}
}
delay(200);
}