Sensor ultrasónico con led verde y rojo
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int trigPin = 9; // Pin Trig del sensor ultrasónico
const int echoPin = 10; // Pin Echo del sensor ultrasónico
const int greenLedPin = 7; // Pin del LED verde
const int redLedPin = 8; // Pin del LED rojo
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C de la pantalla LCD
void setup() {
pinMode(trigPin, OUTPUT); // Configura el pin Trig como salida
pinMode(echoPin, INPUT); // Configura el pin Echo como entrada
pinMode(greenLedPin, OUTPUT); // Configura el pin del LED verde como salida
pinMode(redLedPin, OUTPUT); // Configura el pin del LED rojo como salida
lcd.begin(); // Inicia la pantalla LCD
lcd.backlight(); // Enciende la luz de fondo de la pantalla LCD
Serial.begin(9600); // Inicia la comunicación serial
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // Calcula la distancia en cm
Serial.print("Distance: ");
Serial.println(distance); // Imprime la distancia en el monitor serial
lcd.setCursor(0, 0); // Establece el cursor en la primera fila
lcd.print("Distancia: ");
lcd.print(distance); // Muestra la distancia en la pantalla LCD
lcd.print(" cm");
if (distance < 10) { // Si la distancia es menor a 10 cm
digitalWrite(greenLedPin, LOW); // Apaga el LED verde
digitalWrite(redLedPin, HIGH); // Enciende el LED rojo
lcd.setCursor(0, 1); // Establece el cursor en la segunda fila
lcd.print("Muy cerca ");
} else if (distance < 30) { // Si la distancia es menor a 30 cm
digitalWrite(greenLedPin, HIGH); // Enciende el LED verde
digitalWrite(redLedPin, LOW); // Apaga el LED rojo
lcd.setCursor(0, 1); // Establece el cursor en la segunda fila
lcd.print("Cerca ");
} else {
digitalWrite(greenLedPin, LOW); // Apaga el LED verde
digitalWrite(redLedPin, LOW); // Apaga el LED rojo
lcd.setCursor(0, 1); // Establece el cursor en la segunda fila
lcd.print("Lejos ");
}
delay(1000); // Espera 1 segundo antes de medir nuevamente
}
Comentarios
Publicar un comentario