Utilisation d’un afficheur OLED 128×64 en I2C avec Blockly Arduino

Je poursuis mon travail de création de nouveaux blocs pour Blockly Arduino pour utiliser un module audio mp3, un afficheur graphique OLED I2C, des modules Leds RGB avec liaison série, … Ces blocs seront bientôt disponibles en ligne ici :

http://www.technologiescollege.fr/blockly@rduino/?lang=fr&card=dfrobot_romeo

Je présente ici mes tests d’un afficheur graphique OLED 128×64 commandé par une liaison série de type I2C.

Je trouve cet afficheur très intéressant car il a un très bon rapport qualité prix chez Banggood (pub) : 5€46 l’afficheur (à partir de 3 achetés), frais de port compris, livré sous 10 jours ouvrés :
http://www.banggood.com/0_96-Inch-4Pin-IIC-I2C-Blue-OLED-Display-Module-For-Arduino-p-969147.html

Cet écran OLED ne fait que 0.914 pouces de diagonale (soit 23 mm) mais sa résolution de 128×64 et son contraste le rende très lisible, de près. Il est simple à mettre en oeuvre car 4 fils suffisent : 5v, Gnd et une liaison série I2C. Il s’intègre facilement comme interface de dialogue avec une carte Arduino. En ajoutant 4 boutons on peut gérer des menus : choix A ou choix B, et suivant ou précédent. (Source : banggood.com)

Ce petit afficheur permet de nombreuses applications que ne permettent pas les afficheurs LCD alphanumériques habituellement utilisés. (source : eevblog.com/forum par linux-works)

Avec cet afficheur on peut facilement afficher 4 lignes de textes avec une police 10. (Source : pinshape.com par fred2088)

Cet afficheur n’a rien à voir avec un simple afficheur LCD alphanumérique. On peut faire beaucoup plus de chose avec et le rendu est bien meilleur.  Il s’intègre facilement comme interface de dialogue avec une carte Arduino, pour afficher des valeurs de capteurs en temps réel par exemple. En ajoutant 4 boutons on peut même gérer des menus : choix A ou choix B avec deux boutons dessous, et suivant ou précédent avec deux boutons sur le côté droit.

Cet afficheur a beaucoup d’avantages : sa petite taille permet de l’intégrer plus facilement sur une petite carte ou un petit boîtier, il ne consomme presque rien (moins de 500 µA contre 50 à 90 mA pour un LCD classique car ici il n’y a pas de rétroéclairage : chaque pixel produit sa lumière avec un bon contraste, donc super pour l’autonomie), on peut afficher 2 à 3 fois plus de textes et des graphiques, il fonctionne très bien avec une liaison série de type I2C (pas d’Entrées/Sorties utilisées), l’interface est très rapide (400 kHz), …

Cet afficheur est à base de SSD1306 standard. J’ai donc utilisé la librairie u8glib pour Arduino disponible ici :

https://github.com/olikraus/u8glib

Voici un premier programme de test réalisé avec cet afficheur et quelques uns des nouveaux blocs que j’ai créé pour Blockly Arduino :

Programme de test de l'afficheur OLED avec Blockly Arduino (Source : Collège Jean Macé)

Programme de test de l’afficheur OLED avec Blockly Arduino (Source : Collège Jean Macé)

A suivre (en cours de rédaction) !