🛠 Interroger un capteur I2C sur les broches 3/5 du connecteur
Objetivos
Conectar un sensor o periférico I2C (OLED SSD1306, BME280, etc.) a la Orange Pi 3B y detectarlo con i2c-tools. Atención: en el conector de 40 pines, el único I2C sin conflictos es I2C2_M1, pines 3 (SDA) y 5 (SCL); solo está activado en el device tree mainline desde el commit del 2025-11-21 — se requiere un kernel reciente, de lo contrario usar la imagen del fabricante o un overlay personalizado (kernels 6.11 a 6.17).
Material
- Orange Pi 3B con Armbian reciente (o imagen de Orange Pi) — verificar
uname -ry la presencia de&i2c2activado - Sensor I2C de 3,3 V (ej. SSD1306 en 0x3c, BME280 en 0x76/0x77)
- 4 cables Dupont: 3,3 V, GND, pin 3 (SDA), pin 5 (SCL)
Código completo
sudo apt install i2c-tools
sudo modprobe i2c-dev
i2cdetect -l # lister les contrôleurs
# Trouver le bus du connecteur : le nom du device tree contient i2c2
for d in /sys/bus/i2c/devices/i2c-*; do echo "$d : $(cat $d/of_node/fullname 2>/dev/null)"; done
sudo i2cdetect -y N # N = numéro du bus i2c2 repéré ci-dessus
# Exemple de sortie attendue : un périphérique répond 3c (OLED SSD1306)
# Lecture rapide d'un registre :
sudo i2cget -y N 0x3c 0x00
Verificación esperada
i2cdetect -y N muestra una cuadrícula; la dirección del sensor aparece (3c, 76, 77…). No debe aparecer ningún UU si ningún controlador del kernel ya reclama el dispositivo.
Errores frecuentes
- Escanear el bus i2c-N incorrecto: el PMIC RK809-5 está en i2c0 en la dirección 0x20, no en el conector.
- Kernel 6.11–6.17 sin overlay: el controlador del conector no existe,
i2cdetect -lno muestra nada correspondiente — actualizar o escribir un overlay&i2c2 status="okay". - Alimentar el módulo con 5 V cuando los pines son de 3,3 V: riesgo para los módulos sin convertidor de nivel.
- Direcciones 0x00–0x06 mostradas como « UC »: son direcciones reservadas, no dispositivos.
- Dos módulos con la misma dirección: prever un multiplexor I2C (TCA9548A).
Otros tutoriales para esta placa
- Faire clignoter une LED via le GPIO avec libgpiod
- Lire un bouton poussoir et afficher l'état dans la console
- Premier script Python : bouton + LED avec python3-libgpiod
- Variation d'intensité d'une LED avec un signal PWM
- Configurer Ethernet gigabit et Wi-Fi puis se connecter en SSH
- Booter sur un SSD NVMe et récupérer une carte bloquée (MaskROM)
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash