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 MPU6050: Get I2C motion readings | ShillehTek
Connect an Arduino Uno to an MPU6050 over I2C and stream accelerometer and gyroscope readings in the Arduino IDE usin...
Arduino Uno HCSR04 RGB: Distance readings with LEDs | ShillehTek
Build an Arduino UNO HCSR04 RGB ultrasonic project that prints distance in cm and drives 6 built-in LEDs for clear fe...
Raspberry Pi Pico HC-SR04: Measure Distance in MicroPython | ShillehTek
Build a Raspberry Pi Pico HC-SR04 distance sensor project in MicroPython to get reliable ultrasonic readings fast for...
Pico W HC-SR04 RGB: Distance Colors in MicroPython | ShillehTek
Build a Pico W + HC-SR04 RGB (RUS-04) distance sensor in MicroPython, using WS2812 control to change LED colors by di...
Raspberry Pi Pico W MPU6050: Improve IMU accuracy | ShillehTek
Calibrate an MPU6050 IMU on a Raspberry Pi Pico W with MicroPython to compute offsets and improve gyro and accelerome...
Raspberry Pi Pico BME280: Read sensor data in MicroPython | ShillehTek
Build a Raspberry Pi Pico + BME280 MicroPython sensor reader to measure temperature, humidity, and pressure quickly f...
Raspberry Pi Pico MPU6050: Read motion data | ShillehTek
Build a Raspberry Pi Pico (or Pico W) + MPU6050 setup to read acceleration, gyro, and temperature in Thonny for fast ...