Display OLED da 0.91” con una risoluzione di 128×32 pixel, driver grafico SSD1306, interfaccia I2C.
CARATTERISTICHE:
Il Display è dotato di tecnologia OLED (Organic Light Emitting Diode) dove è la matrice stessa del display che produce la luce; questa caratteristica rende il display unico nella sua struttura e non richiede componenti aggiuntivi per il funzionamento come ad esempio la retroilluminazione nei display Lcd. La sottile matrice elettroluminescente formata con strati di polimeri organici conduttivi opportunamente "drogati" è in grado di emettere la luce quando viene applicata una tensione elettrica. La tipologia di drogaggio influenza il colore della luce prodotta: bianco, rosso, verde e blu. Il nome OLED deriva dalla similitudine conduttiva che si ha anche nei diod led, ovvero il passaggio delle cariche elettriche all' interno della matrice è unidirezionale. Queste caratteristiche rendono i display OLED molto luminosi e brillanti con un elevato rapporto di contrasto insieme ad un consumo energetico inferiore rispetto ad altre tecnologie come l’lcd retroilluminato. Inoltre è molto visibile sia in condizioni di elevata oscurità che di luce intensa. La tecnologia OLED permette di realizzare pannelli molto sottili, pieghevoli e arrotolabili.
COME UTILIZZARLO:
Il display SSD1306 OLED da 0.91” è predisposto per essere intefacciato, ad esempio con un microcontrollore, tramite bus I2C.
Presenta 4 Pin per i collegamenti: GND e VCC per l'alimentazione, SDA e SCL per il bus dati.
Il circuito per il reset è già contenuto nel modulo quindi non è necessario collegare un pin per il reset .
L'indirizzo I2C del dispositivo è preimpostato a 0x3C e non è possibile modificarlo nel caso si utilizzano piu' periferiche I2C aventi lo stesso indirizzo.
La colorazione dei contenuti del display è di colore bianco.
Specifiche:
- Dimensione: 0.91 pollici
- Risoluzione:128×32
- Colore: Bianco
- Chip di controllo: SSD1306
- Dimensioni del display: 22.4 x 5.6 (mm)
- Formato del pannello: 12×38(mm)
- Interfaccia I2C: (indirizzo 0x3C)
- Dimensione dei Pixel: 0.175×0.175(mm)
- Pixel pitch:0.159×0.159(mm)
- Numero di pin: 4 pin da 2,54
- Temperatura di funzionamento:-20-70°
- Tensione di funzionamento: 3,3 V-5 V DC
E' disponibile una versione del display con dimensioni e risoluzione maggiori: SSD1306 Oled Display I2C 128x64 pixel 0.96".
ESEMPIO DI UTILIZZO CON PLATFORMIO E ARDUINO IDE:
Per maggiori informazioni su PlatformIO.
Dispositivi utilizzati per l’esempio:
- Microcontrollore ESP32 DevKitC 38 PIN
- SSD1306 Display OLED 128×32 pixel I2C
- ESP32 DevKitC 38 PIN Screw Terminal Board o Breadboard
In alternativa all' ESP32 DevKitC 38 PIN Screw Terminal Board è possibile utilizzare:
Qui è possibile consultare ulteriori esempi sui display:
- https://ziotester.github.io/code/tft-espi/
- https://ziotester.github.io/code/lvgl/
- https://ziotester.github.io/retrogaming/nesp32/
Collegamenti:
- Pin Vcc display ➞ 3.3V Esp32
- Pin GND display ➞ GND Esp32
- Pin SDA display ➞ GPIO 32 Esp32
- Pin SCL display ➞ GPIO 33 Esp32
Codice:
Platformio.ini:
[env:esp32dev] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 upload_speed = 921600 monitor_filters = esp32_exception_decoder lib_deps = adafruit/Adafruit SSD1306 @ ^2.5.7 = adafruit/Adafruit GFX Library @ ^1.11.5
Per l’esempio abbiamo aggiunto ed utilizzato le librerie: https://github.com/adafruit/Adafruit_SSD1306 - https://github.com/adafruit/Adafruit-GFX-Library
Main.cpp:
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() {
Wire.begin(32,33);
display.begin(SSD1306_SWITCHCAPVCC,0X3C);
} void loop() {
display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("ZIO TESTER.IT"); display.display(); delay(2000); display.setTextSize(1); display.setTextColor(BLACK,WHITE); display.setCursor(20,20); display.println("SSD1306"); display.display(); delay(2000); display.clearDisplay(); display.display();
}