SSD1331 oled rgb WeMos è dedicato alla possibilità di utilizzare un display oled con driver di controllo SSD1331 con una WeMos.
Già in passato ho testato e scritto un articolo display in abbinamento ad un arduino uno e usando le lbrerie Adafruit.
Oggi leggi come utilizzare tale display con una WeMos D1 Mini per un progetto a cui sto lavorando in questi giorni e che presto vedrai realizzato.
Il display è prodotto da Waveshare ed io l’ho acquistato da robotics-3d.com come la maggior parte dei componenti che utilizzo nei miei tutorial.
Schema collegamenti SSD1331 OLED RGB WeMos
lo schema dei collegamenti è un po’ complesso per il numero di cavetti in gioco anche se ho cercato di rendere i collegamenti tra l’oled e la WeMos più semplici possibili:
inoltre ho fotografato sia il collegamento lato OLED:
sia quello lato WeMos D1 mini per facilitarti il compito:
ti consiglio di utilizzare colori differenti nei fili che utilizzi perché è molto semplice invertire i collegamenti essendo molti ed il comportamento dell’SSD1331 OLED RGB WeMos potrebbe risultare imprevedibile.
Lo sketch
Ho usato come primo test uno degli esempi forniti dalla Adafruit per la gestione dell’SSD1331 oled rgb WeMos, solo al fine di verificarne il funzionamento.
Poi ho scritto un semplice sketch:
#define sclk D7 #define mosi D8 #define cs D6 #define rst D0 #define dc D5 // Color definitions #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #include <Adafruit_GFX.h> #include <Adafruit_SSD1331.h> #include <SPI.h> Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, mosi, sclk, rst); // Waveshare SSD1331 96x64 .95inch void setup(void) { Serial.begin(9600); Serial.print("hello!"); display.begin(); Serial.println("init"); drawtext("ZeroBot",WHITE,2,5,0,1); delay(500); display.drawFastHLine(0, 20, display.width()-1, WHITE); delay(500); drawtext("Joystick v1.0",RED,1,18,display.height()-8,0);delay(500); } void loop() { } void drawtext(char *text, uint16_t color, uint8_t fontsize, uint8_t x, uint8_t y, boolean clean) { if ( clean ) display.fillScreen(BLACK); display.setTextSize(fontsize); display.setTextColor(color); display.setCursor(x,y); display.println(text); }
linee 01-05: definisci i pin a cui sono connessi i terminali sclk,miso,cs,rst e dc ricordando di precedere ciascu pin con la lettera “D”;
linee 07-15: ho lasciato le definizioni dei colori presenti nello sketch di esempio rilsciato con la libreria;
linee 17-19: includi le librerie necessarie al funzionamento del display e la gestione della parte grafica;
linea 21: crea l’istanza display della classe Adafruit_SSD1331 passandole i pin a cui è connesso il display e definiti alle linee precedenti;
linea 28: inizializza la comunicazione con il display ssd1331 oled rgb WeMos usando il metodo begin();
linea 31: sono presenti due istruzioni, la prima è l’invocazione della funzione “drawtext” definita di seguito ed alla quale invii la frase da scrivere sul monitor, il colore in cui scriverla, la grandezza del font, la posizione x ed y da cui iniziare a scrivere e la necessità di pulire il monitor prima di iniziare a scrivere. La seconda istruzione è un semplice delay di 500 millisecondi;
linea 32: disegna una linea orizzontale sul display partendo dalle coordinate x=0 ed y=20 per la lunghezza width-1 e del colore bianco;
linea 33: scrivi in rosso, in basso a destra il testo “Joystick v1.0” di font inferiore al precedente e sfruttando la funzione drawtext;
linea 39: definisci la fuzione drawtext che accetta tutti i parametri che le passi quando la richiami, vedi linee 31 o 33;
linea 41: se l’ultimo parametro clean è stato impostato a true, ossia 1, pulisci lo schermo;
linea 42: imposta la grandezza del font;
linea 43: imposta il colore del font;
linea 44: imposta la posizione del cursore;
linea 45: scrivi il testo passato come primo parametro e porta il cursore a capo.
La sequenza delle operazioni che hai letto nello sketch ti permettono di visualizzare sull’ssd1331 oled rgb WeMos il seguente messaggio:
Warning!
Attenzione: a causa di u bug della libreria se compilata con una versione dell’IDE 1.8.3 non compila, è necessario usare la versione 1.6.12
Nei prossimi articoli proverò ad utilizzare contemporaneamente altre funzioni della wemos e potresti utilizzare il display per pubblicare informazioni relative alla comunicazione wifi o similari.
1 ping
[…] display di tipo OLED hai già letto l’articolo in cui hai eseguito i collegamenti e provato a visualizzare sul display del […]