Cambiar el brillo en una pantalla LCD Hitachi HD44780

11

Estoy terminando un proyecto: un reloj despertador LED para juegos. Como se trata de un reloj, necesito tener una forma de conservar el poder, que en este momento mi Uno R3 + se está comiendo como un político. Mi pregunta es, ¿cómo apago la pantalla o apago la luz de fondo usando un software solo en una pantalla LCD Hitachi HD44780 16x2? ¿O cómo configuro un modo de suspensión en un componente? La forma en que planeo apagarlo es con un buscador de rango ultrasónico, si me acerco enciende la pantalla. Si algo de lo que digo no tiene sentido, pídeme que lo aclare, tengo un poco de prisa.

Señor disquete
fuente
Si esto se puede hacer depende completamente de cómo se conecte la pantalla LCD. El conjunto de comandos HD44780 no tiene disposiciones para el control de la luz de fondo. Debería agregar algún mecanismo externo propio para controlar la luz de fondo.
Connor Wolf

Respuestas:

8

Coloque un transistor en serie con una resistencia 33R entre el pin 16 de la pantalla LCD (tierra de luz de fondo) y GND y encienda y apague el transistor con un pin digital. De esa manera podrá encender y apagar la luz de fondo.

Puede tener un control más fino sobre el brillo si coloca un pulso PWM en dicho pin. Simplemente llame a analogWrite(D3, value)dónde valueestá el brillo deseado.

Los esquemas están abajo. Es de Freetronics 16x2 LCD SHield .

Control de brillo de LCD

Ricardo
fuente
+1 para el esquema, aunque no estoy seguro de por qué hay dos resistencias (R7 y R8).
Madivad
1
@Madivad: supongo que es para aumentar la potencia disipada máxima que las resistencias pueden tomar. Las dos resistencias 68R en paralelo dan como resultado una resistencia 34R equivalente pero duplica la potencia máxima que se puede disipar a través de una sola resistencia. No recuerdo qué resistencias recomendó Freetronics, pero en mi caso, he usado dos resistencias 68R de 1 / 4W y la placa funciona bien. Además, supongo que las resistencias 68R son más comunes. Eso ciertamente es cierto para mí, ya que tengo muchas resistencias 68R en mis contenedores y ninguna 33R.
Ricardo
Sé que esto es "viejo", pero espero que alguien se dé cuenta de esto ... Estoy teniendo problemas para entender cómo se conecta el transistor (ya que no estoy familiarizado con el icono de arriba para el transistor), ¿dónde está el E, B, C conectar a?
codificador de ira
@wara - Eso es un transistor de efecto de campo (FET), no un BJT. Por lo tanto, buscará conectar su drenaje, fuente y puerta. En cualquier caso, obtendrá una mejor ayuda haciendo una pregunta por separado, vinculando a esta.
Ricardo
5

En lugar de vincular la luz de fondo directamente a V + y GND, conéctela a un pin PWM (es posible que necesite usar un controlador separado si el pin no puede generar / hundir suficiente corriente). Esto le permitirá controlar el brillo a través de analogWrite().

Apague la pantalla LCD ( LiquidCrystal::noDisplay()) cuando no esté en uso. El contenido permanecerá en la memoria, pero los segmentos de la pantalla LCD no serán controlados.

Establezca los diversos bits en el PRRregistro para deshabilitar cualquier periférico que no use.

Y no olvide dormir la CPU cuando no necesite ejecutarse . Consulte la sección "Administración de energía y modos de suspensión" de la hoja de datos para obtener más información sobre esto y el PRRregistro, así como la <avr/sleep.h>documentación para AVR Libc.

Ignacio Vazquez-Abrams
fuente
3
Dormir el MCU no tiene sentido, ya que el resto de las partes en uno común consumen tanta energía que no proporciona ninguna reducción significativa en el consumo general ...
Connor Wolf
2
Realmente, si desea que un arduino sea de baja potencia, necesita un arduino pro (o cualquier otra placa sin serie USB incorporada), y luego necesitaría colocar un regulador con un consumo de corriente de reposo bastante bajo en eso. Es un poco complicado.
Connor Wolf
Absolutamente. Alguien que quiera conservar hasta el último bit de energía diseñará su propia placa y especificará sus componentes en consecuencia.
Ignacio Vazquez-Abrams
Sí, pero mi punto es que ni siquiera puedes obtener una conservación de energía significativamente relevante en la mayoría de las placas arduino, ya que incluso sus vregs tienen una corriente de reposo horrible (2 ma +, IIRC). Luego está el FTDI / ATmega16U2, que no puede apagar, etc.
Connor Wolf
@ Mr.Floppy: IOW, elige otra cosa. Algo con menos piezas.
Ignacio Vazquez-Abrams