In most cases, the first serial port will be the one you want when using a Mac and the last serial port will be the one you want when using Windows. The Processing sketch includes code that shows the ports available and the one currently selected—check that this is the port connected to Arduino. While entering the serial port name into the code in arduino IDE, enter the whole port address i.e: /dev/cu.usbmodem. or /dev/cu.UG-. where the. is the port number. And for the port number in case of mac just open terminal and type. Ls /dev/. and then search for the port that u have set in arduino IDE.
How to Connect Arduino to a PC Through the Serial Port: To do that I have used a computer with Ubuntu 12.04 and the program language C, but if you want to used Windows the code works too, only have to change the port used to conect with arduino, but this is explain in the next step. This program is onl. NEW UPDATE HERE TO FIX THE SERIAL PORT ON MAC OS SIERRA: There is a tutorial to. Mac OSX 10.14.6 Arduino IDE 1.8.11 VSCode 1.43.0 Arduino-Extension 0.2.29. Going through the command palette didn't work either. After setting the port manually through arduino.json upload worked, but serial monitor still does not.
Arduino boards such as the Uno, MEGA2560 and Due all have a serial port that connects to the USB device port on the board. This port allows sketches to be loaded to the board using a USB cable. Code in a sketch can use the same USB / serial port to communicate with the PC by using the Arduino IDE Serial Monitor window, or a Processing application for example. The USB port appears as a virtual COM port on the PC.
This article shows how to use Arduino serial ports when additional serial ports are needed for a project.
Arduino Serial Ports Available
The serial port for programming the Arduino mentioned above is a hardware serial port. The microcontroller on the Arduino board has a hardware serial port built-in, so that after the port has been initialized by software, a byte sent to the port will be sent out serially by the hardware.
The Arduino Uno has only one hardware serial port because the microcontroller used on the Uno has only one built-in serial port. The Arduino MEGA 2560 and Arduino Due both have 3 extra hardware serial ports.
Serial Port Technical Details
The hardware serial ports referred to here are UART (Universal Asynchronous Receiver Transmitter) ports. They may be referred to as USART (Universal Synchronous Asynchronous Receiver Transmitter) ports in the microcontroller documentation if they are configurable in both synchronous and asynchronous modes.
Arduino Uno Serial Port
This image shows the only serial port available on the Arduino Uno highlighted in red. The port connects through a USB chip to the USB device port.
Arduino MEGA 2560 and Due
Both the MEGA 2560 and Due have 4 serial ports in total. One that connects through a USB port chip to the USB device port on the board and three extra serial ports that connect to pins on one of the pin headers of the board.
Arduino Due Serial Ports
Pins 0 and 1 of the Due and MEGA connect serial port 0 through to the USB device port so that these Arduino boards are compatible with the pin numbering of the Uno and therefore with Arduino shields.
The extra serial ports are ports 1 to 3 with each port having a transmit and receive pin.
It is important to be aware that the MEGA 2560 serial port pins use 5V voltage levels, but the Due uses 3.3V voltage levels.
How to Use Additional Arduino Serial Ports
An extra serial port can be used on an Arduino Uno, but must be simulated in software by using the SoftwareSerial library.
Arduino Uno
The following code is taken from the article on serial communications with the GT-511C3 fingerprint scanner which connects the fingerprint scanner to a software serial port on an Arduino Uno.
To use the software serial port, first the header file for the software serial library must be included.
Next create the software serial port, selecting the Arduino pins to use for receive (RX) and transmit (TX). Here pin 8 has been set as the receive pin and pin 7 as the transmit pin.
The software serial port had been given the name gtSerial which will be used in the sketch to refer to this serial port.
The port can now be checked for incoming data.
If data is available, it can be read from the port.
Data bytes can also be sent on the port.
How to Use Additional Serial Ports on the Arduino MEGA 2560 and Due
The additional hardware ports on the Arduino MEGA 2560 and Due can be used in the same way as the main USB serial port is used in sketches, only changing the name of the port. The USB serial port, or serial port 0 is referred to as Serial in sketches. To use serial port 1, the name changes to Serial1. Serial ports 2 and 3 are referred to as Serial2 and Serial3.
This sketch shows serial port 3 being used which transmits on pin 14 of the MEGA or Due and receives on pin 15.
The additional serial ports are immediately available in the sketch without having to include any libraries.
Serial port 3 must first be initialized to the desired baud rate.
The port can be checked for incoming data.
If a byte has arrived on the serial port, it can be read.
A byte can be written to the serial port.
Arduino Serial Port Resources
Arduino Website References for Software and Hardware
- Software serial library Arduino reference.
- Serial port library Arduino reference for hardware ports.
- Arduino Uno — hardware reference.
- Arduino Mega 2560 — hardware reference.
- Arduino Due — hardware reference.
Projects, Articles and Tutorials
- Using the Arduino serial port and serial monitor window.
- Getting serial input from the serial monitor window.
- Arduino serial thermometer breadboard project.
- Measuring voltage with Arduino — displays voltage in the serial monitor window.
- Reading an analog value with Arduino.
- Finding the Arduino serial USB port number on a PC using Processing.
- Serial communications with a fingerprint scanner using Arduino and Processing.
Description
Used for communication between the Arduino board and a computer or other devices. All Arduino boards have at least one serial port (also known as a UART or USART), and some have several.
Serial Port Mac Arduino
Board | USB CDC name | Serial pins | Serial1 pins | Serial2 pins | Serial3 pins |
---|---|---|---|---|---|
Uno, Nano, Mini | 0(RX), 1(TX) | ||||
Mega | 0(RX), 1(TX) | 19(RX), 18(TX) | 17(RX), 16(TX) | 15(RX), 14(TX) | |
Leonardo, Micro, Yún | Serial | 0(RX), 1(TX) | |||
Uno WiFi Rev.2 | Connected to USB | 0(RX), 1(TX) | Connected to NINA | ||
MKR boards | Serial | 13(RX), 14(TX) | |||
Zero | SerialUSB (Native USB Port only) | Connected to Programming Port | 0(RX), 1(TX) | ||
Due | SerialUSB (Native USB Port only) | 0(RX), 1(TX) | 19(RX), 18(TX) | 17(RX), 16(TX) | 15(RX), 14(TX) |
101 | Serial | 0(RX), 1(TX) |
On Uno, Nano, Mini, and Mega, pins 0 and 1 are used for communication with the computer. Connecting anything to these pins can interfere with that communication, including causing failed uploads to the board.
Arduino To Arduino Serial
You can use the Arduino environment’s built-in serial monitor to communicate with an Arduino board. Click the serial monitor button in the toolbar and select the same baud rate used in the call to begin()
.
Serial communication on pins TX/RX uses TTL logic levels (5V or 3.3V depending on the board). Don’t connect these pins directly to an RS232 serial port; they operate at +/- 12V and can damage your Arduino board.
Arduino Download For Mac
To use these extra serial ports to communicate with your personal computer, you will need an additional USB-to-serial adaptor, as they are not connected to the Mega’s USB-to-serial adaptor. To use them to communicate with an external TTL serial device, connect the TX pin to your device’s RX pin, the RX to your device’s TX pin, and the ground of your Mega to your device’s ground.