UART는 Universal Asynchronous Receiver Transmitter의 약어이며, 통신 프로토콜 중의 하나이다. UART는 병렬 데이터 버스를 통해 나머지 마이크로컨트롤러 또는 컴퓨터 시스템과 통신하고 직렬 데이터 스트림으로 변환하여 하나의 단일 와이어( 또는 IR 또는 Bluetooth 신호 )를 통해 다른 UART 장치로 전송할 수 있다. UART의 통신 방법은 마치 사람이 대화하는 것과 같은 원리를 가지고 있다. UART 통신을 위해 두 개의 아두이노는 RX (데이터 수신),TX (데이터 송신), GND가 규칙을 가지고 서로 연결이 되어야 하며, 비동기 통신이기 때문에 같은 전송속도(baud rate)를 사용해야 한다.
병렬 데이터 전송은 직렬보다 훨씬 빠르지만 하드웨어 및 전력 소비 측면에서 더 비싸므로 일반적으로 임베디드 시스템과 같은 상황에서는 장치 간의 직렬 데이터 라인이 바람직하다. 일부 UART에는 수신된 데이터의 병렬 및 직렬 데이터 라인 간의 조정을 돕는 버퍼가 있다.
TX는 데이터를 보내고, RX는 데이터를 수신한다.
만약 아두이노1과 아두이노2가 있다고 가정해보자 그러면 아두이노1의 TX는 아두이노2의 RX로 연결된다. 아두이노1의 RX역시 마찬가지로 아두이노2의 TX로 연결된다. 그라운드(GND)는 공통으로 묶기 위해 서로 연결한다.
Baud Rate는 직렬 전송의 변조 속도를 1초간에 전송되는 신호의 수로 나타낸 값을 말한다. 단위는 bps이다. 통신속도는 여러가지로 설정할 수 있으며, 일반적으로 크게 영향을 받지 않는 9600bps를 사용한다. 속도가 높을수록 송수신 속도는 빠르지만 값이 너무 높거나 서로 다른 값의 통신 속도를 사용하면 통신 장애가 발생한다.
아두이노에서 Serial.begin(통신속도 값)을 이용하여 통신속도를 초기화 한다.
Serial.begin(9600)으로 하면 9600bps로 데이터 송수신을 한다는 의미이다.