Arduino UNO Q - OLED 128x32
Ce tutoriel vous montre comment utiliser un écran OLED SSD1306 128x32 avec Arduino UNO Q — du texte de base aux formes, images et contrôle à distance via Telegram.
- Comment connecter un OLED SSD1306 128x32 à Arduino UNO Q
- Comment afficher le texte "Hello World" en plusieurs tailles sur l'OLED
- Comment afficher du texte, des entiers, des flottants et des nombres hexadécimaux
- Comment dessiner des formes : pixels, lignes, rectangles, cercles et triangles
- Comment utiliser le défilement matériel (droite, gauche, diagonal)
- Comment afficher des images bitmap sur l'OLED
- Comment contrôler la luminosité et le contraste de l'afficheur
- Comment utiliser des polices externes personnalisées
- Comment contrôler l'OLED à distance depuis Linux via la programmation Bridge
- Comment contrôler l'OLED à distance depuis Telegram via la programmation Bridge

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos de l'Écran OLED 128x32
L'OLED 128x32 est une version plus fine du 128x64 — il a deux fois moins de pixels verticaux, ce qui le rend idéal pour les boîtiers compacts, les affichages de badges et les panneaux d'interface minimaux. Il utilise le même contrôleur SSD1306 et la même bibliothèque Adafruit.
Brochage de l'OLED
- GND — connecter à GND
- VCC — connecter à 3,3V ou 5V
- SCL — signal d'horloge I2C
- SDA — signal de données I2C

※ Note:
Référez-vous toujours aux étiquettes imprimées sur votre module OLED — l'ordre des broches peut différer selon les fabricants.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche OLED | Broche Arduino UNO Q |
|---|---|
| GND | GND |
| VCC | 3.3V |
| SCL | SCL |
| SDA | SDA |
※ Note:
La seule différence entre le 128x64 et le 128x32 dans le code est SCREEN_HEIGHT 32 au lieu de 64. La bibliothèque et le câblage sont identiques.
Code Arduino UNO Q — Hello World sur OLED SSD1306 128x32
L'Arduino UNO Q dispose de deux processeurs : le STM32 MCU (gère le contrôle matériel en temps réel) et le Qualcomm MPU (exécute Debian Linux). Dans cette section, seul le STM32 MCU est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.
Le sketch ci-dessous affiche du texte en deux tailles différentes sur l'OLED.
Étapes Rapides
- Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Câblez l'OLED : Connectez GND→GND, VCC→3,3V, SCL→SCL, SDA→SDA.
- Connectez : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
- Ouvrez Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
- Créez une nouvelle App : Cliquez sur le bouton Create New App.

- Donnez un nom à l'App, par exemple : DIYables_OLED_128x32
- Cliquez sur Create pour confirmer.
- Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle App.

- Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Search for Adafruit SSD1306 created by Adafruit and click the Install button.
- Téléversez : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.

Regardez l'OLED — il affiche "Hello, World!" sur la première ligne et "DIYables" en plus grand texte sur la deuxième ligne !
Code Arduino UNO Q — Afficher du Texte sur OLED SSD1306 128x32
Cet exemple illustre différentes tailles de texte et comment afficher des entiers, des flottants et des nombres hexadécimaux sur l'OLED.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED alterne entre les démonstrations de taille de texte, puis affiche un entier, un flottant et un nombre hexadécimal.
Référence des Fonctions d'Affichage Utiles
Référence rapide des fonctions SSD1306 OLED les plus utilisées :
- oled.clearDisplay() — efface le tampon de trame (tous les pixels éteints)
- oled.display() — envoie le tampon à l'écran — requis après chaque appel de dessin
- oled.drawPixel(x, y, color) — définit ou efface un seul pixel
- oled.setTextSize(n) — met à l'échelle la police par le facteur *n* (1 = 6×8 px, 2 = 12×16 px, …)
- oled.setCursor(x, y) — déplace le curseur de texte aux coordonnées en pixels *(x, y)*
- oled.setTextColor(WHITE) — premier plan de texte uniquement (fond transparent)
- oled.setTextColor(BLACK, WHITE) — texte avec fond explicite
- oled.println("message") — imprime une chaîne et passe à la ligne suivante
- oled.println(number) — imprime un entier en décimal
- oled.println(number, HEX) — imprime un entier en hexadécimal
- oled.startscrollright(start, stop) — défilement matériel vers la droite entre les pages
- oled.startscrollleft(start, stop) — défilement matériel vers la gauche
- oled.startscrolldiagright(start, stop) — défilement diagonal vers la droite
- oled.startscrolldiagleft(start, stop) — défilement diagonal vers la gauche
- oled.stopscroll() — arrête tout défilement matériel actif
- oled.setContrast(value) — ajuste la luminosité (0 à 255)
- oled.dim(true/false) — bascule rapide de l'atténuation
- oled.invertDisplay(true/false) — inversion des couleurs au niveau matériel
Code Arduino UNO Q — Dessiner des Formes sur OLED SSD1306 128x32
La bibliothèque Adafruit SSD1306 hérite d'Adafruit_GFX, vous donnant des pixels, des lignes, des rectangles, des cercles, des triangles et des rectangles arrondis. Le sketch ci-dessous les parcourt tous — avec des coordonnées ajustées pour s'adapter à la hauteur de 32 pixels.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

Regardez l'OLED alterner entre toutes les formes — pixels, lignes, rectangles, cercles, rectangles arrondis et triangles !
Code Arduino UNO Q — Défilement Matériel sur OLED SSD1306 128x32
Le SSD1306 dispose d'un moteur de défilement matériel intégré qui déplace le contenu sans aucun travail du CPU. La bibliothèque offre quatre directions de défilement : droite, gauche, diagonal-droite et diagonal-gauche.
※ Note:
Appelez toujours oled.display() pour transférer votre contenu vers l'OLED avant de démarrer un défilement. Appelez stopscroll() avant de dessiner un nouveau contenu. Pour l'afficheur 128x32, utilisez la plage de pages 0x00, 0x03 au lieu de 0x00, 0x07.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED fait défiler "DIYables" vers la droite, la gauche, diagonal-droite et diagonal-gauche, en se répétant indéfiniment.
Code Arduino UNO Q — Afficher une Image Bitmap sur OLED SSD1306 128x32
Pour afficher un bitmap sur l'OLED, vous devez d'abord convertir votre image en un tableau d'octets C. Utilisez l'outil gratuit Image to Bitmap Converter :
- Téléchargez votre fichier image (PNG, JPG, BMP, etc.).
- Définissez la taille du canevas à 128×32 (ou plus petit).
- Sélectionnez Arduino code comme format de sortie.
- Copiez le tableau généré dans votre sketch.

Le sketch ci-dessous affiche une icône cœur 16×16 puis passe à une icône DIYables 72×32 — toutes deux stockées sous forme de tableaux d'octets dans le code :
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED affiche l'icône cœur pendant 3 secondes, puis passe à l'icône DIYables.
※ Note:
Les dimensions du bitmap ne doivent pas dépasser la résolution de l'écran (128×32). Gardez la largeur ≤ 128 et la hauteur ≤ 32.
Code Arduino UNO Q — Contraste et Atténuation sur OLED SSD1306 128x32
Le SSD1306 supporte 256 niveaux de contraste (0 à 255). Utilisez setContrast() pour un contrôle précis et dim() pour une bascule rapide de la luminosité.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

Regardez la luminosité de l'OLED augmenter puis diminuer, suivie d'un cycle d'atténuation activée/désactivée.
Code Arduino UNO Q — Polices Externes Personnalisées sur OLED SSD1306 128x32
La bibliothèque Adafruit GFX inclut de nombreuses polices FreeFont. Avec seulement 32 pixels de hauteur, les polices plus petites (9pt) permettent deux lignes tandis que les polices plus grandes (12pt) remplissent une seule rangée.
※ Note:
Lorsqu'une police externe est active, la coordonnée Y du curseur fait référence à la ligne de base du texte, et non au coin supérieur gauche. Cela diffère de la police intégrée 5×7.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED alterne entre la police intégrée, FreeSerif 9pt (deux lignes) et FreeSansBold 12pt (une seule rangée).
Programmation Bridge Linux + MCU
L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- L'OLED est connecté au MCU (STM32) — via I2C (SCL/SDA). Seul le MCU peut le piloter directement.
- Le MPU ne peut pas contrôler l'OLED directement — il appelle Bridge.call("display_text", "text") qui met à jour l'OLED et imprime le résultat dans le Monitor.
- Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et afficher n'importe quel message sur l'OLED à distance.
- Communication : Bridge.call() côté Linux invoque des fonctions Bridge.provide_safe() côté MCU (puisque les écritures OLED sont des appels API matériels).
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement.
Sketch MCU — OLED 128x32 avec Bridge et sortie Monitor :
Script Python (Arduino App Lab) — afficher du texte sur OLED 128x32 depuis Linux :
Étapes Rapides
- Créez une nouvelle App : Ouvrez Arduino App Lab, cliquez sur Create New App, nommez-la DIYables_OLED_128x32_Bridge, et cliquez sur Create.
- Collez le sketch MCU : Copiez le code Bridge MCU ci-dessus et collez-le dans sketch/sketch.ino.
- Collez le script Python : Copiez le code Python ci-dessus et collez-le dans le fichier Python de l'App.
- Exécutez l'App : Cliquez sur le bouton Run — le côté Python alterne entre les messages sur l'OLED.
Sortie de la Console App Lab
Intégration Telegram
Affichez n'importe quel texte sur votre OLED 128x32 à distance depuis n'importe où via Telegram.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.
Script Python (Arduino App Lab) — bot Telegram pour OLED 128x32 :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /display Hello — apparaît sur l'OLED.
- Envoyez /clear — efface l'OLED.
- Envoyez /status — le bot répond avec le texte actuel de l'OLED.
Sortie de la Console App Lab
ArduinoBot
Intégration d'OpenClaw
Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.
Idées d'Applications/Projets
- Affichage de statut portable : Intégrez le fin 128x32 dans un badge ou un bracelet pour afficher des mesures de capteurs en temps réel
- Affichage d'alerte sur une seule ligne : Affichez en permanence le dernier message d'alerte Telegram sur l'OLED
- Infos réseau Wi-Fi : Affichez le SSID connecté et l'adresse IP depuis le côté Linux sur l'OLED compact
- Tableau de bord minimal : Utilisez les deux lignes de texte pour la température et l'humidité côte à côte
- Bandeau de notifications : Faites défiler les messages Telegram entrants sur l'écran 128x32
Défiez-vous
- Facile : Envoyez /display sans espace — ajoutez une gestion d'erreur qui répond "Utilisation : /display
" - Moyen : Divisez un message en deux lignes de 21 caractères chacune et affichez les deux sur le 128x32 en utilisant setCursor(0, 0) et setCursor(0, 16)
- Avancé : Ajoutez une commande /blink qui fait clignoter l'OLED 3 fois en utilisant clearDisplay()/display() dans une boucle côté MCU