Serial LCD by Scott Edwards and Arduino
Z SensorWiki
How to connect Scott Edwards's LCD Serial Backpack equipped LCD display to an Arduino compatible boards.
- LCD Serial Backpack - product page
- LCD Serial Backpack manual
- LCD Serial Backpack FAQ
- LCD Serial Backpack App Notes and Tips
This serial LCD is not a direct connectible to the Arduino boards as it uses inverted signals (which is OK if You use e.g. RS-232 or Basic Stamp).
Solutions:
a) use an hardware inverter. You can either use one section of an inverter IC, like a 7404, or a simple one-transistor inverter.
b) use an improved NewSoftSerial library. It enables to invert signals. Following diagram and program works like a charm.
#include <NewSoftSerial.h> #define rxPin 2 // unused, but necessary to create 'lcd' object #define txPin 3 #define INVERTED true // this is impossible with standard Software Serial library NewSoftSerial lcd(rxPin, txPin,INVERTED); // set up a new inverted serial port on pins 2 and 3 void setup() { pinMode(rxPin, INPUT); // define pin modes for tx, rx: pinMode(txPin, OUTPUT); lcd.begin(9600); delay(100); // necessary to wait after powering up lcd.print(254,BYTE); // 254 is a command prefix lcd.print(1,BYTE); // 1 is a Display Clear command delay(10); // this command takes long time lcd.print(254,BYTE); // for unknown reasons this is lcd.print(1,BYTE); // necessary to repeat 2x delay(10); lcd.print(254,BYTE); // 254 is a command prefix lcd.print(2 ,BYTE); // 2 is a Home command delay(10); lcd.print("Hello, World!"); } void loop() { lcd.print(254,BYTE); lcd.print(192,BYTE); // set the cursor to column 0, line 1 lcd.print(millis()/1000); // print the number of seconds since reset: }
