No aparece mi mensaje en mi pantalla LCD conectada con I2C

Hola buenas tardes, desde hace un tiempo he estado intentando mostrar los datos que lee un sensor de temperatura DHT11 en mi pantalla LCD con I2C, pero no lo he logrado, solo aparece la pantalla en blanco, además al momento de compilar el sketch no me sale ningún error, comparto el código.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT_U.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16,2);
void setup (){
 Serial.begin(9600);
 Serial.println("Prueba");
 lcd.init();
 lcd.backlight();
 lcd.clear();
 dht.begin();
 pinMode(7, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(8, INPUT);
}
void loop(){
   float t = dht.readTemperature();
   if (t >= 15.00) {
    digitalWrite(7, HIGH);
    digitalWrite(6, HIGH);
    Serial.print("Temperatura: ");
    Serial.println(t);
    Serial.println("Ventilador activado");
    lcd.setCursor(0,0);
    lcd.print(t);
    lcd.setCursor(0,1);
    lcd.print("Ventilador activado");
   }else{
    digitalWrite(7, LOW);
    digitalWrite(6, LOW);
    Serial.print("Temperatura :");
    Serial.println(t);
    Serial.println("Ventilador desactivado");
    lcd.setCursor(0,0);
    lcd.print(t);
    lcd.setCursor(0,1);
    lcd.print("Ventilador desactivado");
   }
}

También comparto algunas fotos.

Si alguien me puede decir que estoy haciendo mal ya sea en el código o en el circuito se lo agradecería, gracias.

Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.

Hola
Su LCD está conectado a pines incorrectos.
Los pines de arduin para I2C son los
A4 (SDA), A5 (SCL)
En la imagen, parece que te conectaste a:

A3 (SDA), A4 (SCL).

Reparar y probar de nuevo

Además ajusta el contraste por medio del potenciómetro posterior.

Saludos


Hola, ya corregí una línea de código y aparece información en la pantalla, pero no sale la información que está en el código, aquí un video y el código.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT_U.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16,2);
void setup (){
 Serial.begin(9600);
 Serial.println("Prueba");
 lcd.begin(16,2);
 lcd.init();
 lcd.backlight();
 lcd.clear();
 dht.begin();
 pinMode(7, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(8, INPUT);
}
void loop(){
   
   int t = dht.readTemperature();
   if (t >= 15.00) {
    digitalWrite(7, HIGH);
    digitalWrite(6, HIGH);
    Serial.print("Temperatura: ");
    Serial.println(t);
    Serial.println("Ventilador activado");
    lcd.setCursor(0,0);
    lcd.print("Temp: ");
    lcd.print(t);
    lcd.print("°C");
    lcd.setCursor(0,1);
    lcd.print("Ventilador act.");
    delay(1000);
   }else{
    digitalWrite(7, LOW);
    digitalWrite(6, LOW);
    Serial.print("Temperatura :");
    Serial.println(t);
    Serial.println("Ventilador desactivado");
    lcd.setCursor(0,0);
    lcd.print(t);
    lcd.setCursor(0,1);
    lcd.print("Ventilador desactivado");
    delay(1000);
   }
}

Bueno, vamos a suponer que has hecho las correciones de A4 y A5.
Lo que se ve en (una mala foto) es que los caracteres que muestran son cualquier cosa.
Ya que esas usando un adaptador I2C debemos suponer que LCD e I2C vinieron ya soldados.
Si no es el caso revisa soldaduras. En particular las que van de D4 a D7.
Yo dejaría temporalmente este código mas alla que no le veo cosas malas y probaría algun ejemplo de la libreria LCD que estas usando.
Cualquiera debria funcionar correctamente, si no lo hace tienes algo mal en el hardware.

El display no es de 16 caracteres, al menos es 20. asi que la inicialización debería ser

LiquidCrystal_I2C lcd(0x27,26,2);   // Alguno sobra o este 
void setup (){
 Serial.begin(9600);
 Serial.println("Prueba");
 lcd.begin(20,2);                                // o este.

No se inicializa el LCD dos veces.
En algunas librerías se usa lo de arriba y en otras lo de abajo pero ambas no.
Ahi tienes otro error.
Por eso busca los ejemplos en tu IDE y luego selecciona LCD (la que corresponde a la libreria que estas usando) y elige cualquiera.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.