I have seen several posts when I searched this subject, of driving the LCDs logic from an arduino pin.
I have tried this on a remote control I am making, but when I measure the current from the battery, which used to be 1mA consumed by the LCD display, it actually increases to 20mA when the unit goes to sleep !
I was worried about removing the VCC from the display while its inputs are stilll connected to the 328, and sure enough, when in sleep mode , the DB4 data line from pin 6 of the 328 is still high, and presumably causing confusion through the input protection diodes or something.
I am using the <LiquidCrystal.h> library, and my sleep routine is
/* Setup pin2 as an interrupt and attach handler. */
attachInterrupt(1, pin3Interrupt, FALLING);
delay(50); // need this?
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // setting up for sleep ...
sleep_enable(); // setting up for sleep ...
ADCSRA &= ~(1 << ADEN);
PRR = 0xFF;
sleep_mode(); // now goes to Sleep and waits for the interrupt
/* The program will continue from here after the interrupt. */
// Serial.println(" waking up ");
detachInterrupt(1); //disable interrupts while we get ready to read the keypad
PRR = 0x00;
/* First thing to do is disable sleep. */
// set all the keypad columns back high so can read keypad presses again
Would it be in order to digitalWrite the DB4,5,6,7 pins low at the beginning of the sleep call? or will this clash with the LCD routine ( which I dont think is refreshed at all )
and if so, is it ok to let the library set them to whatever it wants after waking up ?