Para visualizar los datos de un sensor DHT11 en una pantalla LCD 16x2 sin interfaz I2C, necesitarás conectar la pantalla LCD utilizando los pines digitales de la placa Arduino. A continuación, te proporciono una guía completa y un ejemplo de código para lograrlo.
Materiales necesarios:
Placa Arduino (Uno, Nano, Mega, etc.)
Sensor DHT11
Pantalla LCD 16x2 sin I2C
Cables de conexión
Resistor de 10k ohms (opcional, para el contraste del LCD)
Conexiones:
Conectar el Sensor DHT11:
VCC del DHT11 a 5V en el Arduino.
GND del DHT11 a GND en el Arduino.
DATA del DHT11 a un pin digital en el Arduino (por ejemplo, el pin 2).
Conectar la Pantalla LCD 16x2:
VSS del LCD a GND en el Arduino.
VDD del LCD a 5V en el Arduino.
V0 del LCD a un potenciómetro de 10k ohms (centro) para ajustar el contraste, los otros terminales del potenciómetro a 5V y GND.
RS del LCD al pin digital 7 en el Arduino.
RW del LCD a GND en el Arduino.
E del LCD al pin digital 8 en el Arduino.
D4 del LCD al pin digital 9 en el Arduino.
D5 del LCD al pin digital 10 en el Arduino.
D6 del LCD al pin digital 11 en el Arduino.
D7 del LCD al pin digital 12 en el Arduino.
A (Anodo de la retroiluminación) del LCD a 5V a través de un resistor de 220 ohms (si es necesario).
K (Cátodo de la retroiluminación) del LCD a GND.
Código:
Para el código, necesitas instalar las bibliotecas DHT y LiquidCrystal desde el administrador de bibliotecas en el IDE de Arduino.
cpp
Copiar código
#include <LiquidCrystal.h>
#include <DHT.h>
// Definir el tipo de sensor y el pin de datos
#define DHTTYPE DHT11
#define DHTPIN 2
// Inicializar el sensor DHT
DHT dht(DHTPIN, DHTTYPE);
// Inicializar la pantalla LCD con los pines correspondientes
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
// Iniciar la comunicación con el LCD
lcd.begin(16, 2);
// Iniciar el sensor DHT
dht.begin();
// Mostrar un mensaje inicial
lcd.setCursor(0, 0);
lcd.print("DHT11 Sensor");
delay(2000);
lcd.clear();
}
void loop() {
// Leer la humedad y la temperatura del DHT11
float h = dht.readHumidity();
float t = dht.readTemperature();
// Verificar si hay errores en la lectura
if (isnan(h) || isnan(t)) {
lcd.setCursor(0, 0);
lcd.print("Error lectura");
return;
}
// Mostrar la humedad
lcd.setCursor(0, 0);
lcd.print("Hum: ");
lcd.print(h);
lcd.print(" %");
// Mostrar la temperatura
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
// Esperar 2 segundos antes de la siguiente lectura
delay(2000);
}
Explicación del código:
Bibliotecas: Se incluyen las bibliotecas necesarias para el sensor DHT y la pantalla LCD.
Definiciones: Se define el tipo de sensor (DHT11) y el pin de datos.
Inicialización: Se inicializa el sensor y la pantalla LCD en el setup().
Lectura y visualización: En el loop(), se leen los datos de temperatura y humedad del sensor y se muestran en la pantalla LCD.
Solución de problemas:
Errores de lectura: Si la pantalla muestra "Error lectura", asegúrate de que el sensor DHT11 está correctamente conectado y funcionando.
Contraste del LCD: Si no puedes ver nada en la pantalla, ajusta el potenciómetro para cambiar el contraste.
Referencias:
Arduino IDE
Biblioteca DHT
Biblioteca LiquidCrystal