Salve a tutti, sono Francesco e da poco ho cominciato a smanettare con Arduino.
Ho comprato uno starter pack che comprendeva alcuni moduli per Arduino tra cui un display LCD 1602 con l'interfaccia i2c per la comunicazione.
Ho cercato dappertutto, provato almeno una decina di librerie ma nulla, non riesco a far stampare sul display una qualsiasi scritta. La retro illuminazione funziona ma non stampa nulla. I collegamenti sono a posto, GND i2c -> GND Arduino, VCC i2c -> 5V Arduino, SDA i2c-> pin A4 Arduino e SCL i2c -> pin A5 Arduino. Ho provato la NewLiquidCrystal, la libreria di Testato e molte altre senza nessun risultato... Sto cominciando a pensare che sia un difetto del display anche se mi sembra stranissimo... Il chip dell'i2c è PCF8574AT, la versione del mio compilatore Arduino è la 1.6.9!
Vi ringrazio in anticipo, spero riusciate ad aiutarmi perche non so proprio dove andare a parare
Sta arrivando Guglielmo ad aiutarti
As_Needed:
Sta arrivando Guglielmo ad aiutarti
Spiritoso ....
>francesco9632: essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.
Guglielmo
Solo una volta che ti sei presentato vedi anche che non faccia falso contatto e regola il trimmer dietro per vedere se magari ha una luminosità troppo bassa e poi magari posta anche il codice che usi e il link della libreria che usi
IDE 1.6.5 putroppo è la soluzione migliore anche se non la più elegante al problema
aster94:
IDE 1.6.5 putroppo è la soluzione migliore anche se non la più elegante al problema
Ma non diciamo cose errate!! Primo, io e tanti altri del forum abbiamo diversi moduli e funzionano benissimo con IDE ultimo, e con quelle librerie citate. Secondo, cosa c'entra l'IDE ? Se tu riesci solo con versione 1.6.5 hai tu problemi a configurare la 1.6.9, non dare suggerimenti fuorvianti, per favore.
@francesco,
1.hai dato l'indirizzo I2C giusto ? Hai usato lo sketch I2CScanner per trovare l'indirizzo corretto ?
2.alcuni moduli cinesi I2C (si basano quasi tutti su quel chip PCF) mappano i pin in maniera non standard e quindi i parametri da passare alla libreria cambiano
esempio di un mio modulino non standard, devo passare questi parametri:
// i2c_addr,EN,RW,RS,D4,D5,D6,D7,Backlight, POLARITY
LiquidCrystal_I2C lcd(0x26, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
nid69ita:
Ma non diciamo cose errate!! Io e tanti altri del forum abbiamo diversi moduli e funzionano benissimo con IDE ultimo, e con molte librerie.
@francesco, hai dato l'indirizzo I2C giusto ? Hai usato lo sketch I2CScanner per trovare l'indirizzo corretto ?
Infatti, con la nuova versione ci sono molte librerie funzionanti!
Scusate, sono stato sbadato, avrei dovuto leggere il regolamento subito dopo essermi registrato... Spero possiate perdonarmi
Comunque... Per completare la mia domanda, posso aggiungere che uso arduino UNO, ho provato a regolare il trimmer ma l'unico risultato che ottengo sono semplicemente i pixel che si colorano di bianco a formare la matrice 16x2 del display!
Comunque il mio codice è semplicemente il codice di esempio della libreria che ho usato, ossia questo:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
}
La libreria in uso è quella che si trova nel sito di arduino: Arduino Playground - LCDi2c
Scusate per la non-presentazione e grazie in anticipo per l'aiuto!
Come ti è stato detto, probabilmente quello dell'esempio (0x3F) NON è l'indirizzo I2C del tuo display ...
... usa I2CScanner per trovare quale è
Guglielmo
usa i2c scanner come consigliato
beh allora spiegatemi voi perchè a me con indirizzo giusto e mezzora di prove con varie librerie, non mi funzionava. Come a me a vari altri utenti sul forum in inglese è stata consigliato di downgradare l ide
Chiedi a chi ti ha dato quel consiglio !! Nel forum chi scrive sono altri utenti come te e me. Non sò chi ti ha dato quel consiglio. Forse usi una libreria vecchia che ha problemi con IDE nuovo. Ripeto le librerie I2C per lcd aggiornate non danno problemi.
Ricordo vagamente una discussione con un consiglio di modifica dentro la lib vecchia per compatibilità con nuovo IDE (mi pare consiglio di Brunello, il ritorno di un parametro). Forse è quello il problema.
aster94:
beh allora spiegatemi voi perchè a me con indirizzo giusto e mezzora di prove con varie librerie, non mi funzionava. Come a me a vari altri utenti sul forum in inglese è stata consigliato di downgradare l ide
C'era qualche altra cosa perché ho un'infinità di installazioni con LCD I2C (uso SOLO quelli I2C) e non ho mai avuto problemi con l'ultima versione dell'IDE.
I "consigli" sul downgradare l'IDE ... lasciano il tempo che trovano ...
... certo che se si usano librerie NON aggiornate, con gli ultimi IDE ci sono problemi, ma non è certo un problema dell'IDE, ma degli utenti che NON usano librerie up-to-date !
Guglielmo
>Nid ... mi hai anticipato
nid69ita:
@francesco,
1.hai dato l'indirizzo I2C giusto ? Hai usato lo sketch I2CScanner per trovare l'indirizzo corretto ?
2.alcuni moduli cinesi I2C (si basano quasi tutti su quel chip PCF) mappano i pin in maniera non standard e quindi i parametri da passare alla libreria cambiano.
gpb01:
Come ti è stato detto, probabilmente quello dell'esempio (0x3F) NON è l'indirizzo I2C del tuo display ...
... usa I2CScanner per trovare quale èGuglielmo
Si ho usato un i2C scanner per trovare l'indirizzo ed è proprio quello che ho scritto nel codice, 0x3F!
aster94:
IDE 1.6.5 putroppo è la soluzione migliore anche se non la più elegante al problema
Appunto come hai detto tu non è la soluzione più elegante... Penso che un buon programmatore debba saperli risolvere i problemi e non bypassarli! mi piacerebbe capire dove sta l'errore...
nid69ita:
@francesco,
2.alcuni moduli cinesi I2C (si basano quasi tutti su quel chip PCF) mappano i pin in maniera non standard e quindi i parametri da passare alla libreria cambiano
esempio di un mio modulino non standard, devo passare questi parametri:// i2c_addr,EN,RW,RS,D4,D5,D6,D7,Backlight, POLARITY
LiquidCrystal_I2C lcd(0x26, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
Mi quoto. Magari fai foto del modulino davanti e dietro. C'e' una sigla/marca ?
nid69ita:
Magari fai foto del modulino davanti e dietro. C'e' una sigla/marca ?
Ecco le foto del modulo!
Io non vedo nessuna sigla o marca... L'unica sigla che vedo è quella sul chip dell'i2c e ho gia scritto sopra!
La libreria in uso è quella che si trova nel sito di arduino: Arduino Playground - HomePage
Secondo me, sempre da quel link, la libreria corretta è la Generic CN type 2 PCF8574 (black)
Brunello:
Secondo me, sempre da quel link, la libreria corretta è la Generic CN type 2 PCF8574 (black)
Avevo provato anche quella... Nulla da fare non stampa niente
Scusa, ma perchè nella foto ci sono solo 3 fili collegati ?
nid69ita:
Scusa, ma perchè nella foto ci sono solo 3 fili collegati ?
Mi si sarà staccato girandolo, in una delle due infati ce ne sono quattro attaccati!
Comunque ho controllato e :
la libreria di Testato, funziona. Va preso l'ultima versione, aggiornata ieri
http://forum.arduino.cc/index.php?action=dlattach;topic=242423.0;attach=174890
Delle librerie presenti alla pagina Arduino Playground - LCDi2c la Generic CN type 2 PCF8574 (black) funziona a meta'. Ovvero stampa solo il primo carattere perche' non è stata aggiornata. Comunque si tratta di fare una piccola modifica
Oppure usare Questa libreria , dando come parametri
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);