시리얼 통신을 통해 아두이노와 컴퓨터는 데이터를 주고 받으며 통신한다. 시리얼 통신은 두 기기 간의 1:1 통신이다. USART(Universal Synchronous Asynchronous REceiver Transitter) 또는 UART라고 부른다.

image

시리얼 통신

시리얼 통신은 연속적으로 통신 채널이나 컴퓨터 버스를 통해 한 번에 하나의 비트 단위로 데이터를 전송하는 과정을 뜻한다. 아두이노 보드의 0번, 1번 핀 또는 USB 연결을 통해 시리얼 통신을 할 수 있다.아두이노 보드의 0번 핀은 RX, 1번 핀은 TX로써 Receive Data, Transmit Data의 역할을 수행한다. 따라서 0번 핀과 1번 핀을 사용하면 통신에 방해가 될 수 있으므로 사용을 권장하지 않는 것이다. 아두이노 우노에서 추가적인 시리얼 통신이 필요하면 softwareSerial 라이브러리를 사용하면 된다. 아두이노 메가와 Esp32는 시리얼 통신을 위한 추가적인 하드웨어가 존재한다.

Baud Rate

Baud rate는 통신 속도를 의미한다. bit 단위를 기준으로 하고 1초동안 전송되는 신호의 수로 값을 나타낸다. 따라서 9600bps는 1초에 9600비트를 보낼 수 있다는 뜻이다. 일반적으로 9600bps를 사용한다. Serial.begin(9600으로 사용하고자 하는 Baud Rate를 선언하면 시리얼 모니터로 값을 모니터링할 때 Baud rate의 값을 동일하게 맞추어 주어야 한다.

image

시리얼 모니터는 키는 것은 아두이노 보드의 Reset 버튼을 누르는 것과 동일하다. Serial.available() 함수는 시리얼 포트에 수신되어 저장되어 있는 데이터의 바이트 수를 반환한다. 데이터를 받지 않으면 0을 반환한다.

Reference