Ho realizzato questo tutorial come risposta ad un quesito che mi è stato posto da un’amica collega sull’utilizzo del display 1602 I2C comandato da micro:bit.
Per quanto riguarda la descrizione tecnica del display vi rimando al post su questo sito:
Utilizzo dell’LCD 16×2 Hitachi HD44780 1602 con modulo I2C PCF8574T
Per un utilizzo con micro:bit è sufficiente conoscere il tipo esatto di integrato I2C che gestisce la comunicazione tra display e micro:bit nella modalità indicata da questo tutorial.
Aprite un nuovo progetto dall’ambiente grafico di programmazione di micro:bit.
Aggiungiamo l’estensione che consente la gestione di un display 16×2 I2C, per far ciò selezionate “+Extensions”:
nel campo di ricerca inserite: I2C
dovreste ottenere il seguente risultato:
Selezionate l’estensione indicata nell’immagine:
All’interno dei blocchi disponibili ritroverete quelli che fanno riferimento al display:
Ogni dispositivo I2C dispone di un indirizzo, un codice a cui bisogna far riferimento in fase di programmazione e per quanto riguarda la scheda di comunicazione I2C disposta sul retro del display troverete due tipi di dispositivi con indirizzo differenti l’uno dall’altro. La differenza consiste nel tipo di circuito integrato che gestisce la comunicazione I2C:
- PCF8574 > indirizzo 39
- PCF8574A > indirizzo 63
L’indirizzo dovrà essere inserito all’interno di un apposito blocco come indicato di seguito.
Per sapere quale indirizzo usare potete leggere la sigla dell’integrato, come indicato nell’immagine che segue:
nel mio caso l’indirizzo da inserire sarà il 39.
L’altro metodo consiste nel sostituire, nel codice che segue, gli indirizzi sopra indicati in modo da individuare il numero corretto che permette la visualizzazione del testo sul display.
Per il collegamento del circuito avete necessità di alimentare il display a 5V, in commercio esistono degli edge connector (connettore per collegare micro:bit alla breadboard) che prelevano dalla USB i 5 volt, nel mio caso questa funzionalità non è fornita, l’unica tensione disponibile è di 3,3V non sufficienti per alimentare il display.
Se anche voi siete nelle medesime condizioni allora alimenterete via USB il micro:bit mentre il display dovrà essere alimentato esternamente mediante una tensione di 5V. Se agite in questo modo ricordate che la terra (GND) dovrà essere la medesima (collegate insieme) per entrambi i dispositivi. Fate riferimento allo schema di seguito indicato:
Sul micro:bit il pin 20 corrisponde all’SDA e il pin 19 all’SCL, pin che avranno una corrispondenza con il display. Per le mie sperimentazioni dispongo di un cavo USB modificato per poter inserire su breadboard la tensione di 5V proveniente dalla USB del computer.
Realizzeremo un semplice programma che consente di visualizzare su due righe il testo:
BBC micro:bit
Italy timer
dove timer è il numero di secondi trascorsi dall’avvio del programma.
L’inserimento della prima istruzione provocherà la visualizzazione del display I2C:
L’istruzione “LCD initialize with Address 39” assegna al display l’indirizzo 39
L’istruzione “show string” mostrerà sul display il testo incluso nel primo campo: “BBC micro:bit” che verrà scritto a partire dalla colonna 0 e riga 0 (in prima riga).
La seconda “show string” mostrerà sul display il testo “Italy” alla colonna 0 e riga 1 (in seconda riga):
Definiamo una nuova variabile che andremo successivamente ad incrementare:
assegnamo alla variabile il nome: contatore
All’interno della funzione “forever” inserire l’istruzione “change” per incrementare di una unità la variabile “contatore”.
Con l’istruzione “show number” visualizziamo sul display un numero, inserendo nel primo campo la variabile “contatore” il numero visualizzato sarà quello memorizzato nella variabile contatore:
La visualizzazione del numero contenuto in “contatore” avverrà in colonna 6 riga 1:
Aggiungendo una pausa di 1 secondo l’incremento del numero che appare sul display sarà di 1 secondo:
Questo il risultato:
Buon Coding a tutti 🙂
Buon giorno
E’ possibile trovare da qualche parte il code in scretch per l’LCD 20×4 o 20×16.
Grazie et saluti
Prof. Franco Missoli
ISAL – Istituto del Dolore- Rimini
cell. 3381763527
email franco.missoli@nt2.it
Mi dispiace ma con Scratch 3 non è possibile comandare direttamente display 16×2 o 20×16.
Saluti.