16x2 LCD Not Working [I2C adapter not soldered]

Hello, I have a problem with my lcd 16x2 with I2C, The LED backlight turns on But the display does not show any text. i tried to print "hello world" but nothing showed up on the display. I double-checked my wiring and they were all connected to the right place (SDA-SDA, SCL-SCL, VCC-5v, GND-GND). i am using the library LiquidCrystal_I2C. Can someone help?

This is the code I used:

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

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.begin(16, 2);
  lcd.backlight();
  lcd.print("Hello, World!");
}

void loop() {
  // Nothing here
}



  • Always show us a good schematic of your proposed circuit.
    Show us good images of your ‘actual’ wiring.
    Give links to components.

This works for me. Ensure the backlight level pot is set correctly.

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();
  lcd.backlight();

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Hello World");
}

void loop() {
}

Photos attached.

This did not work for me.it remained blank

Did you try adjusting the backlight brightness pot on the i2c adapter? If set too high, it will wash out your text.

  • Let’s see the actual wiring connections.

Sorry, i'm really new to this. can you tell me how to reduce the brightness?

It's the blue cube potentiometer next to where you connect the i2c wires on the adapter.

it sorta worked, i can see lines of bars now, but still does not show text

Did you run the i2c_scanner sketch to see if it is showing up? It may need pullup resistors on the SDA and SCL lines.

1 Like

It showed up at the scan at address 0x27

Did you use the lcd.init() call rather than lcd.begin()?

yes im trying using the code you sent

Faulty unit? I have a 20x4 lcd displaying GPS data as I type. It's been running for days.

Is the I2C backpack soldered in or just pressed in place ?

1 Like

Are they connected on the correct side? It's called the "back" pack.

The orientation is correct and I have exactly such a configuration on my desk at the moment checking out the compatibility of LiquidCrystal_I2C library with the ESP32 Arduino core 3.0.4. But by lcd has already pin headers soldered on so I am using a breadboard to connect the display to the backpack. However I would not have soldered the backpack in that orientation because the screen would then be difficult to use. Hence my question to the OP.

Not all driver chips on the i2c backpacks are connected to the display in the same way as expected by LiquidCrystal_I2C.h
The best available library for the i2c lcd displays is called hd44780.h. written by Bill Perry. It is available through the library manager.

I would suggest that you convert to it. It is plug and play for a variety of configurations of the i2c backpack modules. It will detect both the i2c address and the configuration of the driver.

As part of the library there is a comprehensive diagnostic sketch which will test some internal details of the display. It's called I2CexpDiag

In the in the ide you can navigate to the library example

File>Examples>hd44780>ioclass>hd44780_I2Cexp>I2CexpDiag

a)
start with the hello world example which comes with the library - not with any self written sketch or other example you found in the internet.
It's very likely you need a lcd.init(); and not the lcd.begin - but that's just guessing. Use the Sketch from the library and set the I2C Address according to the I2C Scanner result.

b)
The backpack MUST be soldered to the LCD. It is not sufficient to just "plug" the backpack into the LCD. When you have soldered the backpack to the LCD - show us a picture of the soldering.