venerdì 21 giugno 2013

Display LCD I2C e Arduino

Come vi dicevo con l'ultimo post, la prima cosa che ho fatto dopo aver scartato i miei pacchettini ricevuti ed aver sistemato le schedine arrivate nel propri conteitori per il loro successivo utilizzo, mi sono subito messo a testarne il funzionamento.
La prima delle schedine che ho preso in esame e' la schedina che converte il segnale parallelo che da Arduino va verso il Display LCD, in segnale I2C.
E' molto utile questa scheda perche' consente di usare un Display LCD 1602, che normalmente utilizza 6 pins per poter visualizzare i messaggi, solo con 2 pins.
In pratica utilizza la comunicazione seriale tra Arduino ed il Display, risparmiando 4 pins che possono essere invece utilizzati per altri scopi di progetto.
http://arduino.cc/en/Reference/Wire qui il reference della libreria.
Arduino comunica con il Display, attraverso la schedina, via I2C quindi sui piedini SDA - SCL che nella versione Mega corrispondono ai piedini 21 e 22.

Quando ho collegato la scheda al display e ad Arduino, doveva essere tutto ok per funzionare alla prima, ma invece cosi' non e' stato!

Dopo un po' di prove senza esito, ho notato sul retro della scheda una serie di tre ponticelli normalmente aperti, che possono essere settati attraverso un semplice punto di stagno. Tutti i tutorial che si trovano in giro per la rete, propongono il collegamento della scheda all'indirizzo 0x20, come, per esempio, nel caso del codice di prova della libreria.
codice:
#include
#include
LiquidCrystal_I2C lcd(0x20,16,2)//    16x2 e il tipo del lcd - address 0x20
void setup()
{
  lcd.init();                      // inizializza  lcd
  // Stampa il messaggio su LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}
void loop()
{
}

Per quanto riguarda la nostra schedina, invece, i tre ponticelli sono tutti "aperti" di default, questo porta ad una confugurazione come quella descritta in figura: HHH, quindi l'indirizzo esadecimale della scheda, senza modificare nulla, risponde al numero esadecimale 0x27 (l'ultima riga in basso della figura).
Quindi per poterla far funzionare si deve modificare l'indirizzo a cui punta il codice, sull indirizzo corretto 0x27- cosi:
 LiquidCrystal_I2C lcd(0x27,16,2);

 Da segnalare lo posizione estremamente scomoda del potenziometro per la regolazione del contrasto del display, che e' montato sulla schedina, ma che rimane tra la scheda e il display, quindi e' impossibile fare le operazioni di taratura con il Display collegato. La taratura deve essere completata, a meno di colpi di fortuna al primo botto, inserendo ogni volta la scheda sul display dopo ogni riposizionamento del potenziometro.


Spero che queste poche righe vi siano d'aiuto, io hoperso qualche mezzora per capire, e , considerata la mia scarsa memoria dovuta alla senilita', scrivo qui le mie note anche per ricordarmi.

Stay Tuned
Tecnogeppetto
anche su www.Tognozzi.net

Nessun commento: