Per fare questo devo ricorrere al sistema di comunicazione I2C e dato che non ho trovato nessuna info sul web per farlo ho deciso di scrivere questa pagina.
Per prima cosa vediamo l'occorrente per il progetto:
1x Arduino UNO
1x IC MCP23017
2x resistenza 4.7K ohm
1x resistenza 22 ohm
L' MCP23017 è un port-expander 16bit con interfaccia I2C come si vede dall'immagine del datasheet sono presenti 2 gruppi da 8 pin ciascuno.
A0-A1-A2 sono i pin per definire l'indirizzo
questo è lo schema
Sono necessarie due resistenze di Pull-up per il bus I2C io le ho messe da 4.7K
Il potenziometro serve per il contrasto io ne ho messo uno da 10K
La resistenza sul pin 15 del'LCD l'ho messa per abbassare un pò la tensione in ingresso alla retroilluminazione
Il potenziometro serve per il contrasto io ne ho messo uno da 10K
La resistenza sul pin 15 del'LCD l'ho messa per abbassare un pò la tensione in ingresso alla retroilluminazione
Ed ecco la vista breadboard
da Arduino preleviamo i segnali SDA ed SCL rispettivamente i pin A4 ed A5 e li colleghiamo ai rispettivi pin del MCP23017.
Per interfacciare l'IC al display ho usato le librerie LiquidTWI2 leggendo la libreria ho trovato questo codice
//MCP23017 - Adafruit RGB LCD Shield// bit pattern for the burstBits function is//// B7 B6 B5 B4 B3 B2 B1 B0 A7 A6 A5 A4 A3 A2 A1 A0 - MCP23017// RS RW EN D4 D5 D6 D7 B G R B4 B3 B2 B1 B0// 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Nella libreria è stato definito il codice per interfacciare la Adafruit RGB LCD shield, io non ho fatto altro che seguire i collegamenti segnati evitando di collegare i pin B0 A7 A6 del MCP23017 che nello shield sono collegati ai vari led della retroilluminazione.
Ed ecco una foto dello schermo funzionante




Nessun commento:
Posta un commento