Power saving with LCD screen.

Hi,
I have an arduino based data logger with an LCD screen wired up like this.....

The logger runs off battery power in a remote location for days on end, I need the LCD to be on when I check the unit every week, but for the rest of the time I want the LCD to be off just to save power.

I had thought that I could simply add an on/off switch to the 5v supply to the LCD (the Vdd line on the circuit diagram). For some reason, this doesn't seem to work as expected. With the LCD on I can power up the data logger and it will happily boot up and start logging with the LCD working fine. If I flick the switch the LCD will turn off as expected and the logger will continue logging (I know this because the file it logs to continues to grow correctly)

The problem comes when I attempt to switch the LCD back on again, I flick the switch but the LCD remains blank, the only way I can turn the screen on again is to cycle the power for the whole unit, the logger and screen together. I seems I can't just turn the screen on and off on it's own.

Advice please.

The LCD needs to be initialised by the Arduino by calling 'begin()' before use.
You can use "display()" and "noDisplay()" to turn the display on and off, but if you cut the power to the LCD altogether it needs to be initialised again.
I guess you could monitor your LCD power switch from the program, then call 'begin()' again when the LCD power is turned back on.

The big drawback with unpowering the LCD, though, is that then you'll have a high input on the LCD's RS pin from the Arduino while the LCD isn't powered. This isn't good for CMOS chips like the HD44780U, and could potentially damage/kill it. Perhaps a series resistor in the RS line would prevent this, 10K to 22K. (As high as you can get away with.)

Add a button that's calls a LCD initialization function when first pressed and a LCD shutdown function when pressed again.

Did you measure the current draw with/without LCD, WITH BACKLIGHT OFF.
It could be next to nothing.
If so, then just turn the backlight on/off.
Leo..

Fulliautomatix:
I seems I can't just turn the screen on and off on it's own.

That's true, the LCD controller needs an initialization sequence of commands to work. So after powering the LCD, you will have to reset the LCD controller and send initializing commands to work in 4-bit mode.

But where is the problem:

  • Arduino UNO current consumption: ca. 55 mA
  • LCD current consumtion w/o backlight: ca. 5 mA
  • LCD current consumtion with backlight: ca. 23 mA

There are two types of such text LCDs:

  • LCDs which display black characters
  • LCDs which display white characters

All LCDs which display white characters must have the backlight set to ON when reading them.

All LCDs which display black characters will need no backlight when reading them.

So what about that:

  1. If you have a "white-on-color" LCD, just switch the backlight power on/off to save 18 mA
  2. If you have a "black-on-color" LCD, just don't use any backlight at all
    (use a battery torch to read the black character LCD in dim environment with no backlight)

But where is the problem:

  • Arduino UNO current consumption: ca. 55 mA
  • LCD current consumtion w/o backlight: ca. 5 mA
  • LCD current consumtion with backlight: ca. 23 mA

Ahh - didn't think to do a comparative test. I've been running the LCD without the backlight anyway, so it seems like trying to switch off the LCD may not really save much amperage in the first place.

As always, thanks for everyone's contribution!

Fulliautomatix:
Ahh - didn't think to do a comparative test. I've been running the LCD without the backlight anyway, so it seems like trying to switch off the LCD may not really save much amperage in the first place.

As always, thanks for everyone's contribution!

If you need to run battery powered devices for more than a few hours or perhaps days from battery power, you cannot use developer boards like UNO, LEONARDO or MEGA or such.

In many cases you will have to think about your own Atmega328 based circuit design, which is optimized for your battery application and requirements.