Modulo Expander bus I2C per Display LCD a matrice di caratteri ultimo aggiornamento 25 giugno 2019 |
|
Si tratta di un
adattatore/convertitore dal bus seriale I2C al bus parallelo utilizzato
dai Display LCD con standard HD44780 e matrice (colonne x righe):
4x2, 8x2, 16x2, 20x2, 16x4, 20x4 ecc
Ad esempio un display LCD 1602 impegna per il suo controllo, a
prescindere dall'alimentazione, almeno 6 porte del Microcontroller di
sistema per cui il numero delle porte restanti può risultare
insufficiente per le necessità del progetto che si vuol realizzare.
Questo modulo permette di comunicare con un display LCD mediante il
protocollo I2C che impegna quindi due sole porte.
Il modulo può essere trovato sul sito HOMOTIX, ricordo che quanti inseriranno in codice "ADRIROBOT_19", potranno usufruire di uno speciale sconto.
Il modulo è anche disponibile sul sito KATODO
Lo schema elettrico è basato sul chip PCF8574
un remote 8-bit I/O Expander for I2C-bus che si occupa di convertire i
dati provenienti dalla linea Dati e pilotare le linee del display.
Sul modulo è presente un trimmer per la
regolazione del contrasto ed un jumper rimovibile per l'attivazione della
retroilluminazione.
Se il jumper viene rimosso la luminosità può essere regolata
pilotando opportunamente pilotando la base del transistor Q3 tipo NPN
S8050.
Per la scelta dell'indirizzo I2C sono presenti 3 gruppi di piazzole
(JP1-Jp2)
PCF8574 Remote 8-bit I/O expander for I2C-bus | ||
Piedinatura | Datasheet | Foto dell'integrato |
Schema a blocchi del PCF8574
Transistor NPN S8050 SOT23 | ||
Piedinatura | Datasheet | Foto del transistor |
Impostazione dell'indirizzo del modulo
Sono inoltre presenti tre connessioni denominate A1, A2 e A3 per il settaggio (a
3-bit) dell'indirizzo I2C tra 0x20 e 0x27. L'indirizzo di default è 0x27 (A0, A1
e A2 lasciati aperti).
La chiusura di una coppia si effettua collegando tra loro le due rispettive
piazzole. E’ ovvio che tale indirizzo hardware deve coincidere con l’indirizzo
I2C nel software/libreria di gestione del Modulo.
Il Modulo è strutturato per essere installato (saldato) sul retro del Display come mostrato qui di seguito:
Una volta installato il modulo, il collegamento ad esempio con Arduino è molto semplice come mostrato qui di seguito:
Per il collegamento dovrete solamente tramite dei cavi M/F ai seguenti pin di Arduino
|
Libreria di gestione per Arduino
Per l'utilizzo del modulo si può utilizzare la libreria che
può essere scaricata da
questo link la libreria è stata scritta da Lucas Maziero ed è attualmente nella
versione 1.1.
Nel caso vi fossero problemi di funzionamento, occorre ricercare all'interno del
file LiquidCrystal_I2.ccp il seguente comando è nel caso aggiungere la
linea evidenziata in rosso.
|
Se volete potete
scaricare direttamente la libreria
modificata, testata con successo con la versione di IDE 1.8.5.
Una volta scaricato il file zip, si potrà utilizzare il comando l'apposito
comando per inserire la libreria nel vostro archivio.
Per una descrizione dei principali comandi della libreria
vedere l'apposita pagina.
A questo punto la libreria apparirà nell'elenco dell'IDE di Arduino
Per il test del modulo potrà essere utilizzato sia il
programma HelloWord, presente nella cartella esempi della libreria, oppure il
programma sotto riportato, che farà apparire sulle schermo un esempio una serie
di caratteri.
Verificare prima di lanciare la compilazione e caricamento del programma che
l'indirizzo del modulo presente nel programma sia quello corretto per il vostro
modulo
//Include la libreria #include <LiquidCrystal_I2C.h> // Imposta l'indirizzo del display a 0x27 per 16 caratteri 2 linee LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { lcd.begin(); //Init with pin default ESP8266 or ARDUINO lcd.backlight(); //accende la retroilluminazione } void loop() { // Scrittura dei testi sul display lcd.setCursor(0, 0); lcd.print("1234567812345678"); delay (1000); lcd.setCursor(0, 1); lcd.print("ABCDEFGHILMNOPQR"); delay (1000); lcd.setCursor(0, 0); lcd.print("8765432187654321"); delay (1000); lcd.setCursor(0, 1); lcd.print("8888888888888888"); delay (1000); } |
Lettura valori da sensore di pressione BMP180
Nella foto è mostrato l'utilizzo del display utilizzato per mostrare i valori letti tramite un Arduino UNO da un sensore di pressione BMP180.
Lettura data e ora da MH-Real-Time Clock Module-2
Utilizzo del display per mostrare la date e l'ora corrente tramite il modulo MH-Real-Time Clock Module - 2 basato sull' integrato DS1302 al cui interno è presente un orologio in tempo reale / calendario e 31 byte di RAM statica.
Lettura valore di luminosità con sensore GA1A12S202WP
Lettura valore di luminosità tramite Il sensore GA1A12S202WP prodotto dalla Sharp , un sensore di luce con uscita analogica di tipo logaritmico, questo può essere utilizzato per sostituire nei circuiti le normali fotocellule CdS.l
Lettura valori battiti cardiaci e saturazione con MAX30100
Lettura dei battiti cardiaci e saturazione del sangue tramite sensore MAX30100 che è una soluzione integrata per sensore di pulsossimetria e cardiofrequenzimetro. il sensore combina due LED, un foto rilevatore, un'ottica ottimizzata e un elaboratore del segnale analogico a basso rumore.
Elenco revisioni | |
25/06/2019 |
Aggiornata pagina |
11/05/2019 |
Aggiornata pagina, inserito riferimento sensore MAX30100 |
05/05/2019 |
Aggiornata pagina |
17/12/2017 |
Modificata versione della libreria ora compatibile con la versione IDE 1.8.5 |
20/10/2016 |
Modificata versione della libreria. compatibile con la versione IDE 1.6.11 |
14/03/2015 |
Emissione preliminare |