I am working with an I2C lcd display with an arduino uno board I have connected the gnd pin to gnd of arduino uno and the vcc pin to 5V of arduino uno and the display is not even lighting up there is only a red led lighting up on the back so I tryed connecting the rest of the pins and run a code to detect the i2c display and it worked successfully I got the adress but the lcd did not light up. The lcd display is a new one I bought yesterday here are the pictures:


The script I tryed to display text was this one with the NewLiquidCristal library:

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

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the 
LCD I2C address, if it's not working try 0x27.

void setup(){
lcd.begin(16,2);   // iInit the LCD for 16 chars 2 lines
lcd.backlight();   // Turn on the backligt (try lcd.noBaklight() to turn it 
lcd.setCursor(0,0); //First line
lcd.print("I2C LCD Tutorial");
lcd.setCursor(0,1); //Second line

Here is the model nmber of the I2C: PCF8574A And the lcd is a QAPASS Ui also I don't have a spec sheet and the LCD seems to show empty chars when rotating the pot.

  • There are tons of different variations of LCD modules. It does look like it's an LCD with an I2C "backpack" on it. Post the model number, a link to the spec sheet if you have it, as well as a link to the specific library you're using and the code you are using to initialize it and send data to it. – Duncan C Jul 11 '19 at 21:59
  • From the pictures it looks like the I2C "backpack" has both a backlight adjustment pot (potentiometer) and a jumper on it. Sometimes removing/moving the jumper lets you turn the backlight off, but it appears to have the jumper installed. If it came with instructions or a link to the data sheet, see what it says about the adjustment pot. You might try turning the adjustment pot and see if that causes the backlight to turn on. – Duncan C Jul 11 '19 at 22:02
  • did you add lcd.begin(); and lcd.backlight(); to void setup? – ElectronSurf Jul 12 '19 at 5:31
  • I have added all the missing information sorry if late – CHAMCHOUN Jul 12 '19 at 9:50
  • you have an I2C LCD right? use this: LiquidCrystal_I2C lcd(0x27, 16, 2); instead of LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); . – ElectronSurf Jul 12 '19 at 10:22

Try this:

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

// LiquidCrystal_I2C lcd(0x27, 16, 2);
// OR
LiquidCrystal_I2C lcd(0x3F, 16, 2);

void setup(){
lcd.print("TA DAA...!");
void loop{
// do nothing here

If that didn't work probably your LCD have a different address than 0x27 which in that case you should run a I2C scanner to show you the addresses of I2Cs that connected to your Arduino:

#include <Wire.h>
// I2C scanner

void setup()

  Serial.println("\nI2C Scanner");

void loop()
  byte error, address;
  int nDevices;


  nDevices = 0;
  for(address = 1; address < 127; address++ ) 
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    error = Wire.endTransmission();

    if (error == 0)
      Serial.print("I2C device found at address 0x");
      if (address<16) 
      Serial.println("  !");

    else if (error==4) 
      Serial.print("Unknow error at address 0x");
      if (address<16) 
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");

  delay(5000);           // wait 5 seconds for next scan

Check the jumper behind the I2C module (plug it out and in again).

Check the voltage of LED using a multimeter if there's no voltage there, maybe it's just a "bad LCD" try replacing it.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.