LiquidCrystal_I2C library does not work for some modules. Some changes required.

Code was edited for LiquidCrystal_I2C module bought from Thailand. Now its working.

I changed these code in LiquidCrystal_I2C.cpp file

	// we start in 8bit mode, try to set 4 bit mode
	write4bits(0x03<<4);
	delayMicroseconds(4500); // wait min 4.1ms
	
	// second try
	write4bits(0x03<<4);
	delayMicroseconds(4500); // wait min 4.1ms
	
	// third go!
	write4bits(0x03<<4); 
	delayMicroseconds(150);
	
	// finally, set to 4-bit interface
	write4bits(0x02<<4); 


	


/************ low level data pushing commands **********/

// write either command or data
void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) {
	uint8_t highnib=value& 0xF0;
	uint8_t lownib=value << 4;
	write4bits((highnib)|mode);
	write4bits((lownib)|mode);
}

Had to change these parameters in LiquidCrystal_I2C.h file.

// flags for backlight control
#define LCD_BACKLIGHT 0x08
#define LCD_NOBACKLIGHT 0x00

#define En B00000100  // Enable bit
#define Rw B00000010  // Read/Write bit
#define Rs B00000001  // Register select bit

LiquidCrystal_I2C.cpp (8.11 KB)

LiquidCrystal_I2C.h (3.28 KB)

Now let's see - have you actually replaced the original LiquidCrystal library in the IDE with the more correct fmalpartida one?