After having to use up so many IOs to control a character based LCD, I decided to make a small board that can be fitted at the back of the LCD and use the I2C bus to control it.
I have just completed the design of a board that does just that. It is compatible with a wide range of parallel character based parallel LCDs. The board can also be used as an IO extension for applications that require more IO pins than those available on the Arduino.
You are also capable of programming the lower 3 bits of the I2C address using on board jumpers, so as the title of this post says, you can connect up to 8 LCD to an arduino + their corresponding backlights.
I am currently completing the adaption of 3 libraries that will enable you to use the LCD with the same interface as the liquidCristal library, the LCD API 1.0 library and also a library to use the board as an IO expansion module. The idea is that the entire board LCD + backpack is fully compatible with the code you already have, but instead of using 8 pins to control it will it will be using the I2C bus.
I will be publishing shortly the libraries and Eagle CAD files so that you can use them.
My project only uses 2 of these boards, so I have a couple to spare just in case anyone is interested.
Here are some images of the board in action.