Site icon AranaCorp

Utilisation d’un Afficheur OLED 128×64 avec Arduino

L’afficheur OLED est un afficheur graphique compact avec une résolution de 128×64 pixels qui permet de dessiner et d’afficher du texte afin de créer une interface graphique.

Matériel

Principe de fonctionnement

L’afficheur OLED TF052 est basé sur le circuit SSD1306 et s’interface à l’aide de la communication I2C.

Schéma

L’écran OLED présente 4 broches pour permettre la gestion de l’affichage. Il est alimenté par le microcontrôleur et se connecte au bus I2C.

Code

Une fois votre afficheur Oled correctement branché, vous pouvez modifier le code suivant pour obtenir la fonctionnalité désirée. Dans l’exemple suivant, nous allons simplement réaliser l’affichage d’un compteur.
Pour gérer l’écran OLED dans le programme, la librairie utilisée est U8x8lib.h dont les fonctions à connaître sont les suivantes:

D’autres fonctions plus spécifiques existent pour dessiner des rectangles, des lignes ou encore pour afficher des images.

//Libraries
#include <U8x8lib.h>//https://github.com/olikraus/u8glib

//Parameters
char cstr [16];//To convert int to char

//Variables
int oledCount  = 0;

//Objects
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init OLED screen
  u8x8.begin();
  u8x8.setPowerSave(0);
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setFlipMode(0);
  drawCentered(1, "Hello World!");
  u8x8.drawString(0, 2, "<-right");
  drawLeft(3, "left->");
  u8x8.drawString(0, 6, "counter =");
}

void loop() {
  OledCounter();
}

void OledCounter() { /* function OledCounter */
  //// Create a counter
  drawLeft(6, itoa(oledCount, cstr, 10));
  oledCount += 1;
  if (oledCount > 255) {
    oledCount = 0;
    drawLeft(6, "    ");
  }
  delay(200);
}

void drawCentered(int lin, char* str) { /* function drawCentered */
  //// Create a counter
  int col = int((16 - String(str).length()) / 2);
  u8x8.drawString(col, lin, str);
}

void drawLeft(int lin, char* str) { /* function drawLeft */
  //// Create a counter
  int col = 15 - String(str).length();
  u8x8.drawString(col, lin, str);
}




Résultat

Observez bien où sont placées les chaînes de caractères affichées et jouez avec les paramètres d’entrées des fonctions pour comparer leurs effets. Cela vous permettra d’avoir une meilleur appréhension de la librairie et une meilleure compréhension des fonctionnalités du module Oled.

Applications

Sources

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Quitter la version mobile