Serial Monitor read the character enter in Serial monitor and print ou t char sendChar; void setup() { Serial begin(9600); } void loop() { if (Serial available()) { sendChar = Serial read(); Serial.Serial Monitor read the character enter in Serial monitor and print ou t char sendChar; void setup() { Serial begin(9600); } void loop() { if (Serial available()) { sendChar = Serial read(); Serial.
Trang 1// read the character enter in Serial monitor and print ou t
char sendChar;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
sendChar = Serial.read();
Serial.println(sendChar);
}
}
Result
Type “Hello World” in monitor, print out: Hello World (words by words)
To print in serial monitor in one line
Trang 2void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
sendChar = Serial.read();
Serial.print(sendChar);
}
}
Result
type “hello world”, print out “hello world” in one line
Use serial monitor to control LED
Type H, L in serial monitor to control led 13 in arduino Uno R3
const int ledPin = 13;
int incomingByte;
Trang 3Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte == 'H') {
digitalWrite(ledPin, HIGH);
}
if (incomingByte == 'L') {
digitalWrite(ledPin, LOW);
}
}
}
Reference: Arduino cc, Physical Pixel
Transmit data between 2 arduino
Trang 4Arduino 1 Arduino 2
Send 9, 8 turn on/off led in slave arduino
Uploading the firmware to the Arduino before connecting the 2 wire TX
RX between them Connecting these 2 wire during uploading time might led to the uploading problem
Just power one Arduino
Master
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(9);
delay(2000);
Serial.println(8);
Trang 5}
Slave
char received;
void setup() {
Serial.begin(9600);
pinMode(16, OUTPUT);
}
void loop() {
if (Serial.available()) {
received = Serial.read() - 48; Serial.println(received);
if (received == 9)
{
digitalWrite(16, HIGH);
}
else if (received == 8)
{
digitalWrite(16, LOW);
}
}
}
Trang 6Master
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println('H');
delay(2000);
Serial.println('L');
delay(2000);
}
Slave
char received;
void setup() {
Serial.begin(9600);
pinMode(16, OUTPUT);
}
void loop() {
if (Serial.available()) { received = Serial.read();
Trang 7if (received == 'H')
{
digitalWrite(16, HIGH); }
else if (received == 'L') {
digitalWrite(16, LOW); }
}
}
NOTE
If in Master
received == 'High'
received == 'LOW'
then in Slave
if (received == 'High')
{
digitalWrite(16, HIGH); }
else if (received == 'Low') {
Trang 8}
In Serial monitor of master:
2835
2647
In Serial monitor of slave:
2
8
3
5
2
6
4
7
So it won’t work as the receive and send variable are char (mean one character)
Like all times, " " is for string, ’ ’ is for char
ASCII: ‘A’ = 65; ‘0’ = 48’,…
Trang 9Master
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("High");
delay(2000);
Serial.println("Low");
delay(2000);
}
Slave
If you change to
received = Serial.read();
Serial.println(received);
if (received == "High")
{
digitalWrite(16, HIGH);
}
else if (received == "Low")
{
Trang 10}
You still reveive the ASCII number
SoftwareSerial
Type H, L in master Arduino,, turn on, off led in slave Arduino
Connection
Master Slave
2 (RX) TX
3 (TX) RX
Master
#include <SoftwareSerial.h>
SoftwareSerial Arduino(2,3); // RX, TX
char sendChar;
void setup() {
Serial.begin(9600);
Trang 11}
void loop() {
sendChar = Serial.read(); Serial.print(sendChar); Arduino.println(sendChar); delay(1000);
}
Slave
char received;
void setup() {
Serial.begin(9600);
pinMode(16, OUTPUT);
}
void loop() {
if (Serial.available()) { received = Serial.read(); Serial.println(received);
if (received == 'H')
{
digitalWrite(16, HIGH);
Trang 12else if (received == 'L') {
digitalWrite(16, LOW); }
}
}