// Definición de pines
int rojoPin = 3;
int amaPin = 4;
int verdePin = 5;
int triggerPin = 6;
int echoPin = 7;
// Variables
long pulso;
long distancia;
void setup() {
pinMode(rojoPin, OUTPUT);
pinMode(amaPin, OUTPUT);
pinMode(verdePin, OUTPUT);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
// Generar un pulso ultrasónico
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Calcular la duración del pulso ultrasónico
pulso = pulseIn(echoPin, HIGH);
// Calcular la distancia en centímetros
distancia = pulso / 58; // Dividir por 58 para obtener la distancia en cm
// Imprimir la distancia en el monitor serie
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
// Encender los LEDs en función de la distancia medida
if (distancia <= 20) {
digitalWrite(rojoPin, HIGH);
digitalWrite(amaPin, LOW);
digitalWrite(verdePin, LOW);
} else if (distancia >= 20 && distancia < 40) {
digitalWrite(rojoPin, LOW);
digitalWrite(amaPin, HIGH);
digitalWrite(verdePin, LOW);
} else {
digitalWrite(rojoPin, LOW);
digitalWrite(amaPin, LOW);
digitalWrite(verdePin, HIGH);
}
// Completar el código con las acciones adicionales según la distancia medida
delay(500);
}