[SOLUCIONADO] Problemas con LCD I2c 20x4

Hola a todos,

Pues yo no consigo que me funcione mi lcd de 20x4.

Se que la dirección es 0x27,20,4

Pero no se, he probado mil librerías, incluido lo todo lo que comenta Rafaelquero.

Pero no soy capaz.

Os cuento como lo tengo: es un arduino uno sin nada mas, bueno solo con un sensor shield.

Tengo la libreria que propone Rafaelquero con el nombre cambiado.

Si paso el Scanner me dice: "I2C device found at address 0x27 !"

Creo, y supongo, que lo tengo bien conectado porque si lo conecto de otra forma no lo encuentra el scanner.
En el programa pone que SDA va a el analogue PIN 4 y el SCL a el analogue PIN 5 pero yo lo tengo puestos a A4 y A5 Digital. Pero también lo he puesto en los analógicos, y del derecho y del revés y nada.

En el LCD me sale dos filas rellenas, dos vacías, o sea que no le llega información.

Si ejecuto el programa de ejemplo dentro de la misma librería "ARD_LCD_HCARDU0023_I2C_Hello_World_Example.ino" la lcd se oscurece y se ilumina otra vez pero después aparecen las dos filas rellenes y las dos vacías.

/* FILE:    ARD_LCD_HCARDU0023_I2C_Hello_World_Example.pde
   DATE:    11/07/12
   VERSION: 0.1

This is a simple example of how to use the Hobby Components I2C LCD module 
(HCARDU0023). To use this module you will require the appropriate library 
which can be downloaded from the following location:

http://forum.hobbycomponents.com/arduino_shields_modules
 
This code also demonstrates the correct pin assignment for the LCD. When you 
run this program you should see a greeting message appear on the display. 


DEVICE PINOUT (SPI Interface):

PIN 1: GND
PIN 2: +5V
PIN 3: SDA - Connect to Arduino analogue PIN 4
PIN 4: SCL - Connect to Arduino analogue PIN 5


You may copy, alter and reuse this code in any way you like but please leave 
reference to hobbycomponents.com in your comments if you redistribute this code. */


/* Include the SPI/IIC Library */
#include <Wire.h>
#include <LiquidCrystal_I2C.h>


/* Initialise the LiquidCrystal library. The default address is 0x27 and this is a 16x2 line display */
LiquidCrystal_I2C lcd(0x27,20,4);


void setup() 
{
  /* Initialise the LCD */
  lcd.init();
  lcd.init();
}

/* Main program loop */
void loop() 
{
  /* Make sure the backlight is turned on */
  lcd.backlight();

  /* Output the test message to the LCD */
  lcd.setCursor(0,0); 
  lcd.print("HOBBY COMPONENTS");
  lcd.setCursor(0,1); 
  lcd.print("**HELLO WORLD**");

  
  /* Do nothing */
  while(1);
}

Bueno, seguro que hay varias cosas que estoy haciendo mal.
¿cuales son?

Moderador: Titulo editado

Alomejor no tienes el contraste bien regulado,suele estar en la parte de atras de la pantalla ,es un cuadradito azul con un pequeño regulador blanco para tornavis de estrella muy pequeño. https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR-0ymolFNlIH7ZzNCEC59rxfIi8_n24itq5UBcKm9XlecNbO5tMw
Lo conectas donde el scanner te de una direccion ,si es un arduino UNO , sda->A4 y sdc->A5 ,son los pines analogicos,no le des mas vueltas a esto.

1 Like

No, por eso no es.

Gracias Jose,

Izan1020:
Creo, y supongo, que lo tengo bien conectado porque si lo conecto de otra forma no lo encuentra el scanner.
En el programa pone que SDA va a el analogue PIN 4 y el SCL a el analogue PIN 5 pero yo lo tengo puestos a A4 y A5 Digital. Pero también lo he puesto en los analógicos, y del derecho y del revés y nada.

Esto esta mal. Esta puesto en analógico, como debe de ser. Me lie, perdón.

Hola ArduMyth, y a todos,

He simplificado:
-solo la placa y la pantalla
-conexiones nuevas
-ultima versión de LiquidCrystal_I2C. He hecho he borrado todo y he empezado desde 0
-los ejemplos de la libreria no me funcionan
-he provado las dos direcciones.

Se retroilumina. Se ven las dos barras y en algunos ejemplos si consigo que se apague y se encienda el retroiluminado pero nada de nada.

Que cantidad de horas llevo perdidas en esto.
Que desesperación.

Y has girado el potenciómetro de contraste?

No es por el potenciómetro.

He revisado las soldaduras y nada, todo parece que esta bien.

Voy a descansar unos días. Después de semana santa lo intento de nuevo.

Muchas gracias a todos,

Entonces es la incialización, no es esta

LiquidCrystal_I2C lcd(0x27,20,4);

Sino la que especificación de los pines del PCF8574.

Luego pasó una posible inicialización.

Hi,
Para probar anadele estos command en el setup para ver si te trabaja.

Wire.begin();
lcd.begin(20, 16);
LCD.init();
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0); //set curso character position=0 line=0
lcd.print("Starting Display");

Bueno, pues me he puesto otra vez, desde 0 y ha salido.

Ni idea porque que ahora si y antes no, la verdad.

Muchas gracias a todos los que me habéis ayudado.