Serial LCD by Scott Edwards and Arduino: Rozdiel medzi revíziami
Z SensorWiki
(Nová stránka: 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 in...) |
|||
Riadok 4: | Riadok 4: | ||
a) use an hardware inverter. You can either use one section of an inverter IC, like a 7404, or a simple [http://www.seetron.com/images/invert.gif one-transistor inverter]. | a) use an hardware inverter. You can either use one section of an inverter IC, like a 7404, or a simple [http://www.seetron.com/images/invert.gif one-transistor inverter]. | ||
+ | |||
+ | b) use an improved NewSoftSerial library. It enables to invert signals. Following program works like a charm. | ||
+ | |||
+ | <source lang="c"> | ||
+ | #include <NewSoftSerial.h> | ||
+ | |||
+ | #define rxPin 2 | ||
+ | #define txPin 3 | ||
+ | |||
+ | #define INVERTED true // this is impossible with standard Software Serial library | ||
+ | |||
+ | NewSoftSerial lcd(rxPin, txPin,INVERTED); // set up a new serial port | ||
+ | |||
+ | void setup() { | ||
+ | |||
+ | pinMode(rxPin, INPUT); // define pin modes for tx, rx: | ||
+ | pinMode(txPin, OUTPUT); | ||
+ | lcd.begin(9600); | ||
+ | |||
+ | delay(100); | ||
+ | |||
+ | lcd.print(254,BYTE); | ||
+ | lcd.print(1,BYTE); | ||
+ | delay(10); | ||
+ | |||
+ | lcd.print(254,BYTE); | ||
+ | lcd.print(1,BYTE); | ||
+ | delay(10); | ||
+ | |||
+ | lcd.print(254,BYTE); | ||
+ | lcd.print(2 ,BYTE); | ||
+ | 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: | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | </source> |
Verzia zo dňa a času 20:40, 19. október 2010
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 program works like a charm.
#include <NewSoftSerial.h>
#define rxPin 2
#define txPin 3
#define INVERTED true // this is impossible with standard Software Serial library
NewSoftSerial lcd(rxPin, txPin,INVERTED); // set up a new serial port
void setup() {
pinMode(rxPin, INPUT); // define pin modes for tx, rx:
pinMode(txPin, OUTPUT);
lcd.begin(9600);
delay(100);
lcd.print(254,BYTE);
lcd.print(1,BYTE);
delay(10);
lcd.print(254,BYTE);
lcd.print(1,BYTE);
delay(10);
lcd.print(254,BYTE);
lcd.print(2 ,BYTE);
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:
}