LCD 16x1 only displays firs 8 characters.

I’ve done some searching here, but have not found a resolution.
I’m starting to interface to a Newhaven 16x1 LCD character display. It uses the ST7066U controller which appears to be HD44780 compatible. However I only get the first 8 digits on the display.

Any thoughts?


// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// set up the LCD’s number of columns and rows:
lcd.begin(16, 1);
// Print a message to the LCD.

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 0);
// print the number of seconds since reset:
// lcd.print(millis()/1000);

void loop() {}

Any thoughts?

Most 16x1 displays are actually configured as 8x2. Use lcd.begin(8,2) and reposition your cursor at the beginning of the second line (called line 1 in their infinite wisdom) to put stuff on the right side of the screen.

Follow the [u]LCD Addressing[/u] link at for all the gory details.


That did it. Thanks!