venerdì 3 maggio 2013

Arduino primi passi: Display LCD + MCP23017

Iniziamo, comincio a muovere i primi passi nel mondo Arduino, il mio primo progetto consiste nel far funzionare un display LCD HD44780 compatibile con soli due pin di Arduino.

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

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