Code produit: | SSD1306-13 |
Disponibilité: | Rupture de stock |
Avant de pouvoir utiliser l’écran OLED SSD1306, il va falloir configurer le port sur lequel celui-ci ce trouve sur le bus I2C. Pour cela, Nick Gammon’s a développé un petit programme Arduino pour trouver le port I2C sur lequel est branché l’écran OLED. Le programme scrute en boucle et recherche les appareils I2C connectés au port série toutes les 5 secondes mais on peut ajuster le délai de rafraichissement en ajustant le délai en fin de boucle.
Pour ceux qui découvrent l’IDE Arduino, vous aurez besoin d’ajouter des librairies pour faire fonctionner l’écran OLED. Certaines librairies sont directement disponibles depuis le gestionnaire de librairies. C’est le cas par exemple de la librairie Adafruit pour le SSD1306. Dans le menu croquis, aller dans Inclure une bibliothèque puis Gérer les bibliothèques.
D’autres bibliothèques sont disponibles sur GitHub. C’est par exemple le cas de la bibliothèque (library en anglais) de Sparkfun. Dans ce cas, commencez par télécharger la librairie mais ne compressez pas le Zip. Ensuite, allez dans Croquis -> Inclure une librairie -> Ajouter la bibliothèque .ZIP et choisissez le zip de la librairie à importer.
Vous pouvez maintenant aller dans Fichier -> Exemples pour découvrir les exemples proposés dans la librairie.
Pour utiliser une librairie dans vos projets, déclarez la en début de projet, par exemple
Pour gérer l’affichage sur votre écran OLED, il y a plusieurs librairies Open Source à notre disposition. Pour cet article, je vais vous présenter les deux principales. La librairie développée par Adafruit et celle de Sparkfun.
Adafruit a développé une librairie très puissante qui va nous permettre de gérer l’affichage de notre mini écran mais aussi de tracer plein de chose très facilement grâce à la librairie dédiée, GFX Library. Vous pouvez récupérer la librairie Adafruit SSD1306 sur le github https://github.com/adafruit/Adafruit_SSD1306 et la librairie GFX ici https://github.com/adafruit/Adafruit-GFX-Library/archive/master.zip.
Fonctions de la librairie Adafruit_SSD1306 | |
Adafruit_SSD1306 display(OLED_RESET) | initialise l’objet display(Pin pour le reset) |
display() | Actualise l’affichage |
clearDisplay() | Efface l’écran et le buffer |
invertDisplay(bool) | inverse l’affichage (true ou false) |
Fonctions Adafruit_GFX | |
drawPixel(uint16_t x, uint16_t y, uint16_t color) | Dessine un pixel en X,Y de la couleur color |
drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color) | Dessine une ligne de X1,Y1 à x2,Y2 de la couleur color |
drawFastVLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color)
drawFastHLine(uin86_t x0, uin86_t y0, uint8_t length, uint16_t color); |
Tracé optimisé de lignes horizontales et verticales |
drawRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color)
fillRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color) |
Dessine un rectangle depuis X,Y de largeur w et hauteur h
idem mais plein |
drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color)
fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color) |
Dessine un cercle de centre X,Y et de rayon r
idem mais le cercle est plein |
drawRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color)
fillRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color) |
Idem rectangle mais avec un arrondi de rayon raduis aux angles |
drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color)
fillTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color) |
Dessine un triangle en spécifiant les coordonnées de chaque sommets (x0,y1), (x2,y2), (x3,y3) |
drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size) | Dessine un caractère en x,y |
drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h, uint16_t color) | Affiche un bitmap en x,y de largeur w et hauteur t |
fillScreen(uint16_t color); | Colorie entièrement l’écran dans la couleur spécifiée |
setRotation(uint8_t rotation) | Rotation de l’affichage : 0 -> 0°, 1 -> 90°, 2 -> 180°, 3 -> 270° |
Le paramètre color permettant de définir la couleur d’affichage uniquement sur les écrans couleur est disponible dans toutes les fonctions graphiques de la librairie GFX. Pour plus d’informations, vous pouvez consulter ce document de formation en anglais.
La librairie Adafruit_GFX est utilisée par d’autres librairies dédiées à chaque (microcontroleur) écran.
L’affichage d’un texte demande un peu plus de travail. Il est nécessaire de modifier les paramètres d’affichage paramètre par paramètre. Voici un petit exemple pour afficher Hello Word en 0,0: