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.
arduino-uno
lcd
Señor disquete
fuente
fuente
Respuestas:
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óndevalue
está el brillo deseado.Los esquemas están abajo. Es de Freetronics 16x2 LCD SHield .
fuente
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
PRR
registro 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
PRR
registro, así como la<avr/sleep.h>
documentación para AVR Libc.fuente