{{tag>electronique affichage todo}} ====== Afficheurs OLED ====== todo * Afficheurs OLED format 0.91"(128x32 OLED) et 0.96"(128x64 OLED) * TCA9548A: multiplexeur I2C Les afficheurs de type OLED((Organic Light Emitting Diode)) utilisent des diodes électroluminescentes. Une caractéristique importante de ce type d'afficheur est qu'il n'a pas besoin de rétro éclairage, il consomme peu. Avantages: * Pas besoin de rétroéclairage * affichage léger * Basse consommation * angle de vision large * intensité et contrastes élevés * temps de réponse faible * noir intense Inconvénients: * Technologie plus onéreuse que LCD * Cycle de vie plus court que LCD * OLED peut se détériorer rapidement si la même image est affichée en continu (l'image restera alors en permanence sur l'écran). * eau et humidité détériore se type d'afficheur. Certains modèles d'afficheurs permettent de définir l'adresse du périphérique I2C (via switchs ou resistances). ===== Bibliothèques ===== Il existe de nombreuses bibliothèques permettant de gérer ces afficheurs comme **u8glib** ou **adafruit** qui à l'avantage d' être simple d'utilisation. ==== Installer les bibliothèques adafruit ==== Dans l'IDE Arduino: * Menu Croquis -> Inclure une bibliothèque -> Gérer les bibliothèques; * Installer adafruit_GFX et adafruit_SSD1306 * Définir correctement l'adresse du périphérique dans le code et le header Adafruit_SSD1306.h * La taille de l'afficheur devra être correctement définie dans header de la bibliothèque Adafruit_SSD1306.h * Pour les devkit remplacer OLED_RESET 4 par LED_BUILTIN A partir du sketch exemple : * Menu Fichier Exemples -> Adafruit SSD1306 -> ssd_1306_128x64_i2c Modifier la valeur de OLED_RESET # Redéfinir la valeur de OLED_RESET pour le DevKit #define OLED_RESET LED_BUILTIN Définir la constante de portée globale I2C_DISPLAY_ADDRESS # L'afficheur fournit dans le kit utilise l'adresse i2c 0x3c const int I2C_DISPLAY_ADDRESS = 0x3c; Dans la fonction setup(), appeler display.begin() avec en paramètre l'adresse de l'afficheur: void setup() { Serial.begin(115200); // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally if(!display.begin(SSD1306_SWITCHCAPVCC, I2C_DISPLAY_ADDRESS)) { // Address 0x3D for 128x64 Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } ===== Ressources ===== * https://www.spriters-resource.com/ * https://iconarchive.com/ ===== Références ===== * https://www.youtube.com/watch?v=_e_0HJY0uIo * https://www.youtube.com/watch?v=0KGMFhFQ0YY