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

Entradas populares de este blog

Arduino sencillo