// Definición de pines
const int trigPin = 6;
const int echoPin = 7;
const int relayPin = 9;
const int buzzerPin = 8;
const int ledPin = 10;
// Variables de distancia
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(relayPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(relayPin, HIGH); // Iniciar el motor
}
void loop() {
// Enviar pulso ultrasónico
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Leer el pulso de retorno
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
// Mostrar distancia en el monitor serie
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Verificar la distancia y tomar acciones
if (distance <= 30 && distance > 10) { // Distancia prefijada para activar el LED
digitalWrite(ledPin, HIGH); // Encender LED (simulando traqueteo del volante)
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
} else if (distance <= 10) { // Distancia para activar el zumbador y detener el motor
digitalWrite(buzzerPin, HIGH); // Activar zumbador
digitalWrite(relayPin, LOW); // Apagar el motor
} else {
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
digitalWrite(relayPin, HIGH); // Mantener el motor encendido
}
delay(200); // Retardo para la próxima lectura
}