I found this data on the connections of my display
?PIN CONNECTIONS
Pin Symbol Function
1 VSS Ground for Logic(0V)
2 VDD Power supply for Logic(+5V)
3 V0 Power supply for LCD Driver
4 RS H: Data?L: Instruction Code
5 R/W H: Read; L: Write
6 E Enable signal
7~14 DB0~DB7 Data Bus Line
15 A Backlight Power(+5V)
16 K Backlight Power(0V)
and tried to write a 'constructor' as follows (based on the library code I have copied at the bottom of this post
LiquidCrystal_I2C lcd ( 0x3F, 6, 5,4 ,
7, 8, 9, 10,
15,POSITIVE);
All I am getting at the moment is the backlight turns off and nothing is displayed (although there seems to be 2 lines of faint characters (this is a 4 line display)
One thing I thought was odd is that it only has 4 data pins in the constructor, but the table above talks about 8. I did try pins 11 to 14 instead of 7 to 10, but it doesn't seem to make any difference.
/*!
@method
@abstract Class constructor.
@discussion Initializes class variables and defines the I2C address of the
LCD. The constructor does not initialize the LCD.
@param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO,
the address can be configured using the on board jumpers.
@param En[in] LCD En (Enable) pin connected to the IO extender module
@param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module
@param Rs[in] LCD Rs (Reset) pin connected to the IO extender module
@param d4[in] LCD data 0 pin map on IO extender module
@param d5[in] LCD data 1 pin map on IO extender module
@param d6[in] LCD data 2 pin map on IO extender module
@param d7[in] LCD data 3 pin map on IO extender module
*/
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
// Constructor with backlight control
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
uint8_t backlighPin, t_backlighPol pol);