But that fritzing sketch does not match how you said things were wired.
i.e. it shows the backlight wired up.
If you disconnect pins 15 and 16 from the LCD and the backlight is still on,
then your LCD uses a pinout that is different from the way you have it wired.
How are you connecting the wires to the actual module?
Have you soldered the wires or header to the LCD?
I would be better for us to see some actual pictures of your wiring.
Make sure that they are clear enough for us to see the wiring and the soldering
on the LCD.
Here is what I'd recommend.
- Find a datasheet for your LCD and verify the pinout
- use a proper contrast circuit (a single resistor to ground is not a proper circuit - use a pot)
- Use this library:
(Make sure to install it properly, which means removing any other LiquidCrystal_I2C library)
I would install it in you local sketchbook/libraries directory and name it "LiquidCrystal"
that way it will override the LiquidCrystal library that comes with the IDE.
- use the full constructor to specify how you have the PCF8574 wired up.
LiquidCrystal_I2C(i2cAddr, En, Rw, Rs, d4, d5, d6, d7, backlighPin, pol);
If you have it wired up as shown in the fritzing diagram, then your constructor should be:
LiquidCrystal_I2C(i2cAddr, 4, 5, 6, 0, 1, 2, 3, 7, POSITIVE);
Some of the examples on fm's site and included with the library,
are out of date or are for fm's i2c backpack so ignore any code
that attempts to use/configure a backlight pin. The constructor specifies all that is needed.
You will then initialized and use the LCD the same way as the standard LiquidCrystal library
but you will have backlight control using backlight() and noBacklight().