Using Serial UART 16 × 2 LCD on Arduino

by Linksprite in Circuits > Arduino

32336 Views, 17 Favorites, 0 Comments

Using Serial UART 16 × 2 LCD on Arduino

Using Serial UART 16 × 2 LCD on arduino.jpg

The serial UART 16×2 LCD allows you to control a parallel based LCD
over a single-wire serial interface. The serial LCD takes care of all the HD44780 commands allowing seamless integration with any micro that can communicate over a wide range of TTL serial baud rates. The

Communication with Serial 16×2 LCD requires 5V TTL serial at a default baud rate of 9600bps (8-N-1). You can adjust the baud to any standard rate between 2400 and 38400bps. The power, ground and RX pins are all broken out to a 4-pin 2.54mm pitch header.

Serial 16×2 LCD has the ability to dim the backlight to conserve power if needed. There is also a potentiometer on the backpack to adjust the contrast.

Step 1: Parts List

  1. 1 arduino uno
  2. 1 Serial UART 16 × 2 LCD
  3. Several DuPont wires

Step 2: Wiring Diagram

  1. Serial UART 16×2 LCD GND -> Arduino GND
  2. Serial UART 16×2 LCD 5V -> Arduino +5V
  3. Serial UART 16×2 LCD Rx -> Arduino D3

Step 3: Test Code

#include <SoftwareSerial.h>
#define txPin 2

SoftwareSerial LCD = SoftwareSerial(0, txPin);

// since the LCD does not send data back to the Arduino, we should only define the txPin

const int LCDdelay=10; // conservative, 2 actually works

// wbp: goto with row & column

void lcdPosition(int row, int col) {

LCD.write(0xFE); //command flag

LCD.write((col + row*64 + 128));

//position delay(LCDdelay);

}

void clearLCD()

{

LCD.write(0xFE); //command flag

LCD.write(0x01); //clear command.

delay(LCDdelay);

}

void backlightOn()

{

//turns on the backlight

LCD.write(0x7C); //command flag for backlight stuff

LCD.write(157); //light level.

delay(LCDdelay);

}

void backlightOff() {

//turns off the backlight

LCD.write(0x7C); //command flag for backlight stuff

LCD.write(128); //light level for off.

delay(LCDdelay);

}

void serCommand() { //a general function to call the command flag for issuing all other commands LCD.write(0xFE);

}

void setup() {

pinMode(txPin, OUTPUT);

LCD.begin(9600);

backlightOn() ;

clearLCD();

lcdPosition(0,0);

LCD.print("Hello world from LinkSprite!");

}

void loop() {

}

Step 4:

Hello World from LinkSprite..jpg

Serial UART 16×2 LCD display successfully:Hello World from LinkSprite.