Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Inizializzazione display LCD

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Inizializzazione display LCD

Messaggioda Foto Utenteapollo17 » 13 lug 2023, 16:19

Salve ho necessità di accedere e spegnere, un display LCD I2c collegato ad Arduino, in pratica tolgo o collego alimentazione sul positivo di LCD, senza creare nel contatto effettuato la benchè minima spuria.
In pratica se spengo il display e lo riaccendo con interruutore o da un BC ho sul video segni inderiderati. Ho tentao di reinizializzare lcd ciclicamente ma ho sfarfallii o rapidi lampeggi indesiderati. Quindi volevo risolvere a monte tipo interruttore elettronico antirimbalzo. Grazie
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

0
voti

[2] Re: Inizializzazione display LCD

Messaggioda Foto UtenteMarcoD » 13 lug 2023, 17:04

Quando accendi il display LCD con comando seriale per la prima volta (prima che arduino scriva dei caratteri) compaiono caratteri spuri ?
Se si, c'è poco da fare, occorre comandare un reset da arduino, oppure inizializzare scrivendo tutti caratteri blank.

Per eliminare il transitorio prova a mettere un condensatore da
1 o 10 uF ai capi dei contatti di alimentazione del display.
Forse così si eliminano rimbalzi di tensione.

O forse puoi soltanto spegnere l'illuminazione del display, dovrebbe consumare poco.

oppure puoi aggiungere un ingresso digitale ad arduino con il significato di display acceso, solo quando acceso scrive dei messaggi partendo dall'inizio messaggio.

O_/
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

1
voti

[3] Re: Inizializzazione display LCD

Messaggioda Foto UtenteThEnGi » 13 lug 2023, 17:34

Immagino tu stia usano il classico display 2x20 e multiplexer I2C
Tutte le volte che spegni il display ovvero vai a rimuovere l'alimentazione devi re inizializare il display, altrimenti vai a leggere il contenuto della memoria che sono caratteri a caso. do per scontatto che la tua libreria riscriva tutte le caselle come bianche.....
Insomma il display (in realtà l'integrato che controlla il display) non tiene in memoria i caratteri quando disalimentato.

Se puoi aspettare qualche istante basta reinizializarlo e ricaricare i caratteri, altrimenti come consigliato da Foto UtenteMarcoD intervieni sulla retroilluminazione per ridurre il consumo. Il display in se consuma relativamente poco.

Per la tua soluzione Transistor e condensatore, un ottimo interruttore antirimbalzo



Così è a logica inversa, pin UC alto = display spento.

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

1
voti

[4] Re: Inizializzazione display LCD

Messaggioda Foto UtenteMarcoD » 13 lug 2023, 18:08



Aggiungerei una resistenza per limitare la corrente nella base.
Forse si possono togliere i condensatori elettrolitici.
O_/
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

1
voti

[5] Re: Inizializzazione display LCD

Messaggioda Foto UtenteThEnGi » 13 lug 2023, 18:16

My bad, ho ragionato come se fosse un mosfet #-o

L'eletrolitico sul transistor è li per fare circuito RC (in accopiata a limitare la corrente, NDR la resistenza non il condensatore :mrgreen: ), si fa lavorare per un pochino in lineare i transistor in modo da avere una salita a rampa. l'altro è di livellamento classico se non previsto nel resto del circuito. Ma pensandoci è tutto omettibile ! :ok:

Poi sarebbe bello sapere che uC OP stà usando, magari si può pilotare direttamente il transistor NPN o un Mosfet

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

1
voti

[6] Re: Inizializzazione display LCD

Messaggioda Foto UtenteThEnGi » 13 lug 2023, 18:37



Ripropongo lo schema, la caduta di tensione sul PNP potrebbe essere troppa per far funzionare correttamente il display. Sostituito con un Mosfet P (Logic Level)

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

0
voti

[7] Re: Inizializzazione display LCD

Messaggioda Foto Utenteapollo17 » 14 lug 2023, 11:52

Grazie a tutti, molto chiare ed esauriente le vostre risposte.
Vedo probelmatiche, nel senso che se mi funziona utilizzando anche circuito antirimbalzo, saro fortunato, provo prima con semplice condensatore in parallelo.
Il problema all base è che vado a staccare, in modo brutale, anche se fatto con un BC o mosfet il dispaly durante un conteggio, quindi all accensione mi trovo si il conteggio aggiornato, ma anche altri caratteri non graditi.

Provato a fare inizializiazione ciclica permamente, in modo tale che quando collego LCD, ho i dati puliti, ma ahimè e anche giustamente vedo il refresh... leggero sfarfallamento.
Se spengo il display con i vari comandi a disposizione, nolcd, lcd,nobacklight ecc ecc di fatto LCd non è spento completamente al 100%.

Se utilizzo un sensore PIR, e gestisco un sketch che mi accende ON/OFF dal pos di lcd,esempio PIN 12 ?
In pratica LCD è sempre veramente spento e in presenza di una persona si accende e solo ad ogni accensione inizializzo LCD. Da provare.. ? Se si sul PIN 12 piloto direttamente il display o metto in mezzo un BC ? Grazie
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

0
voti

[8] Re: Inizializzazione display LCD

Messaggioda Foto UtenteThEnGi » 14 lug 2023, 14:58

Ovviamente ad ogni refresh avrai uno sfarfallio non è un monitor oled a 120Hz, anche quando aggiorni tanti caratteri sembra una "macchina da scrivere" perché il sistema aggiorna un carattere alla volta.

Il display non gestire il conteggio.... il uC lo gestisce, stai facendo confuzzzzione !

Dipende sempre da cosa intendi per "spento" ma soprattutto perché lo vuoi spento ?
Puoi descrivere il progetto per intero e magare postare un po' di codice ?(pin 12 di quale uC ?)
Adesso è saltato fuori anche il sensore PIR :?:

Se lo vuoi spegnere per risparmiare corrente perché la fonte d'energia è una batteria e il lo schermo deve rimanenre acceso solo un tempo limitato farei cosi:

Quando esci "dall'ibernazione" porti a valore basso il pin del uC, aspetti un pochino, invii il comando di inizializazione, aspetti, invii tutti i caratteri che c'erano prima (che ti eri salvato prima di entrare in ibernazione).

Però senza informazioni sono tutte ipotesi, se come immagino usi il classico arduino a 5V ti basta il mosfet e la resistenza......

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

0
voti

[9] Re: Inizializzazione display LCD

Messaggioda Foto Utenteapollo17 » 15 lug 2023, 10:04

Grazie ancora una volta per i preziosi consigli a tutti,
fatto test e tutti sono andati a buon fine, sia con BC per togliere VCC a LCd sia utilizzando e migliorando il contatto a ancor di più con condensatore poliestere e ceramico da 10000pF. Ma a volta ache con ini fuori dal conteggio in modo aleatorio ho il display sporco, sia con utilizzo del pir sia senza ma sempre con BC. Voglio spegnere il dispaly solo per motivi di dare "più vita allo stesso" sopratutto la parte LCD più che la retroilluminazione.
Poi alla fine ho trovato adesso e sotto test la seguente soluzione. Con PIR con il suo PIN out collegato ad UNo e i trimmer entrambi al max, sensibilità e timer, e ponticello messo su repeat. Gestisco in pratica il display, tutto via sw con if se il sensore rileva la presenza di una persona ON dispaly e se non c'è nessun display OFF con timer di 20 minuti ed essendo "ricaricabile" spegne LCD dopo essere andato via dalla visuale del pir dopo 20 minuti. Spero di essere stato chiaro. Per accendere e spegnere
lcd.display();/ accendo _____________________________________
lcd.setBacklight(HIGH);
lcd.setBacklight(LOW); / spengo
lcd.noDisplay();
Se spento rimane solo il led rosso acceso del LCD, in pratica (prova del 9) assorbe in ON 46mA in OFF 4,6 mA
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti