Ciao a tutti,
sto iniziando i primi passi con Arduino.
Nell'interfacciare un Arduino Mega 2560 R3 con un Display LCD03 16x2 (
http://www.robot-electronics.co.uk/htm/Lcd03tech.htm ) tramite protocollo I2C, non riesco a visualizzare nulla.
Prima di procedere con l'eventuale reso al fornitore, vi chiedo di verificare se
sbaglio qualche cosa.
Il collegamento fisico è visibile nell'immagine allegata: linea SDA ( pin 20 ) colore blu, linea SCL ( pin 21 ) colore verde, due resistenze di Pull-Up da 1K8 sulle linee SDA e SCL, alimentazione per il display pin 5V colore rosso e pin GDN colore nero. Nel display ho tolto il jumper per farlo funzionare in I2C.
Alimentando Arduino anche il display viene alimentato regolarmente però se provo a inviare dei dati non visualizzo nulla.
Questo è lo sketch:
#include <Wire.h>
#define LED_13 13
#define LCD_ADDRESS 0xC6
#define LCD03_CLEAR 0x0C
#define LCD03_HIDE_CUR 0x04
#define LCD03_CLEAR 0x0C
#define LCD03_SET_CUR_HOME 0x01
#define SDA_PIN 20
#define SCL_PIN 21
void setup(){
Wire.begin(); // inizializza I2C Master ( Arduino )
Wire.begin(LCD_ADDRESS); // inizializza I2C Slave ( lcd )
Wire.beginTransmission(LCD_ADDRESS); // inizia trasmissione su lcd
Wire.write(LCD03_CLEAR); // pulisci display
Wire.write(LCD03_SET_CUR_HOME); // posiziona il cursore nella prima riga prima colonna
Wire.endTransmission(LCD_ADDRESS); // termina trasmissione
pinMode( LED_13, OUTPUT );
}
void loop(){
Wire.beginTransmission(LCD_ADDRESS);
Wire.write(LCD03_SET_CUR_HOME);
Wire.write("A");
Wire.endTransmission(LCD_ADDRESS);
digitalWrite( LED_13, HIGH );
delay(1000);
Wire.beginTransmission(LCD_ADDRESS);
Wire.write(LCD03_SET_CUR_HOME);
Wire.write("B");
Wire.endTransmission(LCD_ADDRESS);
digitalWrite( LED_13, LOW );
delay(1000);
}
Sbaglio qualche cosa nel codice ?
Forse l'indirizzo del display non è quello indicato nel relativo manuale, dovrei provare a fare un ciclo e testare tutte le combinazioni di indirizzi possibili ?
Grazie.