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 Nano SH1106 OLED: I2C Text Pages Demo | ShillehTek
Build an Arduino Nano dashboard using a 1.3 inch SH1106 I2C OLED and U8glib to cycle clean text pages, with simple fo...
Arduino UNO HMC5883L: Show X/Y/Z on 16x2 LCD | ShillehTek
Build an Arduino UNO HMC5883L compass readout that streams live X/Y/Z magnetic field values to Serial and a 16x2 LCD ...
Arduino Nano APDS-9960: Gesture LCD Menu Control | ShillehTek
Build an Arduino Nano APDS-9960 gesture-controlled 16x2 I2C LCD menu to navigate options and toggle loads with simple...
Arduino LCD2004 I2C: Hello World on 20x4 Display | ShillehTek
Build an Arduino LCD2004 20x4 I2C display that prints Hello World using only four wires, ideal for menus and sensor r...
Arduino UNO SSD1306 OLED: Wire and Display Text | ShillehTek
Wire a 0.91 inch SSD1306 128x32 I2C OLED to an Arduino UNO and display crisp text using U8g2, with a simple four-wire...
ESP32 DHT22 BMP180: Live Blynk Weather Dashboard | ShillehTek
Build an ESP32 weather station with DHT22, BMP180, and SI1145 sensors that streams six readings to Blynk with live we...
Arduino MAX30102 vs MAX30100: Choose the best sensor | ShillehTek
Compare MAX30100 vs MAX30102 pulse oximeter modules for Arduino wearables, focusing on ADC, FIFO, and libraries so yo...
Arduino MAX30102: Heart Rate and SpO2 on OLED | ShillehTek
Build an Arduino Nano MAX30102 pulse oximeter that shows live BPM and optional SpO2 on an SSD1306 OLED, using the Spa...
Arduino Nano DS3231 + TM1637: Drift-Free Alarm Clock | ShillehTek
Build an Arduino Nano clock with a DS3231 RTC and TM1637 display for a drift-free desktop alarm clock with temperatur...