Turn off LCD from code: only backlight or also power? Pin output or transistors?

Hi all,

I'm trying to turn an LCD screen ON or OFF upon pushing a button. In this thread, it is mentioned that a digital pin could be used as an output connected to the backlight pin of the LCD in order to turn it on or off. In some tutorials however, it was suggested to use an analog pin. Since I'm only using HIGH or LOW this doesn't matter the least, right?

Also, on 2 other threads (this and that), it is mentioned that the LCD can draw power from the data pins, even if the power lines are connected via transistors.

So, what do you think would be the most effective but simple way to save power? Only cutting the backlight or shutting the whole LCD down and setting it up again? The application is intended to last during a whole day and the screen is only necessary a couple of minutes per day, just to change settings or check process.


It may be possible to control the backlight brightness by PWM, but on/off will work as well.

I wouldn’t turn off the LCD power, instead chose a low power module that can be on for years with only a coin cell. The signal levels on the lines of a parallel display may matter in sleep mode, find out yourself. Dunno about I2C displays, they may have a built-in sleep mode/command. You can measure the current drawn by your LCD module, or by the entire circuit, using a DVM.

Looking at a typical 16x2 LCD datasheet, power consumption: LCM (display module, no BL) = 2mA typ. 3mA max. Edge-lit BL @ 4.2V = 40mA typ. Array BL @ 4.2V = 120mA typ.

Logic driving currents are negligible in comparison to the LED backlight. You can also connect logic lines with 10k~100k resistors to minimize power consumption. Only remember to follow the BL control pin with a transistor, because the absolute maximum ATmega I/O pin current is just 40mA.

@danielmario: So following thisl tutorial will damage the Arduino? It suggests to connect the LCD backlight directly to the output pin.

Nongsai: @danielmario: So following thisl tutorial will damage the Arduino? It suggests to connect the LCD backlight directly to the output pin.

Yes, if your backlight sinks more than the maximum I/O current, it will damage your Arduino.

In that tutorial, the author warns about it:

Make sure that your display backlight does not draw more current then arduino pin can handle! For Arduino Uno that is 20mA max. In my case, backlight draw 15mA. If current is more then 20mA use a current limiting resistor (backlight will be less bright) or use a transistor and external power supply.

Ok, then I'll use a transistor with a digital to turn the backlight on/off. Thanks!