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.98Arduino 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.
Arduino Uno SSD1306 OLED: Build a Pong Game
Build Arduino Uno Pong on a 0.96 in SSD1306 I2C OLED with two potentiometer paddles and a buzzer, and learn the game...
ESP32 ESP-NOW: Send DHT11 Data to OLED
Build an ESP32 ESP-NOW sender and receiver to broadcast DHT11 temperature and humidity to an SSD1306 OLED with no router, using parts...
ESP32 OLED DHT: Build an Internet-Synced Clock
Build an ESP32 internet clock with an SSD1306 OLED and DHT temperature/humidity sensor for always-correct NTP time and a useful desk display...
Arduino Nano 4x4 Keypad LCD: Build a Calculator
Build an Arduino Nano calculator with a 4x4 keypad and a 16x2 LCD, showing expressions and results with safe input handling, using...
Arduino Nano LCD1602: Build a millis() Stopwatch
Build an Arduino Nano LCD1602 stopwatch with Start/Stop, Lap, and Reset using millis() for accurate timing and responsive button control from ShillehTek.
Arduino Nano SSD1306 OLED: Decode Morse Code Live
Build an Arduino Nano Morse code decoder with an SSD1306 I2C OLED and buzzer sidetone for live feedback while practicing timing, using...
Arduino Nano IR Sensor: Measure RPM on OLED Display
Build an Arduino Nano IR sensor tachometer that counts interrupt pulses and shows accurate RPM on an SSD1306 OLED, using parts from...