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
Inizializzazione display LCD
9 messaggi
• Pagina 1 di 1
0
voti
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.

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.

1
voti
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
MarcoD 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.

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
Per la tua soluzione Transistor e condensatore, un ottimo interruttore antirimbalzo
Così è a logica inversa, pin UC alto = display spento.

1
voti
Aggiungerei una resistenza per limitare la corrente nella base.
Forse si possono togliere i condensatori elettrolitici.

1
voti
My bad, ho ragionato come se fosse un mosfet
L'eletrolitico sul transistor è li per fare circuito RC (in accopiata a limitare la corrente, NDR la resistenza non il condensatore
), 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 !
Poi sarebbe bello sapere che uC OP stà usando, magari si può pilotare direttamente il transistor NPN o un Mosfet

L'eletrolitico sul transistor è li per fare circuito RC (in accopiata a limitare la corrente, NDR la resistenza non il condensatore
Poi sarebbe bello sapere che uC OP stà usando, magari si può pilotare direttamente il transistor NPN o un Mosfet

1
voti
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)

0
voti
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
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
0
voti
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......

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......

0
voti
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
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
9 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Google [Bot] e 4 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)







