oled_i2c.py

Fiche carte — Raspberry Pi Model B Revision 2 (2012) · Fichier : oled_i2c.py · Langage : Python · Usage : Afficher une information locale (capteurs, état) sur un petit écran OLED I2C 0,96"

L'écran OLED SSD1306 128x64 se branche sur le bus I2C (GPIO2/GPIO3, broches 3 et 5) et s'initialise par une séquence de commandes. Le script active le bus, efface le framebuffer puis laisse la main. Sur model-b-rev2, activer I2C via raspi-config ou config.txt avant de lancer.

Matériel requis

Une Raspberry Pi Model B révision 2 (BCM2835, connecteur GPIO 26 broches, ports Ethernet/USB déplacés en bord de carte). Un module OLED SSD1306 I2C (4 broches), fils dupont.

Câblage

VCC sur 3,3 V, GND sur GND, SDA sur GPIO2 (broche 3), SCL sur GPIO3 (broche 5). Le connecteur P1 de 26 broches groupe ces broches en bout de rangée.

Fonctionnement

smbus écrit l'octet de contrôle 0x00 (commande) ou 0x40 (données) suivi des octets vers l'adresse 0x3C ; la séquence configure charge de pompe, contraste et scan.

Exécution

Copiez le script sur la carte (scp ou clé USB), puis lancez-le avec python3 (ou bash). Sous Raspbian, installez gpiozero avec sudo apt install python3-gpiozero. Le brochage complet du connecteur 26 broches figure sur le schéma officiel Raspberry Pi.

Variantes

Bibliothèque luma.oled pour texte et polices ; deux écrans via un multiplexeur TCA9548A. Révision 2 : alimentation 5 V correcte requise ; les brown-outs faussent les mesures capteur.

oled_i2c.py

# oled_i2c.py — affiche texte et courbe sur OLED SSD1306 en I2C.
# Deps: sudo apt install python3-smbus i2c-tools (activer i2c_arm)
import time
import smbus

ADDR = 0x3C
bus = smbus.SMBus(1)

def cmd(c):
    bus.write_byte_data(ADDR, 0x00, c)

def data(buf):
    bus.write_i2c_block_data(ADDR, 0x40, buf)

for c in [0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14,
          0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xFF, 0xD9, 0xF1, 0xDB, 0x40,
          0xA4, 0xA6, 0xAF]:
    cmd(c)

data([0xF0] * 1024)  # efface le framebuffer 128x64
print("OLED initialise, i2cdetect -y 1 pour verifier")

← Retour à la fiche