In this article I describe how to wire a 20x4 character display to an Arduino. I'm assuming you are using a regular 5V 8bit Arduino, if this is not the case this article will not work for you as you'll need voltage level converters. Most character based LCD displays use the same wiring, but I can't guarantee that all will be the same. If your display is the same it will look like the diagrams on this page and will have 16 pins.
This wiriing diagram assumes you'll be using the excellent LiquidCrystal Arduino library. If you were intending to use a different library to drive the display, then this wiring tutorial may still be useful, but you'd have to check with the library vendors.
Sometimes, when I use one of these displays, I use a PWM contrast circuit to avoid the need for a potentiometer. The circuit directly below normally works fine from any PWM compatbile output of the Arduino board and does not flicker in a noticeable way. If it does flicker for, just increase the capacitor (C1) size. This circuit connects to display pin 3 of a standard display (the Vo pin). If you don’t want to take this approach then just include a potentiometer of at least 10K ohms, the outer connectors go to 5V and ground with the wiper connected to Vo. You’ll have to add code to you sketch to set the PWM port to OUTPUT and set the analog level. This code is included below. I found that a value of 90 works well for many displays.
#define DISPLAY_CONTRAST_PIN 3
void setup() {
pinMode(DISPLAY_CONTRAST_PIN, OUTPUT);
analogWrite(DISPLAY_CONTRAST_PIN, 90);
// rest of setup...
}
Below is an example of how to layout the breadboard in order to connect the display to the Arduino. This is one example layout, and as you can see it includes the PWM contrast adjustment.