LCD i2c 16x2. Backlight fuori controllo

Buonasera a tutti. Pochi giorni fà ho acquistato due display, quello in oggetto ed uno identico ma 20x4. Hanno funzionato immediatamente entrambi e su tutto. Finalmente mi sono apprestato ad affrontare la regolazione della retroilluminazione del display. Tolto il jumper della retroilluminazione il display 20x4, così come mi aspettavo, si è spento e posizionando oppurtuni valori di resistenza varia l’intensità. Stessa cosa non accade su quello 16x2 che al contrario rimane perfettamente illuminato come se non avessi tolto il jumper. Le impostazioni da codice della funzione lcd.Backlight(HIGH/LOW) vengono correttamente eseguite ed hanno effetto. Credo mi sia capitato un display difettoso, ma prima di restituirlo volevo chiedervi se avete indicazioni in merito.
Grazie

Posta un link al display incriminato (dove lo hai comprato).

Buonasera. Fornisco di seguito
LCD seriale ICQUANZX IIC I2C TWI 1602 16x2
Grazie per l’interessamento :slightly_smiling_face: :+1:

Quel lcd ha saldato un modulo per farlo diventare I2C, quindi è quel modulo che gestisce il contrasto, visto che ha i pin saldati.
Dalla descrizione il contrasto viene regolato da quel potenziometro, non capisco che interento HW vuoi fare.

P.S. Ma anche il 20x4 ha un modulo simile (I2C) ?

Perfettamente corretto ciò che dici… forse non altrettanto quello che ho scritto. Cerco di spiegarmi meglio. Effettivamente il contrasto viene regolato dal potenziometro posto sul modulo I2C, e quello funziona correttamente. La retroilluminazione o backlight che dir si voglia è ottenuta da un led posto sul lato del display il cui circuito viene ntercettato dal jumper posto sullo modulo stesso. Togliendo il jumper e interponendo un potenziometro o resisistenze di specifico valore si può variare l’intensità della retroilluminazione. Sul display 20x4 che ha il modulo identico a quello 16x2, togliendo il jumper il led si spenge e inserendo opportuna resistenza si riaccende con intensità minore. L’altro, il 16x2, togliendo il jumper rimane perfettamente e pienamente illuminato.

Ma e da software usi le due funzioni backlight() e noBacklight() … hanno un qualche effetto? E la funzione setBacklight(dimvalue)?

Guglielmo

Buonasera Guglielmo. Si … la prima prova che ho fatto è stata quella. Le funzioni seBacklight(dimValue) funzionano correttamente ma solo per ON/OFF.

No, aspetta, ON e OFF si dovrebbe fare con backlight() e noBacklight() mentre la setBacklight(dimvalue) dovrebbe variare il backlight … però, dalla documentazione:

Set the backlight off/on, or set Backlight brightness (0-255)
If the display only has the option to turn the backlight on and off: 0 = off, >0 = on

Quindi, forse, NON c’è la regolazione.

Guglielmo

Altra mia omissione … sto utilizzando la libreria #include <LiquidCrystal_I2C.h>, per la quale ho scoperto non è necessario fare la #include<wire.h> perché già inclusa nella precedente.
Io ho provato la funzione lcd.setBacklight(HIGH) e lcd.setBacklight(LOW) che effettivamente accendono o spengono la retroilluminazione. Mi risulta che da software non è dimmabile se non intervenendo via hardware e interponendo una resistenza al posto del jumper.

Lo schema che ho trovato è quello sulla sinistra, mentre quello sulla destra l’ho modificato immaginando il punto dove possa trovarsi il jumper incriminato.

Per me l’unica spiegazione è che i due moduli I2C non sono identici.
Tieni conto che dalla Cina con furore arriva di tutto e di più. :grinning_face_with_smiling_eyes:

:rofl: :rofl: Infatti sono sicuro sia difettoso… Comunque grazie grazie.