Half of all “my sensor doesn’t work” problems are I2C problems. These guides cover bus wiring and pull-ups, address scanning and conflicts, 3.3V↔5V level shifting, and running multiple identical devices with a multiplexer — with working examples on Arduino, ESP32, and Pi. The exact converters and expanders used in the guides are below.
Shop the parts used in these tutorials
Pre-Soldered I2C Logic Level Converter 3.3V-5V Bi-Directional for Arduino, Raspberry Pi, ESP32 & Pico
$6.25
TCA9548A Pre-Soldered 1-to-8 I2C 8-Channel Multiplexer Module
$9.99
ADS1115 Pre-Soldered ADC Analog to Digital Converter Module for Arduino & Raspberry Pi
$9.75
BH1750 Pre-Soldered Digital Light Sensor for Arduino & Raspberry Pi
$6.98ESP32 AMG8833: Interpolated Thermal Heat Map on TFT
Build an ESP32 + AMG8833 thermal viewer that renders a smooth interpolated heat map on an ILI9341 TFT, plus a quick OLED...
RP2040-Zero MPU6050: Build a USB HID Air Mouse
Build an RP2040-Zero USB HID mouse with five buttons, then add an MPU6050 for tilt-based cursor control for a simple air mouse...
Arduino Uno DHT11: SD Data Logger with Timestamps
Build an Arduino Uno DHT11 data logger that writes timestamped temperature and humidity readings to a micro SD card using a DS3231...
Arduino Nano OLED: Triggered Waveforms to ~30 kHz
Build an Arduino Nano plus SSD1306 OLED mini oscilloscope with triggered trace, Vpp and frequency readout up to about 30 kHz using...
Arduino Nano LM339: Measure Inductance on OLED
Build an Arduino Nano LC ring meter using an LM339 and SSD1306 OLED to measure unknown inductors from about 5 uH to...
Arduino Nano MPU6050: Build a Self-Balancing Robot
Build an Arduino Nano self-balancing robot using the MPU6050 and L298N, with a complementary filter and PID loop for stable two-wheel balancing...
Arduino Nano DS3231: Build a Binary LED Clock
Build an Arduino Nano DS3231 binary LED clock with 12 LEDs for hours, minutes, and a seconds heartbeat, plus battery-backed timekeeping from...
Arduino Uno 16x2 LCD: Custom Icons and Animations
Build an Arduino Uno 16x2 I2C LCD demo with custom characters, a smooth 80-step progress bar, and a walking animation using HD44780...
Arduino Nano OLED: LED Pendulum Metronome BPM Display
Build an Arduino Nano LED pendulum metronome with an SSD1306 I2C OLED BPM display, a potentiometer tempo knob, and a buzzer accent...
ESP32 OLED (SSD1306): Live Crypto Price Ticker
Build an ESP32 SSD1306 OLED crypto price ticker that pulls live CoinGecko JSON over HTTPS, cycles multiple coins, and auto-refreshes every minute...
Arduino Uno + Nano I2C: Send DHT11 Data to OLED
Build an Arduino Uno and Nano I2C link that requests DHT11 temperature and humidity and displays it on an SSD1306 OLED, using...
Arduino Nano MPU6050: Tilt Game and OLED Level
Build an Arduino Nano MPU6050 tilt game and OLED digital level with a complementary filter for stable pitch/roll, using parts from ShillehTek.