🪔 Diwali Break: Orders placed now will ship from 25th November 2026. Place your order today — we'll get it to you right after we're back!
Project Hub /Basic Analog & Power Electronics/Discrete & Component Electronics/ATmega328 Analog I/O Port Expander Using I2C Bus
ATmega328 Analog I/O Port Expander Using I2C Bus
Intermediate
ARDUINO
₹500 – ₹1,500
3 – 6 Hours
Partial Kit

ATmega328 Analog I/O Port Expander Using I2C Bus

This project explains how to interface multiple PCF8591 ADC/DAC converters with an ATmega328 microcontroller using the I2C bus to expand the available analog inputs and outputs, displaying the results on an LCD screen.

Originally published on ElectronicsForU
View original tutorial

Parts You'll Need

This project is sourced from another site, not written by us — this list is our best match of their components against what we stock, not a verified bill of materials. Always check the original blog (linked above) for the actual parts list before buying.

This list includes a generic resistor set as a placeholder — it is not matched to the exact value or part number this circuit needs. The correct one is specified on the original source page linked above; check it before buying.

We don't carry yet: LCD (generic / unspecified)
ATmega / AVR chip
ADC / DAC (ADS1115 / MCP3008 / MCP4725)
Custom PCB / PCB Fab

Browse all components

How It Works

Why Build This

Overcome microcontroller pin limitations by multiplexing multiple analog sensors onto a single two-wire I2C interface for scalable industrial monitoring panels.
Gain hands-on engineering experience designing multi-device bus architectures using the PCF8591 ADC/DAC IC alongside an ATmega328.
Build a practical multi-channel data acquisition system capable of processing and visualizing complex analog inputs on a local LCD screen.

Real-World Application

Sensor data acquisition systems, industrial monitoring panels requiring numerous analog sensors, and multi-channel data loggers.

Skills You'll Learn

I2C bus communication protocol
multi-device address configuration
analog-to-digital and digital-to-analog conversion
microcontroller pin expansion techniques
LCD screen interfacing
sensor data acquisition

Safety Precautions

Ensure correct 5V power supply polarity and connections to avoid damaging the ICs.

Technology Tags

ATMEGA328
PCF8591
I2C
ADC
DAC
LCD
ARDUINO IDE
PCB DESIGN

Frequently Asked Questions

Each PCF8591 chip features configurable hardware address pins (A0, A1, A2). By wiring these pins to unique combinations of high and low logic states, you give each IC a distinct address on the I2C bus.
The 10k ohm resistors act as pull-down resistors (or pull-ups depending on specific bus line implementation) to ensure stable logic levels and reliable signal transmission on the I2C communication lines.
The components specified are designed to operate on a 5V DC power supply; using a 3.3V supply may cause logic level mismatches or improper operation of the ATmega328 and the PCF8591 modules.

Gallery

This page is part of Kitkraft's Project Hub — a curated collection of electronics & robotics projects gathered from the maker community to help students and hobbyists discover and learn to build. Kitkraft does not claim authorship of the original project, and makes no representation as to the accuracy, completeness or safety of third-party source material. The summary and "How It Works" explanation above are AI-generated, rewritten with reference to the original tutorial — not a reproduction of it. Full credit and a direct link to the original source are provided above. If you're the original creator and have a concern about how your work is represented here, please contact us and we'll address it promptly.

Kitkraft Project Hub — curated from the maker community, credited at the source.
PRJ-00277