1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-02-21 15:54:39 +01:00

Updated SoftwareSerial examples so that they work easier with Leonardo and Mega

This commit is contained in:
Tom Igoe 2012-05-25 09:38:44 -04:00
parent 6e8e13d7b3
commit a24999d5a5
2 changed files with 32 additions and 12 deletions

View File

@ -5,11 +5,20 @@
Receives from software serial, sends to hardware serial. Receives from software serial, sends to hardware serial.
The circuit: The circuit:
* RX is digital pin 2 (connect to TX of other device) * RX is digital pin 10 (connect to TX of other device)
* TX is digital pin 3 (connect to RX of other device) * TX is digital pin 11 (connect to RX of other device)
Note:
Not all pins on the Mega and Mega 2560 support change interrupts,
so only the following can be used for RX:
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
Not all pins on the Leonardo support change interrupts,
so only the following can be used for RX:
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
created back in the mists of time created back in the mists of time
modified 9 Apr 2012 modified 25 May 2012
by Tom Igoe by Tom Igoe
based on Mikal Hart's example based on Mikal Hart's example
@ -18,17 +27,17 @@
*/ */
#include <SoftwareSerial.h> #include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX SoftwareSerial mySerial(10, 11); // RX, TX
void setup() void setup()
{ {
// Open serial communications and wait for port to open: // Open serial communications and wait for port to open:
Serial.begin(57600); Serial.begin(57600);
while (!Serial) { while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only ; // wait for serial port to connect. Needed for Leonardo only
} }
Serial.println("Goodnight moon!"); Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port // set the data rate for the SoftwareSerial port
@ -43,3 +52,4 @@ void loop() // run over and over
if (Serial.available()) if (Serial.available())
mySerial.write(Serial.read()); mySerial.write(Serial.read());
} }

View File

@ -16,8 +16,17 @@
* First serial device's TX attached to digital pin 2, RX to pin 3 * First serial device's TX attached to digital pin 2, RX to pin 3
* Second serial device's TX attached to digital pin 4, RX to pin 5 * Second serial device's TX attached to digital pin 4, RX to pin 5
Note:
Not all pins on the Mega and Mega 2560 support change interrupts,
so only the following can be used for RX:
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
Not all pins on the Leonardo support change interrupts,
so only the following can be used for RX:
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
created 18 Apr. 2011 created 18 Apr. 2011
modified 9 Apr 2012 modified 25 May 2012
by Tom Igoe by Tom Igoe
based on Mikal Hart's twoPortRXExample based on Mikal Hart's twoPortRXExample
@ -26,11 +35,12 @@
*/ */
#include <SoftwareSerial.h> #include <SoftwareSerial.h>
// software serial #1: TX = digital pin 2, RX = digital pin 3 // software serial #1: TX = digital pin 10, RX = digital pin 11
SoftwareSerial portOne(2, 3); SoftwareSerial portOne(10,11);
// software serial #2: TX = digital pin 4, RX = digital pin 5 // software serial #2: TX = digital pin 8, RX = digital pin 9
SoftwareSerial portTwo(4, 5); // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega
SoftwareSerial portTwo(8,9);
void setup() void setup()
{ {