Operácie

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:

}