DIYables PCF8574 I2C Adapter Module for LCD1602 and LCD2004, IIC Interface Expansion Board
Click to zoom





Quick Overview
The DIYables PCF8574 I2C Adapter Module is a compact interface expansion board designed for LCD1602 and LCD2004 character displays. Built with the PCF8574 I2C IO expansion chip, this adapter dramatically simplifies LCD wiring by reducing required IO pins from 7 down to just 2 (SDA and SCL). Operating from 2.5V to 6V, it enables stable 8-bit IO expansion through I2C communication for Arduino, ESP32, ESP8266, and Raspberry Pi projects, making it perfect for data display applications with minimal pin usage.
This 5-pack module features an adjustable blue potentiometer for LCD contrast control and a jumper for easy LCD backlight power management. The default I2C address is 0x27, which can be customized using the A0, A1, and A2 solder pads for address configuration. Up to eight modules can be cascaded on a single I2C bus, allowing control of multiple LCD displays simultaneously. The module is fully compatible with standard LCD1602 (16x2) and LCD2004 (20x4) character displays.
Perfect for user interface projects, data logging displays, sensor readout systems, status monitors, menu displays, and embedded applications requiring text output. The I2C interface saves precious GPIO pins while providing the same functionality as parallel LCD connections. Ideal for Arduino, ESP32, ESP8266, Raspberry Pi, and other microcontroller platforms with I2C support and standard LiquidCrystal I2C libraries.
Key Features
- For LCD1602 and LCD2004 Displays — PCF8574 I2C adapter module for LCD character screens reduces required IO pins from 7 to 2 for simple wiring
- PCF8574 I2C IO Expansion Chip — Built-in PCF8574 enables stable 8-bit IO expansion through I2C for Arduino, ESP32 and Raspberry Pi
- Adjustable Contrast and Backlight Control — Blue potentiometer adjusts LCD contrast and jumper allows easy LCD backlight power control
- Address Configurable and Cascade Support — Default address 0x27 can be changed using A0, A1, A2 pads and up to eight modules can be cascaded on one I2C bus
- Wide Voltage LCD Compatibility — Operates from 2.5V to 6V supply voltage and fully compatible with standard LCD1602 and LCD2004 character displays
- Minimal Pin Usage — Uses only 2 pins (SDA, SCL) instead of 7 for parallel LCD connection, freeing up GPIO for other uses
- Easy Installation — Direct solder or plug connection to LCD display pins for quick setup
- Standard I2C Protocol — Compatible with all standard I2C libraries including LiquidCrystal_I2C for Arduino
- Multiple Display Support — Cascade up to 8 adapters on one I2C bus with different addresses for multiple LCD control
- Backlight Management — Jumper control enables easy LCD backlight on/off switching
- Contrast Adjustment — Onboard potentiometer provides precise contrast tuning for optimal LCD readability
- Stable Communication — Reliable I2C communication with noise immunity and error checking
- Wide Compatibility — Works with Arduino, ESP32, ESP8266, Raspberry Pi, and other microcontrollers with I2C support
- Tutorial Support — Comprehensive tutorials for Arduino, ESP32, ESP8266, and Raspberry Pi with I2C LCD
- Versatile Applications — Perfect for user interfaces, sensor displays, data logging, status monitors, menu systems, and text output projects
- ...NOTE
- Important: Solder or connect this adapter to the LCD display pins before use. Default I2C address is 0x27. If you need to change the address, solder the A0, A1, A2 pads according to desired address configuration. Use LiquidCrystal_I2C library for Arduino IDE.
- ...NOTE
SPECIFICATION
| Specification | Value |
|---|---|
| Product Type | I2C Adapter Module for LCD Displays |
| Model/Chip | PCF8574 I2C IO Expander |
| Function | LCD parallel to I2C converter |
| Supported Displays | LCD1602 (16x2) and LCD2004 (20x4) character displays |
| Operating Voltage | 2.5 V to 6 V DC |
| Logic Level | 3.3V and 5V compatible |
| Interface | I2C (IIC) |
| I2C Pins Required | 2 (SDA, SCL) |
| Parallel Pins Saved | 7 (reduces from 7 to 2) |
| Default I2C Address | 0x27 |
| Address Configuration | Configurable via A0, A1, A2 solder pads |
| Address Range | 0x20 to 0x27 (8 possible addresses) |
| Cascade Support | Up to 8 modules on one I2C bus |
| IO Expansion | 8-bit IO expansion through I2C |
| Contrast Adjustment | Onboard blue potentiometer |
| Backlight Control | Jumper for backlight power on/off |
| Communication Speed | Standard I2C (100 kHz) and Fast I2C (400 kHz) |
| Dimensions | Approximately 42mm x 19mm (fits behind LCD) |
| Package Quantity | 5 pieces |
| Compatibility | Arduino, ESP32, ESP8266, Raspberry Pi, Arduino Nano ESP32, Arduino Uno R4, and other microcontrollers with I2C support |
| Applications | LCD displays, user interfaces, sensor readouts, data logging displays, status monitors, menu systems, text output projects |
PACKAGE
A package includes:
| Qty | Items |
|---|---|
| 5 | PCF8574 I2C Adapter Modules for LCD1602/LCD2004 |
Tutorials
COMPATIBLE HARDWARE
- Arduino boards (UNO, Mega, Nano, etc.) — I2C connection via SDA/SCL pins (A4/A5 on UNO), 5V compatible
- Arduino Uno R4 WiFi/Minima — Direct I2C connection with 5V or 3.3V logic
- ESP32 development boards — I2C on GPIO21 (SDA) and GPIO22 (SCL) typical, 3.3V logic
- ESP8266 boards (NodeMCU, Wemos D1, etc.) — I2C on D1 (SCL) and D2 (SDA) typical, 3.3V logic
- Raspberry Pi (all models) — I2C via GPIO2 (SDA) and GPIO3 (SCL), 3.3V logic
- Raspberry Pi Pico — I2C on configurable GPIO pins with 3.3V logic
- Arduino Nano ESP32 — I2C connection with 3.3V logic compatibility
- Any microcontroller with I2C interface — 2.5V to 6V compatible with SDA/SCL pins
- LCD1602 displays — 16x2 character LCD with parallel interface (HD44780 compatible)
- LCD2004 displays — 20x4 character LCD with parallel interface (HD44780 compatible)
- Temperature monitoring projects — Display sensor readings on LCD with minimal wiring
- Data logging systems — Show real-time data and status information
- User interface projects — Create menus and interactive text displays with I2C simplicity









