LCD 20x4

Buenas tardes, tengo una pantalla LCD 20x4 con I2c, i cuando quiero escribir un numero o una frase solo me envía la primera letra o numero de todos, no se como hacer que envíe todo el numero.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);


int b;

void setup()
{
  

  lcd.begin(20, 4);
  lcd.setCursor(0, 0);
  lcd.backlight();
  //Iniciamos la pantalla
  lcd.init();

  /
  b = 1234;
}

void loop()
{

  lcd.clear();
  lcd.setCursor(1, 2); 
  lcd.print(b);

  delay(100);

}

Otra opción seria enviar cifra por cifra del numero, enviar primero un 1, después un 2, etc. Lo he probado con la instrucción "%", y así buscar el resido oportuno en cada caso. El problema viene cuando el residuo es 0, me muestra el numero que viene a continuación, por ejemplo si el residuo es 052, me muestra un 5 y no un 0.
La opción correcta seria dividir el numero en una cadena de cifras, y enviar cada cifra en el momento oportuno.
Pero lo ideal y mas sencillo seria poder enviar todo el numero seguido.

Con un delay(100) no creo que alcances a ver algo que se la pasa borrandose con
lcd.clear();

Cambia ese delay a algo que te permita ver

delay(1000) o mayor. Y para que borras si tu valor b esta fijo, lo has establecido en el setup y nadie lo cambia.

Hola. Tuve el mismo problema que tú. Cambia de librería. :wink: