How to connect I2C to LCD1602 I2C Module?

I have connected A4 to SDA and A5 to SCL. I am powering the module via the VUSB 5V pin. I ran the sketch Wire Scan and it gave me the I2C Slave address of the LCD. I then tried to run Wire Master and nothing comes on the Display; but it is powered up. I can see it lit up.

Any idea what I am doing wrong?

I tried this module on PI Pico and it worked great.

Thanks,

Hello @dhewitt, and welcome back to the forums! To better understand the issue, I have a few questions for you:

  • Can you post your sketch?
  • What core and version are you using?
  • What is the setting of the 'Pin Numbering' option in the Tools menu?

Thank you!

Which Arduino Module (UNO/NANO) you are using?

Arduino NANO ESP32

Unfortunately, I don't own Nano ESP32 Board, and hence I have no experinece.

Thank you for getting back to me. I am using the built in sketch for Arduino NANO ESP32 under "wire". My board is the Arduino NANO ESP32. The 'Pin Numbering' option is: By Arduino pin (default).

1 Like

The Master and Slave mode is a special feature. You don't need that.

The I2C LCD module needs a specific sequence of commands to show something on the display, therefor you need a library for the display.

For example the "hd44780" library, that is this one: https://github.com/duinoWitchery/hd44780
But don't download it, it is in the "Library Manager" of the Arduino IDE.
Or the old "Liquidcrystal I2C" library.

The generic LCD module needs 5V to operate. Assuming a ESP processor you need to pull up the SCL and SDA lines to 3V3 with resistors in the 3K range. It should work this way without a level converter. Beyond that we need an annotated schematic showing how you wired it and also a list of the modules you used including the Arduino module. Your connections are not valid on all Arduinos.

1 Like

I am using the LCD1602 I2C module in the following way:
The board used: Arduino Nano ESP 32
PIN Numbering: Works with both: By Arduino pin as well as By GPIO number and no change of the code due to PIN Numbering needed
Wiring:

  • Arduino Nano ESP32 board powered with USB-C cable
  • External 3.3 V power supply also used
  • GND of Arduino Nano ESP32 connected with GND of external 3.3 V supply
  • GND connected with GND of LCD-I2C
  • 3.3 V of external power supply connected with VCC of LCD-I2C (communication line as well as display work also with 3.3 V)
  • SDA pin of Arduino Nano ESP32 (labeled as A4 on the board) connected with SDA of LCD-I2C
  • SCL pin of Arduino Nano ESP32 (labeled as A5 on the board) connected with SCL of LCD-I2C
    Library used: LCD-I2C.h by Frank Hätele
    Note: The brightness of the LCD must be adjusted to see the text
    Code: see "Examples from custom libraries" after you install the library

I prefer not to mix 3.3 V I2C voltage of Arduino Nano ESP32 board with 5V VUSB Voltage. Use only 3.3 V for both: I2C communication as well as powering the LCD. For powering of LCD use external 3.3 V supply.