Problemi con retroilluminazione LCD I2c

Cerchiamo di capirsi......

Tu hai un LCD seriale e uno sketch che usa un LCD I2C, questo perchè ( come dice anche nella descrizione della mowershield )

Questa versione del firmware sfrutta il Display in I2C, pertanto il display dovrà essere collegato direttamente ai pin sulla shield dedicati alla comunicazione I2C (SDA e SCL).

lo sketch è di una versione successiva, mentre tu hai ( era gia installato ) una versione precedente che usava appunto un LCD seriale.
Quindi, o ritrovi la versione precedente o usi appunto un LCD diverso

Scusate ancora ragazzi, in effetti questo robot ha subito un restailing dal primo che non usava arduino e quello dopo con arduino. Io ho costruito quello del volume di Luglio agosto 2014 e quindi ho seguito quel progetto. Vi mando la foto del display che è montato sulla mowerschield che a sua volta è montato su un motorschield che a sua volta è montato su arduino. Se vi serve vedere tutte e tre le schede staccate me lo dite che smonto il tutto. Vi allego la foto.
Ditemi se vi serve qualsiasi altra foto o dettaglio. Grazie.

Secondo me hai fatto una serie di copia/incolla in giro che hanno incasinato tutto …

Il tuo è un LCD seriale e NON I2C, il software original che si trovava allegato alla rivista difatti lo istanziava così:

// LCD does not send data back to the Arduino, only define the txPin
SoftwareSerial LCD = SoftwareSerial(0, LCD_pin);
int LCD_Page = 0;         // Page to display

… ovvero, usando la SoftwareSerial sul pin LCD_pin (che era definito come pin 13).

Tu, non so da dove, hai tirato fuori la libreria per i display I2C che, per ovvi motivi, NON può funzionare con i display seriali e viceversa, quindi … qualcuno qui dice “bugie” …

O hai un display “seriale” e NON può funzionare con la “LiquidCrystal_I2C” o hai un display I2C ed allora i collegamenti sono diversi … dicci tu … ::slight_smile:

Guglielmo

P.S.: Io ripartirei da capo con i files originali allegati alla rivista che … allego qui.

SolarMower.zip (14.3 KB)

Guglielmo, guarda che Lui ha un LCD seriale e che gli funziona perchè quando lo comprò, il firmware era già installato nel micro, non è che lo ha installato Lui.

Poi è stata fatta un'altra versione, con LCD I2C, ed è quella che si trova in giro

brunello22:
Guglielmo, guarda che Lui ha un LCD seriale e che gli funziona perchè quando lo comprò, il firmware era già installato nel micro, non è che lo ha installato Lui.

... e allora, per far andare tutto, basta che usa il software originale della rivista che ho anche messo in allegato e che è appunto fatto per il LCD seriale :slight_smile:

Comunque, il codice che invece ha allegato, usa un LCD I2C ... e non è possibile che quel software gli funzioni ... ::slight_smile:

Guglielmo

Vero...
Non avevo guardato il tuo allegato

Deve solo cambiare l'ultima riga del file SerLCD.ino

Vi ringrazio entrambi...ho premesso comunque che sono "ignorante in materia"!!!
Sicuramente è successo quello che dite voi. Ho fatto un po' di confusione non volendolo. Infatti adesso che mi ricordo, nel forum di PLC dove rispondeva l'Ingegnere Segatello ideatore del robot ai tanti utenti che lo avevano costruito, mise un nuovo firmware del robot con un aggiornamento. Ecco perché mi ritrovo qualcosa che non va, probabilmente c'è qualcosa di cambiato nello sketch e io da ignorante, l'ho caricato perché ripeto non sono tanto afferrato. Io ho eseguito il progetto sulla rivista e ho comperato i componenti dal sito di Futura e ritorno a dire che ho l'LCD con 3 fili che ho allegato in foto e che sullo sketch nella parte iniziale c'è riportato "LiquidCrystal_I2C" che come assodato non è un seriale (adesso ho capito la differenza...).
Adesso vi prego di aiutarmi, se foste così gentili avendo lo sketch e sapendo che ho un LCD seriale della SparkFun non potreste modificarmi lo sketch in modo che lo possa caricare correttamente?? Altrimenti finiamo che combino macelli su macelli!!!Ve ne sarei grato.

Scusa, ma al mio post #22 ti ho allegato il software ORIGINALE dell'epoca con il display a 3 fili (seriale) della Sparkfun, ovvero quello del progetto della rivista che hai allegato ... perché non ti va bene ?

Guglielmo

Scusate ma è stato scritto che devo cambiare l'ultima riga dello sketch... ecco perchè vi ho chiesto di modificarmelo.
Allora lo posso usare senza cambiare nulla???
Mi dite che ricollego le schede e ricarico il tutto così controllo se va o non va.

l'ultima riga del file serLCD.ino

void serLCDInit() 
{  
  LCD.begin(9600);
  backlightOff();
}

devi cambaiare da backlightOff();
a backlightOn();

ok grazie Brunello22, adesso provo il tutto.

Eccomi.
Effettivamente, caricato lo sketch che mi avete allegato, ho notato che non è presente il LiquidCrystal I2C bensì l'LCD seriale. Però non essendoci la libreria per il mio LCD nel file .zip, non ho potuto verificare il funzionamento del mio LCD. Le librerie caricate su Arduino sono quelle del LiquidCrystal I2C e non sono compatibili.
Comunque sta di fatto che ho caricato ugualmente lo sketch sul robot anche se non visualizzo le funzioni sul display mancante, giusto per verificare se funziona ed invece non funziona nulla, o quasi. In pratica all'accensione girano un attimino le ruote di trazione e poi non va più nulla. Quindi questo sketch, sebbene abbia un LCD seriale configurato non va. D'altronde la confusione c'è stata e tanta in quanto hanno fatto e modificato 3 volte questo progetto (rivista Elettronica In nr. 139 del 2009, 140 del 2009 e 187 del 2014).
A questo punto mi conviene acquistare un LCD I2C con modulo seriale I2C con i 4 fili e vediamo se poi funziona. Però dove li metto i 4 fili se il connettore sulla schield ne ha 3?? Boh.
E' corretto il mio discorso dell'acquisto?? Grazie.

Burida62:
... Però non essendoci la libreria per il mio LCD nel file .zip, non ho potuto verificare il funzionamento del mio LCD. ...

E' inutile che la cerchi, NON occorre alcuna libreria specifica per LCD ... quel tipo di LCD usa la porta seriale e quindi la SotwareSerial !!!

TUTTO quello che è neccessario si trova nel .zip che ti ho allegato e che è quello fornito con la rivista 187 (ovvero l'ultima versione).

Forse ci sarà da vedere i parametri di configurazione, che si trovano in "Configuration.h" ... ::slight_smile:


Guglielmo

Eh, ma allora se non ha bisogno di librerie perché non mi funziona una volta collegata ad Arduino?
Io ho caricato lo sketch che mi ha allegato e il display non funziona comunque.
I 3 fili del display li ho caricati nel seguente modo:

  • nero su GND power Arduino;
  • rosso su +5V power Arduino;
  • giallo su TX1 digital Arduino (ho provato anche su A4 Analog In di Arduino).
    Ho anche modificato l'ultima stringa di LCDserial dello sketch da Off a On ma non cambia nulla.
    Boh.

Adesso ho capito una cosa.

Sul forum di futurashop dove ci sono le discussioni (Delucidazioni robot tagliaerba solare - Web Forum Futura Elettronica / Elettronica In) nel 2010 l'Ing. Segatello mise un aggiornamento del Firmware denominato "tagliaerba2_V3.hex" che correggeva alcuni errori ed io dopo un lungo cercare riuscii a convertirlo in .ino per caricarlo. Ma adesso, alla luce di tutto sto tram tram rivedendo il vecchio post mi sono accorto di una cosa. Che quell'aggiornamento del firmware postato il 21 maggio 2010 non poteva mai essere un aggiornamento al progetto del robot presente sulla rivista del 2014 (nr.187) che doveva essere ancora "partorito" ma era un aggiornamento del progetto del 2009 che utilizzava un PIC16F876A e un display I2C. Quindi io mi ritrovo caricato il firmware aggiornato del primo progetto che non prevedeva Arduino e il display seriale e i componenti del 2014 sulla rivista nr. 187.
Posso dirlo?? Che casino che ho fatto.

Sono incasinato. Devo riflettere e pensare cosa fare. Voi che ne dite?

boh...

Comunque

I 3 fili del display li ho caricati nel seguente modo:

  • nero su GND power Arduino;
  • rosso su +5V power Arduino;
  • giallo su TX1 digital Arduino (ho provato anche su A4 Analog In di Arduino).

Scusa, ma l'LCD non è collegato con il suo connettore ?
Perche' se non erro il TX è sul pin 13 di Arduino

Hai ragione Brunello22, mi sono rivisto il circuito PCB sulla rivista e ho visto che il filo giallo è da metterlo sul Digital PIN 13. Ho provato e funziona perfettamente. Ho dovuto regolare solo il contrasto che non mi faceva vedere i caratteri.
Però io dico una cosa: sul sito di Futura Elettronica mettono i componenti da acquistare per il progetto della rivista nr. 187 del 2014 incluso il display che invece è un I2C e poi sotto sulla lista dei componenti mi mettono anche lo sketch di esempio per collegarlo ad arduino.
E' questo che mi ha ingannato perché sul volume del 2014 lo sketch del SolarMower riportava un LCD seriale mentre sul sito mi mettevano quello I2C. Ecco perché avendo notato questa differenza e che sul forum di Futura mi mettevano che c'era un aggiornamento del firmware ho applicato quello non avendo visto che il post era del 2010 mentre il nuovo progetto in Arduino era del 2014. Che storie!!!
Se non avessi avuto voi del forum avrei abbandonato tutto perché sebbene avessi chiesto aiuto al forum di Futura mai nessuno mi ha risposto e neanche l'ingegnere che aveva ideato il progetto.
Adesso devo fare mente locale e sistemare il tutto sperando che l'altro problema riscontrato in fase di test si risolva e cioé che non riesco a regolare il minimo per quanto riguarda il motore da taglio.
Io seguo tutte le indicazioni come da rivista...

""""""La procedura di test dell’ESC permette di calibrare i valori di massimo e minimo; notate che non si tratta di una sequenza di programmazione, per la quale invece occorre fare riferimento allo specifico manuale dell’ESC da voi utilizzato. La procedura di test dell’ESC è la seguente.

  1. Entrati in procedura test ESC, impostare il cutPower al massimo utilizzando il pulsante PUP (100%=2.000 μs).
  2. Alimentare l’ESC ed attendere la configurazione del punto di massimo (si udrà l’apposito segnale acustico).
  3. Impostare cutPower al minimo utilizzando il pulsante PDW (si udirà un apposito segnale acustico).
    Fatto ciò, la calibrazione è terminata. L’ESC imposterà i limiti in modo automatico in un range 10-30% per il minimo e 70-100% per il massimo."""""

però la regolazione del MAX e del MIN sembrerebbe riuscire perché dopo aver impostato al 100% il valore del MAX e alimentando l'ESC sento il suono di conferma, poi abbasso i valori fino allo 0 per ottenere quelli del MIN ma niente. Quando spengo e riaccendo il robot e parte tutto il motore gira subito alla massima velocità, il robot fa per muoversi e poi si blocca tutto con l'errore "CUT ERROR" che significa troppo assorbimento del motore da taglio. Ho chiamato Futura per chiedere delucidazioni e hanno detto ...
"""""ll problema del cut error è dovuto all'eccessivo consumo del motore della lama, infatti è stato sostituito con uno meno potente. La batteria entra in protezione quando il motore cerca di partire, e le da l'errore.""""
Allora ho acquistato sul loro sito un altro motore meno potente consigliato da loro e sono in attesa di riceverlo e collaudarlo.
Eventualmente ci sentiamo e scusatemi se vi ho disturbati e/o vi disturberò ancora ma...mi avete salvato la vita. Grazie.

Burida62:
... sul sito di Futura Elettronica mettono i componenti da acquistare per il progetto della rivista nr. 187 del 2014 incluso il display che invece è un I2C ...

Veramente sulla rivista 187 io vedo solo parlare di display SERIALE e mai di I2C ... ::slight_smile:

Mi indichi dove trovo le indicazioni del display I2C ? ? ?

Guglielmo

qui

Ma quella è la descrizione di un prodotto sullo shop, NON l'articolo sulla rivista. L'articolo sulla rivista riporta correttamente tutto (LCD Seriale), la descrizione sullo shop è effettivamente errata ma, basta guardare la documentazione indicata nella stessa pagina, per vedere che in realtà NON si parla di LCD I2C bensi di LCD Seriale.

La cosa migliore da fare, in questi casi, è contattare telefonicamente il supporto tecnico (negli orari indicati) e segnalare l'errore sullo shop ... ::slight_smile:

Guglielmo

Grazie, l'ho appena fatto. Ci risentiamo se non riesco a risolvere il problema del CUT ERROR.
Grazie ancora Brunello22.