oled-i2c.ino

Arduino GIGA R1 · Fichier : oled-i2c.ino · Langage : Arduino · Usage : Afficher l'état de la carte sur un OLED I2C

Le bus I2C de la GIGA (broches D14/D15 et connecteur dédié) accepte les modules 3,3 V classiques : l'OLED affiche uptime et mémoire, le tableau de bord minimal de tout projet H7.

Matériel requis

Une carte Arduino Giga R1 (STM32H747 double cœur M7 480 MHz + M4, 76 E/S, 2 DAC, FDCAN) alimentée par USB-C ou 5-24 V. 1 OLED SSD1306 I2C 128×64.

Branchement

SDA sur D15, SCL sur D14 (ou le connecteur I2C du bord de carte), VCC 3,3 V, GND.

Fonctionnement

Wire (I2C1 du Mbed) + Adafruit_SSD1306 : framebuffer RAM recopié sur display(). begin() renvoie false si personne ne répond à 0x3C — le dépannage est dans le moniteur. Dans l'Arduino IDE, installez la plateforme « Arduino Zephyr-based Boards » (ou Mbed), choisissez « Arduino Giga R1 », puis Téléverser. Logique 3,3 V.

Pour aller plus loin

Ajoutez les entrées réelles (ADC, boutons) sur l'écran, ou un menu de calibration piloté par CAN.

oled-i2c.ino

// OLED SSD1306 sur le connecteur Qwiic/I2C (Wire) de la GIGA.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 oled(128, 64, &Wire, -1);

void setup() {
  Serial.begin(115200);
  Wire.begin();
  if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println("OLED 0x3C absent"); for (;;);
  }
  oled.clearDisplay();
}

void loop() {
  oled.clearDisplay();
  oled.setTextSize(1);
  oled.setTextColor(SSD1306_WHITE);
  oled.setCursor(0, 0);
  oled.printf("GIGA R1\n%lu ms\n", millis());
  oled.printf("libre : %u Ko\n", (unsigned)(ESP.getFreeHeap() / 1024));
  oled.display();
  delay(200);
}

← Retour à la fiche