Si tienes el display LCD1602 con módulo I2C
I2C es un puerto y protocolo de comunicación serial. El módulo I2C es usado para reducir el número de cables para conectar el display. De los 4 pines que tiene los que nos interesan son el SDA y SCL que irán conectados en los SDA y SCL del arduino en la parte de comunicación. En mi caso están en los pines 20(SDA) y 21(SCL) ya que es un mega 2560.
Yo instale esta librería para mi sketch: https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
el display con modulo I2C:
conexión SDA y SCL:
Sketch
// librería para LCD1602 (LCD 16 caracteres 2 líneas) con módulo I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// definimos el objeto lcd
// en la dirección 0x27, le especificamos que son 16 caracteres y 2 líneas
LiquidCrystal_I2C lcd(0x27, 16, 2);
//libreria DHT sensor library Adafruit
#include "DHT.h"
#define DHTPIN 2 // pin usado para recibir la medición
#define DHTTYPE DHT11 // impirtante verificar que sea el sensor que estamos usando
// Inicializamos el sensor DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Inicializamos comunicación serie
Serial.begin(9600);
// Inicializamos el sensor DHT
dht.begin();
// Inicializamos el LCD,
lcd.begin();
}
void loop() {
// Esperamos 2 segundos entre cada medida del sensor
delay(2000);
// Leemos la humedad relativa
float h = dht.readHumidity();
// Leemos la temperatura en grados centígrados (por defecto)
float t = dht.readTemperature();
// Leemos la temperatura en grados Fahrenheit
float f = dht.readTemperature(true);
// Comprobamos si ha habido algún error en la lectura
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Error obteniendo los datos del sensor DHT11");
return;
}
// Calcular el índice de calor o sensación térmica en Fahrenheit
float hif = dht.computeHeatIndex(f, h);
// Calcular el índice de calor o sensación térmica en grados centígrados
float hic = dht.computeHeatIndex(t, h, false);
//mensajes LCD
lcd.clear(); // limpiamos LCD
lcd.setCursor (0, 0); // vamos al inicio de la linea 1
lcd.print("Humedad: ");
lcd.print(h);
lcd.setCursor (0, 1); // vamos al inicio de la linea 2
lcd.print("Temp: ");
lcd.print(t);
//mensajes Serial
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Sensación Térmica: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}
Circuito
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?