Run LCD from digital pin?

I want to be able to turn my LCD on and off via software, but my LCD doesn’t have an “output enable” pin or anything. I COULD try running the whole display from a digital pin, but I don’t know if that’s wise. Can I power a 16x2 LCD from one of the arduino’s digital pins, so that I can turn it on and off?

Uhh....maybe. Do you know how much current it draws? Is it very sensitive to supply voltage as if you draw current from a microcontroller pin the voltage will tend to sink down?

Maybe better is to use a P-channel MOSFET.

Or do you just want to blank the screen? You don't need to power it down for that.

-- Check out our new shield:

Well I want to save as much power as possible. The best scenario would be cutting power to the whole LCD board.

I don't know how much current these kind of LCDs draw, but I figured it might be really low and then I could just power it from a digital pin. If it draws too much current to power from a digital pin, I could use a mosfet hooked up to a digital pin, but then I'm dropping like, I think .6v across the mosfet which might be a problem; I'm not sure?

I don't know if blanking the screen saves any power compared to leaving characters on there or not.

Is it very sensitive to supply voltage

Yes, and voltage effects the contrast too. It needs at least 4.5v to even turn on.

A transistor will drop some voltage but a MOSFET won't (as long as it doesn't have too much resistance or you draw too much current).

Here's something I think will work:

-- Check out our new shield:

I'm not sure if that will work, since I put my arduino to sleep sometimes. If an ATMEGA digital pin will sink current with the chip turned off, then the LCD will not turn off when the arduino does. Does anyone know if ATMEGA pins will sink current when the chip is put into a sleep mode?

Could I use an N-type mosfet and put it between the LCD and ground, so then a digital HIGH would turn the LCD on and digital LOW would turn it off?

I think the I/O pins maintain their values when the chip is put to sleep.

If you're worried and don't mind adding another MOSFET you could invert the sense of the digital I/O pin so that you need to actively set it high to turn on the MOSFET, like this:

-- Check out our new shield:

I routinely plug LCDs into the distal row of pins on a mega and supply power to the logic from a digital pin. That works without any special circuitry. I do use a potentiometer (or sometimes a 1K resistor) to the contrast pin, although I think analogWrite could be used.

You may not be able to power the BACKLIGHT on some of them from a digital pin, read the spec sheet carefully to figure that out. The white on blue ones from adafruit and hacktronics have relatively low current draw for the backlight and even that works on those LCDs. If you try to power an LCD backlight that needs over 40 mAmps you will likely damage the digital pin it is attached to.

after you turn the power on, you have to initialize the lcd by calling lcd.begin.

I want to be able to turn my LCD on and off via software, but my LCD doesn't have an "output enable" pin or anything.

The HD44780 has a 'Display on/off control' instruction that will accomplish what you want to do (assuming that you are talking about this kind of LCD). If you are using the LiquidCrystal library you want to use display() and noDisplay().


If you are using the LiquidCrystal library you want to use display() and noDisplay().

If I use noDisplay(); will it save as much power as turning off the LCD completely?

Turns off the LCD display, without losing the text currently shown on it.

I'm just not sure how much power that would save; if all the rest of the electronics are running and the display is just blank it might not save hardly anything.