circuito de distancia con bauzzer
// -------------------- DEFINICIÓN DE PINES --------------------
const int trigPin = 9; // Pin TRIG del sensor ultrasónico
const int echoPin = 10; // Pin ECHO del sensor ultrasónico
const int buzzer = 8; // Pin del buzzer
const int led = 7; // Pin del LED rojo
// -------------------- VARIABLES --------------------
long duracion; // Tiempo que tarda el eco en regresar
float distancia; // Distancia calculada en centímetros
void setup() {
Serial.begin(9600); // Inicia comunicación serial
pinMode(trigPin, OUTPUT); // TRIG como salida
pinMode(echoPin, INPUT); // ECHO como entrada
pinMode(buzzer, OUTPUT); // Buzzer como salida
pinMode(led, OUTPUT); // LED como salida
}
void loop() {
// -------- GENERAR PULSO ULTRASÓNICO --------
digitalWrite(trigPin, LOW); // Asegura pulso limpio
delayMicroseconds(2); // Espera breve
digitalWrite(trigPin, HIGH); // Activa el sensor
delayMicroseconds(10); // Pulso de 10 microsegundos
digitalWrite(trigPin, LOW); // Apaga el pulso
// -------- MEDIR TIEMPO DEL ECO --------
duracion = pulseIn(echoPin, HIGH); // Mide duración del eco
// -------- CALCULAR DISTANCIA --------
distancia = duracion * 0.034 / 2; // Conversión a cm
// -------- MOSTRAR EN SERIAL --------
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
// -------- LÓGICA DE SENSOR DE REVERSA --------
if (distancia > 50) {
// MUY LEJOS → sin alerta
noTone(buzzer); // Apaga buzzer
digitalWrite(led, LOW); // Apaga LED
}
else if (distancia > 30) {
// DISTANCIA MEDIA → pitido lento
tone(buzzer, 1000); // Genera tono de 1000 Hz
digitalWrite(led, HIGH); // Enciende LED
delay(400); // Tiempo encendido
noTone(buzzer); // Apaga buzzer
digitalWrite(led, LOW); // Apaga LED
delay(400); // Tiempo apagado
}
else if (distancia > 15) {
// CERCA → pitido rápido
tone(buzzer, 1500); // Tono más agudo
digitalWrite(led, HIGH); // Enciende LED
delay(150); // Encendido corto
noTone(buzzer); // Apaga buzzer
digitalWrite(led, LOW); // Apaga LED
delay(150); // Apagado corto
}
else {
// MUY CERCA → sonido continuo
tone(buzzer, 2000); // Tono continuo
digitalWrite(led, HIGH); // LED fijo encendido
}
delay(50); // Pequeña pausa para estabilidad
}