Come connettere un display OLED a Raspberry Pi Pico (Lezione 2)

Introduzione

Ad un sistema embedded,  generalmente, sono connesse delle periferiche che nella maggior parte dei casi sono dei sensori che rilevano una particolare grandezza fisica. In questo caso, nasce il problema di come comunicare il valore di queste grandezze misurate all’utilizzatore finale del sistema, il modo più semplice per risolvere questo problema è quello, senza dubbio, di connettere un display.

In effetti,  possiamo rappresentare un display come un dispositivo che ci consente di visualizzare il contenuto di tutte le variabili che desideriamo conoscere, interne al microcontrollore, e come se fosse una finestra sulla quale possiamo visualizzare tutto ciò che si trova nella memoria del nostro device. 

Supponiamo di volere realizzare un semplice termometro, ovviamente,  ogni  lettura del nostro sensore temperatura è memorizzato all’interno della memoria RAM del microcontrollore che verrà poi stampato sul display.

In questo articolo andremo a discutere come pilotare e collegare  un display OLED da 0.96 pollici, semplice da reperire da siti come Amazon, eBay o Aliexpress  ad un costo decisamente basso.

Il Display OLED

Il display OLED, utilizzato per questo progetto, può essere pilotato con il protocollo di comunicazione I2C (approfondimenti sul protocollo I2C al seguente link) L’interfaccia I2C utilizza solo due cavi di collegamento, CLK (clock) e DATA (dati), il clock sincronizza il trasferimento dell’informazione, cioè ad ogni  fronte di salita del clock,  il bit  che deve essere letto dal display è stabile, la Figura 1 può chiarire il concetto:

Figura 1

L’interfaccia I2C , come anticipato in precedenza usa solo due cavi  è possibile connettere contemporaneamente  da 127 a 255 dispositivi al microcontrollore (master), è semplice da usare e ci sono delle librerie già pronte, scritte in Python,   che possono  essere integrate nell’ambiente di sviluppo Thonny, lo vedremo nell’esempio  riportato di seguito.

Il display ha quattro pins (vedi  Figura 2).  L’alimentazione  è connessa tra i pins 1 e 2,  e deve essere compresa nel range tra 5V  e 3.3V. Essa è una periferica passiva, non genera dati, ma acquisisce solo i comandi e i dati che deve stampare. 

Figura 2

  • Pin 1 GND
  • Pin 2 Vcc
  • Pin 3 SCL (CLK)
  • Pin 4 SDA (DATI)

Lo schema di collegamento è riportato nella Figura 3 (disegnato con il software Fritzing)

Figura 3

Codice per pilotare un display OLED

Come accennato in precedenza esistono gia’ delle librerie pronte per essere integrate nell’ambiente di sviluppo Thonny, infatti, di seguito ho inserito una gif dove e’ indicata la procedura per caricare una libreria nella memoria FLASH del sistema Raspberry Pi Pico.

from machine import Pin, I2C
from ssd1306 import SSD1306_I2C

i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
oled = SSD1306_I2C(128, 64, i2c)

oled.text("Io Sono", 0, 0)
oled.text("Raspberry Pico", 0, 10)
oled.show()

Dalla libreria machine importiamo i Pin del microcontrollore e la classe I2C.

Importiamo la libreria per gestire il display OLED, usato in questo esempio

Creiamo l’oggetto I2C e usiamo il canale zero sulla board, e associamo i corrispettivi Pins da usare per la comunicazione, l’ultimo parametro e la frequenza usata per il trasferimento dei dati.

Creiamo l’oggetto oled, in cui e’ indicata la risoluzione del display usato (12×64) il terzo e ultimo parametro gli passiamo l’oggetto i2c , precedentemente instaziato.

In questo caso carichiamo in RAM il testo che vogliamo visualizzare sul display. E’ ovvio che potevamo anche inserire il valore di una variabile, ma in questo semplice esempio non abbiamo connesso un sensore al nostro sistema.

Questa ultima istruzione e’ il comando per trasferire il testo al display.

Se avete delle domande o delle osservazione, non esitate a scrivere nel form di seguito.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ti sei iscritto alla newsletter

There was an error while trying to send your request. Please try again.

Quattrodispositivi utilizzerà le informazioni fornite in questo modulo per restare in contatto con te e fornire aggiornamenti del sito