Introduction: 16x2 LCD Shield for Arduino Uno Using 3 Wires
I take no credit what so ever for this sketch. It has been copied from https://www.instructables.com/id/Hookup-a-16-pin-HD...
On the hardware design side of the original instructable however, I noticed a small flaw.
If you were to follow the the diagrams posted on there, there is a minor flaw in one of the drawings when compared to the other reference diagrams. I have highlighted this in the comments section of that instructable. For easy reference a corrected diagram is also attached here.
Step 1: The Sketch
Step 2: Some Minor Changes
A minor correction to the diagram on the original instructable
I would also recommend removing the NPN transistor and merely hooking up a 1 kohm resistor across the appropriate pins for the back light (if turning on and off is not a required option).
Overall, although it took me a couple of long hours to get this soldered and up and running, it was very satisfying in the end and all it cost me to make the shield was US $2. The number of digital IO lines it frees up is not small and should be reason enough for someone to consider making this.