I2C LCD doesn't display text

Hi :slight_smile:
I'm new, it's the second time that I hack with an arduino and have a problem.
I'm using:

I solder the backpack to the LCD, but can't display any text.

I tryed to use the i2c_scanner, it displayed "I2C device found at address 0x60 !".

I also tryed to use the "hd44780" library (as explained here, without success.



I attached some photos to help.
Thank you in advance for the help!

post the output from the hd44780 library hd44780_I2Cexp i/o class example I2CexpDiag.

--- bill

1 Like

I have had this happen several times. Each time it was the wrong library. There are several libraries available. I now have one library I use and put it in the sketch folder and include not the arduino library in the IDE spot. You will also find several different ways to initialize it, some start with start others with begin. Try a few libraries but first try the I2C scanner and check if the correct ports are assigned. If the scanner does not find it that has to be solved first.

1 Like

Try these steps:
1. Connect I2CLCD with I2C Bus.
2. Upload the following sketch to find the address of I2CLCD.

#include<Wire.h>
byte busStatus;

void setup()
{
  Serial.begin(9600);
  Wire.begin();
  for (int i2cAddress = 0x00; i2cAddress < 0x80; i2cAddress++)
  {
    Wire.beginTransmission(i2cAddress);
    busStatus = Wire.endTransmission();
    if (busStatus == 0x00)
    {
      Serial.print("I2C Device found at address: 0x");
      Serial.println(i2cAddress, HEX);
    }

    else
    {
      Serial.print("I2C Device not found at address: 0x");
      Serial.println(i2cAddress, HEX);
    }
  }
}

void loop()
{

}

3. Upload the following sketch to do the functional check of I2CLCD.

#include<LiquidCrystal_I2C.h>
#include<Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
  Serial.begin(9600);
  Wire.begin();
  lcd.begin();//or lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);  //DPos (0-15), LPos (0-1)
  //----------------------
  Wire.beginTransmission(0x27);
  byte busStatus = Wire.endTransmission();
  if (busStatus != 0)
  {
    Serial.println("I2CLCD is not found!");
    while (1); //wait for ever
  }
  Serial.print("I2CLCD is found!");
  //---------------------
  lcd.print("Forum"); //show message
}

void loop() {}

Hill Bill, thx for your time. That's the output :

e croquis utilise 15447 octets (31%) de l'espace de stockage de programmes. Le maximum est de 48640 octets.
Les variables globales utilisent 673 octets (10%) de mémoire dynamique, ce qui laisse 5471 octets pour les variables locales. Le maximum est de 6144 octets.
********************************************************************
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.6.7
CPU ARCH: AVR - F_CPU: 16000000
--------------------------------------------------------------------
SDA digital pin: 20
SCL digital pin: 21
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES
Checking for I2C pins shorted together - Not Shorted
--------------------------------------------------------------------
Scanning i2c bus for devices..
 i2c device found at address 0x60
Total I2C devices found: 1
--------------------------------------------------------------------
Scanning i2c bus for all lcd displays (4 max)
LCD 0 begin() failed: -4
No working LCD devices

Hi GolamMostafa, thx for your time.
That's the step 2 output :

Le croquis utilise 5149 octets (10%) de l'espace de stockage de programmes. Le maximum est de 48640 octets.
Les variables globales utilisent 484 octets (7%) de mémoire dynamique, ce qui laisse 5660 octets pour les variables locales. Le maximum est de 6144 octets.

I2C Device not found at address: 0x64
I2C Device not found at address: 0x65
I2C Device not found at address: 0x66
I2C Device not found at address: 0x67
I2C Device not found at address: 0x68
I2C Device not found at address: 0x69
I2C Device not found at address: 0x6A
I2C Device not found at address: 0x6B
I2C Device not found at address: 0x6C
I2C Device not found at address: 0x6D
I2C Device not found at address: 0x6E
I2C Device not found at address: 0x6F
I2C Device not found at address: 0x70
I2C Device not found at address: 0x71
I2C Device not found at address: 0x72
I2C Device not found at address: 0x73
I2C Device not found at address: 0x74
I2C Device not found at address: 0x75
I2C Device not found at address: 0x76
I2C Device not found at address: 0x77
I2C Device not found at address: 0x78
I2C Device not found at address: 0x79
I2C Device not found at address: 0x7A
I2C Device not found at address: 0x7B
I2C Device not found at address: 0x7C
I2C Device not found at address: 0x7D
I2C Device not found at address: 0x7E
I2C Device not found at address: 0x7F

Given the result, I think you don't want the output of step 3 :stuck_out_tongue:

Where are other results for i2cAddress: 0x00 - 0x63?

Use the pins labeled SCL and SDA, not A4/A5, this is not an UNO and does not use A4/A5 for I2C.

Hi,
Can you clean those solder joints up so they all look the same?
Desolder with some solder wick and reapply, allowing the joint to heat up first.


Can you please post an image of the I2C backboard?

Tom.. :smiley: :+1: :coffee: :australia:

Are you talking about the step 3 ?

You are the one :wink:
Thank you all for your help :slight_smile:

Yes.

@heyheychicken

If you look at the I2CexpDiag output what you see is that it did a scan and found 1 i2c slave at address 0x60
But then when it looked for i2c LCD devices it didn't find any.

Also look at this output:

SDA digital pin: 20
SCL digital pin: 21

This shows what Arduino pins are being used for SDA and SCL.
If A4 and A5 are being used, those would have been printed as well.
Here is the output for an UNO

SDA digital pin: 18 A4
SCL digital pin: 19 A5

On this board you must use the pins labeled SDA and SCL.
If you connect your i2c device to A4 and A5 then you are not connecting to the proper pins.

--- bill

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