Pantalla LCD con I2C muestra caracteres extraños(Solucionado)

Hola buenos días:
Estoy realizando unas simples pruebas para saber los códigos hexadecimales de un mando de infrarrojos que muestra el resultado en una pantalla LCD 16x2 con I2C.Al momento de cargarle el sketch a la placa(Un Arduino Mega 2560) me doy cuenta de que la pantalla muestra estos símbolos:


¿Alguien sabe a que puede deberse?
Si que es verdad que si aprieto un botón del mando y el sensor lo capta la pantalla se pone normal pero nunca me había pasado algo así
El sensor infrarrojo esta conectado al pin A0 y la pantalla al pin 20(SDA) y 21(SCL)
Adjunto código:

#include <IRremote.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define RECV_PIN A0 // Pin para el sensor IR

LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C de la pantalla LCD

void setup()
{ 
  IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);// Inicia el receptor
  
  lcd.init();
  lcd.backlight();   // Enciende la luz de fondo de la LCD
  
}

void loop() {  
    lcd.print("Codigo HEX:");
  if (IrReceiver.decode()) {
    lcd.clear();
    lcd.setCursor(0, 0); // Limpia la pantalla LCD
    lcd.print("Codigo HEX:");
    lcd.setCursor(0, 1); // Posiciona el cursor en la segunda línea    
    lcd.print("0x");
    lcd.setCursor(2, 1);
    lcd.print(IrReceiver.decodedIRData.command, HEX); // Imprime el valor hexadecimal
    IrReceiver.resume(); // Recibe el siguiente valor
    delay(100);
  }
}

Muchas gracias.

Hi,
Mi consejo es que corras los ejemplos que tiene la libreria o los ejemplos que estan en files/ejemplos/liquid cristal "hello worl". Para ver si tienes problemas.

Hola.Tras cargarle el ejemplo Hello World ha funcionado estupendamente pero al volver a cargarle el sketch ha vuelto a dar el mismo fallo, incluso probando con una placa Arduino Uno da el mismo fallo.

Prueba a poner en el setup()

  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0, 0);

Hola, a mi me pasa igual pero con una pantalla oled 0,96 SPI; muestra caracteres "extraterrestres" en la parte inferior derecha y no que hacer; tal vez es por mi codigo (19540 bites de 32048 bites de memoria total del programa) es medianamente grande pero no lo puedo reducir(tendria que eliminar funciones).

Hola .Aun poniendo lo que me sugirió @tresvdoble sigue sin funcionar ¿Alguien sabe que es?

Hi
Por casualidad estas usando un breadboard para hacer las conecciones al lcd. Algunas veces estos causan malas conecciones y producen ruidos que afectan el lcd. Otra cosa anadele un condesador electrolitico de por lo menos de 470uf 16 voltios y otro de 0.1uf al voltaje que alimenta en el breadboard al lcd, Los condesadores te ayudan a eliminar los ruifdos.

Hola, buenos días:

Hola:
Al final todo ha resultado en que debería de haber puesto un lcd.clear() al final del loop.Muchas gracias a todos los que habéis participado en esto.

El problema es

lcd.print("Codigo HEX:");

al principio de loop() y que se imprime constantemente.
Elimina esa sentencia y listo.

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