Modifica della luminosità su uno schermo LCD Hitachi HD44780


11

Sto finendo un progetto, una sveglia a LED. Visto che questo è un orologio, devo avere un modo per conservare il potere, che in questo momento il mio Uno R3 + sta mangiando come un politico. La mia domanda è: come posso spegnere lo schermo o spegnere la retroilluminazione utilizzando il software solo su uno schermo LCD Hitachi HD44780 16x2? O come posso impostare una modalità di sospensione su un componente? Il modo in cui ho intenzione di spegnerlo è con un telemetro ad ultrasuoni, se mi avvicino si accende lo schermo. Se qualcosa che dico non ha senso, chiedimi di chiarire, sono un po 'di fretta.


Il fatto che ciò possa essere fatto dipende interamente da come è collegato lo schermo LCD. Il set di comandi HD44780 non prevede disposizioni per il controllo della retroilluminazione. Dovresti aggiungere un tuo meccanismo esterno per controllare la retroilluminazione.
Connor Wolf,

Risposte:


8

Posizionare un transistor in serie con un resistore 33R tra il pin LCD 16 (massa della retroilluminazione) e GND e accendere e spegnere il transistor con un pin digitale. In questo modo sarai in grado di accendere e spegnere la retroilluminazione.

Puoi avere un controllo più fine sulla luminosità se metti un impulso PWM su detto pin. Basta chiamare analogWrite(D3, value)dov'è valuela luminosità desiderata.

Lo schema è sotto. Proviene dalla resa LCD Freetronics 16x2 .

Controllo luminosità LCD


+1 per lo schema, anche se non sono sicuro del motivo per cui ci sono due resistori (R7 e R8).
Madivad,

1
@Madivad - Immagino che sia per aumentare la massima potenza dissipata che i resistori possono sopportare. Le due resistenze 68R in parallelo producono una resistenza 34R equivalente ma raddoppiano la potenza massima che può essere dissipata attraverso un singolo resistore. Non ricordo quali resistori sono stati raccomandati da Freetronics, ma nel mio caso ho usato due resistori da 1 / 4W 68R e la scheda funziona bene. Inoltre, suppongo che i resistori 68R siano più comuni. Questo è certamente vero per me dato che ho un sacco di resistori 68R nei miei cassonetti e nessuno 33R.
Ricardo,

So che questo è "vecchio", ma spero che qualcuno se ne accorga ... Ho difficoltà a capire come si collega il transistor (poiché non ho familiarità con l'icona sopra per il transistor), dove fa E, B, C connettersi a?
codificatore di guerra

@wara - Questo è un transistor ad effetto di campo (FET), non un BJT. Quindi cercherai di connetterne il drain, la sorgente e il gate. In ogni caso, otterrai un aiuto migliore ponendo una domanda separata, collegandoti a questa.
Ricardo,

5

Invece di collegare la retroilluminazione direttamente a V + e GND, collegarla a un pin PWM (potrebbe essere necessario utilizzare un driver separato se il pin non è in grado di generare / affondare abbastanza corrente). Questo ti permetterà di controllare la luminosità tramite analogWrite().

Spegnere il display LCD ( LiquidCrystal::noDisplay()) quando non viene utilizzato attivamente. Il contenuto rimarrà in memoria ma i segmenti LCD non saranno guidati.

Impostare i vari bit nel PRRregistro per disabilitare tutte le periferiche non utilizzate.

E non dimenticare di mettere in pausa la CPU quando non è necessario eseguirla . Vedere la sezione "Gestione dell'alimentazione e modalità di sospensione" del foglio dati per ulteriori informazioni su questo e il PRRregistro, nonché la <avr/sleep.h>documentazione per AVR Libc.


3
Dormire nell'MCU è inutile, dal momento che il resto delle parti su uno comune consuma così tanta energia da non ridurre in modo significativo il consumo complessivo ..
Connor Wolf

2
Davvero, se vuoi davvero ottenere un arduino a basso consumo, hai bisogno di un arduino pro (o di qualsiasi altra scheda senza USB-seriale integrata), e quindi dovresti mettere un regolatore con un assorbimento di corrente abbastanza basso su di esso. È un po 'coinvolto.
Connor Wolf,

Assolutamente. Qualcuno che vuole conservare fino all'ultimo bit di energia progetterà la propria scheda e specificherà i propri componenti di conseguenza.
Ignacio Vazquez-Abrams,

Sì, ma il mio punto è che non puoi nemmeno ottenere un risparmio di potenza significativamente rilevante sulla maggior parte delle schede Arduino, poiché anche i loro vreg hanno orribili correnti di riposo (2 ma +, IIRC). Poi c'è FTDI / ATmega16U2, che non è possibile spegnere, ecc ....
Connor Wolf

@ Mr.Floppy: IOW, scegli qualcos'altro. Qualcosa con meno pezzi.
Ignacio Vazquez-Abrams,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.