In this tutorial, we will explore the use of Serial Communication in Arduino Uno. Arduino has built-in support for UART which enable serial communication. UART as a serial protocol is most useful and famous protocol. The Arduino can transmit and receive data to the PC over USB Cable. This comes handy when we want to send the sensor data from microcontroller to PC. The Arduino IDE has built-in Serial Monitor window, which displays the data sent from Arduino to PC. The same way we can send data/command from Serial Monitor to Arduino. The serial communication enables us to control electronic devices connected to Arduino board from PC. When comes to interfacing more complicated devices such as LCD, RTC, EEPROM etc. We can use serial communication to debug the code and track errors to interface those devices.
Example Program 1: In this example, we will send a string from Arduino to PC. Once we upload the sketch into Arduino. We will see this string will be printing on Serial Monitor Window of Arduino IDE.
void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello from Umesh"); delay(1000); }
Example Program 2: In this example, we will transmit as well as receive data using Arduino. This program receives data from PC and then send it back to PC. This way we can perform transmit and receive data using Arduino board.
int inByte; // Stores incoming command void setup() { Serial.begin(9600); pinMode(13, OUTPUT); // Led pin Serial.println("Type 1: LED ON, 0: LED OFF "); // Ready to receive commands } void loop() { if (Serial.available() > 0) { // A byte is ready to receive inByte = Serial.read(); if (inByte == '1') { // byte is '1' digitalWrite(13, HIGH); Serial.println("LED - On"); } else { // byte isn't '1' digitalWrite(13, LOW); Serial.println("LED - off"); } } }
Now just verify and upload the sketch to Arduino and open up Serial Monitor. We are ready to control LED connected PIN 13 of Arduino. Now just enter ‘1’ and press Send button. We will see on board orange LED will turn ON. When we enter ‘0’ and hit Send button LED will turn OFF. This is how we can control devices connected to Arduino using a serial interface.
Software Serial Example: In this example, we’ll be using PIN 10 and 11 as Rx, Tx respectively. Whereas Pin No. 0 and 1 which are default serial pins on Arduino hardware.
#include <SoftwareSerial.h> /* Connect device Rx - 10, Tx - 11 */ SoftwareSerial mySerial(10, 11); void setup() { Serial.begin(9600); // Open serial communications and wait for port to open: mySerial.begin(4800); // set the data rate for the SoftwareSerial port } void loop() { Serial.println("HELLO"); // Sends string to PC to Serial Monitor mySerial.println("HELLO"); // Sends string to device delay(1000); // Waits here 1000ms and then goes on }
This is how Serial Communication in Arduino works. We hope this tutorial will help you to understand serial communication. There will be several projects where we will use this feature serial UART in Arduino to debug the code. We recommend you to play around code and see how it works. If you have any suggestions, feel free to leave a comment. Thanks.