new batch of 1602 i2c lcd's not working / found i2c address

normally I have no problem using 1602 i2c LCDs. I just received a new order and cannot get them to display anyting or even initialize. I research online and found that some displays happened to use different i2c addresses. I ran the i2c address Script and the new displays are showing up on address 63 in the serial monitor.

I think I correctly changed my i2c address in my sketch but still no change. I believe I changed the correct line in my sketch " LiquidCrystal_I2C lcd(0x27, 16, 2); “ I changed 0x27 to 0x63... is that the correct line?

I've never had this issue before with any brand of screen I've purchased. I'm using an Arduino Nano. when I run the i2c address code the only address that it finds is address 63. the new screens, the backlight lights immediately since I have the jumper enabled on the back of the screen but the screen does not change at all otherwise. I might other LCD screens a couple seconds after the Arduino is powered the first line on the screen looked sort of turn yellowish a little bit like it's initialising but these do nothing. in the description on the Amazon page for these new LCD screens there's a link to a how to and in those instructions it shows address 27 same as all my other screens but address 27 does not work and neither does 63.

any ideas? I'm about Fed Up. also how would I go about writing everything to serial monitor instead of the LCD?

thx u...

Experienced the same thing here.

Some 1602 were 0x27 and some were 0x3F.

//********************************************************************************
#include <Wire.h>

//Use I2C library:     https://github.com/duinoWitchery/hd44780
//LCD Reference:       https://www.arduino.cc/en/Reference/LiquidCrystal
#include <hd44780.h>   //main hd44780 header

//NOTE:
//hd44780_I2Cexp control LCD using I2C I/O exapander backpack (PCF8574 or MCP23008)
//hd44780_I2Clcd control LCD with native I2C interface (PCF2116, PCF2119x, etc...)

#include <hd44780ioClass/hd44780_I2Cexp.h> //I2C expander i/o class header

//If you do not know what your I2C address is, first run the 'I2C_Scanner' sketch
hd44780_I2Cexp lcd(0x3F);
//hd44780_I2Cexp lcd(0x27);

//********************************************************************************

If you have already tried to turn the contrast pot and it still doesn't work,
keep in mind that there is no standard or fixed way to wire the pins on the LCD to the PCF8574 i/o pins.
Not all manufacturers wire them the same way.
The library you are using is hard coded to one particular way so it will not work all the varieties out there.
It is possible that the new batch of devices you got are not wired the same way as the ones you purchased earlier.

My suggestion is to use the hd44780 library, which can work with any of them.
It can also auto locate the i2c address and auto detect the pin wiring/mapping between the LCD and the PCF8574.
It is available in the IDE library manager.
The i/o class you will use for that type of device is hd44780_I2Cexp
Have a read of the included documentation which can be found in the Documentation sketch.
You can also see the documentation on the main github page: GitHub - duinoWitchery/hd44780: Extensible hd44780 LCD library
Or the hd44780 wiki: Home · duinoWitchery/hd44780 Wiki · GitHub

As recommended in the documentation, the first thing you should do after installing the library is run the included diagnostic sketch, I2CexpDiag. It will test the i2c signals, verify that the library can communicate with the LCD and test the internal memory of the LCD.

--- bill

larryd:
Experienced the same thing here.

Some 1602 were 0x27 and some were 0x3F.

//If you do not know what your I2C address is, first run the 'I2C_Scanner' sketch

hd44780_I2Cexp lcd(0x3F);
//hd44780_I2Cexp lcd(0x27);

The hd44780 library can auto locate the i2c address for you.
While you can specify the i2c address as shown above, if you have only a single device, there is no need.

Just declare you lcd object with no address, like this:

hd44780_I2Cexp lcd; // auto locate i2c address and auto detect the pin mapping

And it will work regardless of the i2c address.
You can even swap the device for one with a different i2c address and it will work without having to recompile the code and upload it.
This is one of many advantages of using the hd44780 library. It can offer a "plug and play" capability with LCD devices that use a PCF8574 backpack.

--- bill