-
아두이노 시리얼 UART 통신(1): 데이터 출력Technology/Arduino 2023. 7. 7. 18:00반응형
1. 병렬 통신과 직렬 통신

8비트 병렬 통신과 8비트 직렬 통신 서로 다른 두 기기가 데이터를 주고받는 통신 방식은 크게 병렬(parallel) 통신과 직렬(serial) 통신으로 나눌 수 있다. 병렬 통신은 여러 가닥의 선을 통해 동시에 데이터를 주고 받는 반면, 직렬 통신은 송신선(TX)과 수신선(RX) 두 가닥을 통해 일렬로 데이터를 주고 받는다. 병렬 통신이 직렬 통신에 비해 빠르다는 장점이 있지만, 한 번에 주고 받는 데이터의 크기에 따라 통신선의 수가 늘어난다는 단점이 있다. 직렬 통신은 데이터가 연결되어 들어오기 때문에 통신 시 데이터의 크기를 잘 구분해야 하지만, 수신기와 송신기 사이의 통신 속도만 맞춰준다면 병렬 통신보다 저렴하게 이용할 수 있다. 아두이노 하드웨어가 PC 혹은 센서와 데이터를 주고받을 때에는 직렬 통신을 이용한다.
2. UART 통신

UART 통신 범용 비동기 송수신(Universal Asynchronous Receiver/Transmitter, UART) 통신은 아두이노가 PC와 데이터를 주고받을 때 사용하는 통신 방식으로, 두 기기 사이에 연결된 송신선과 수신선을 통해 각자 신호를 전송한다. 이때 송신기와 수신기 사이에 별도의 동기화(syncronization) 과정 없이 신호를 일방적으로 전송하기 때문에, 일정 시간동안 서로 주고받을 신호 단위를 동일하게 맞추는 것이 중요하다. 만약 각 기기의 통신 속도가 동일하지 않으면 신호를 받는 중간에 중단하거나, 신호를 계속 받아들여 다른 단위의 신호를 포함하는 등 신호 처리가 올바르게 수행되지 못한다. 따라서 UART 통신을 사용할 경우 송신기와 수신기의 통신 속도, 즉 일정 시간에 몇 비트의 신호가 들어오는지 동일하게 설정하는 것이 중요하다.
3. Serial 클래스
UART 통신을 실제로 구현하기 위해서는 송신기로부터 들어오는 신호 단위를 구분하는 알고리즘을 작성해야 한다. 하지만 아두이노 플랫폼은 클래스 형태로 UART 통신과 관련된 메소드를 지원하고 있어, 사용자가 UART 통신을 직접 구현할 필요가 없다. 아두이노 플랫폼에서 지원하는 메소드만 적절하게 활용한다면 손쉽게 PC와의 UART 통신을 구현할 수 있다. 아래 링크로 접속하면 아두이노 플랫폼에서 지원하는, UART 통신과 관련된 다양한 메소드를 확인할 수 있다.
Serial - Arduino Reference
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. Board USB CDC name Serial pins Serial1 pins Serial2 pins
www.arduino.cc
4. UART 통신을 이용한 데이터 출력
4.1. 회로 구성

회로 구성 아두이노 하드웨어가 PC와 UART 통신을 하기 위해서는 별도의 회로를 구성할 필요 없이 USB 연결선을 이용해 아두이노 하드웨어를 PC에 연결하면 된다.
4.2. 프로그램 작성
void setup() { Serial.begin(9600); // 시리얼 통신 시작 (통신 속도: 9600 bps) } void loop() { Serial.print("Hello "); // 시리얼 모니터에 문자열을 출력 Serial.println("World!"); // 시리얼 모니터에 문자열을 출력한 뒤 줄 바꿈 delay(1000); // 1000 ms 대기 }4.3. 시리얼 모니터

아두이노 소프트웨어 시리얼 모니터 아두이노 하드웨어로부터 PC가 UART 통신으로 받는 데이터를 보기 위해서는 시리얼 모니터를 사용해야 한다. 상단 툴바 아래에 있는 아이콘 중 오른쪽 끝에 있는 아이콘을 누르면 시리얼 모니터를 사용할 수 있다.

아두이노 소프트웨어 시리얼 모니터의 통신 속도 설정 시리얼 모니터를 사용하기에 앞서, 프로그램에서 설정한 UART 통신 속도와 시리얼 모니터의 통신 속도가 동일하게 설정되어 있는지 확인해야 한다. 코드에서는 9600 보드레이트로 UART 통신을 시작하였으므로 시리얼 모니터의 통신 속도 또한 9600 보드레이트로 설정해주자. 그러면 시리얼 모니터 창에 Hello World!라는 문자열이 1초 단위로 출력되는 것을 볼 수 있을 것이다.
[함께 읽으면 좋은 페이지]
아두이노 시리얼 UART 통신(2): 데이터 입력
1. 아두이노 1.1. 하드웨어 종류 1.2. 소프트웨어 사용 방법 1.3. 회로 기초 지식 2. 아두이노 시리얼 통신(1): UART 2.1. 출력 2.2. 입력 3. 디지털 신호 I/O 3.1. 디지털 출력 3.2. 디지털 입력 4. 아날로그 신
vedacube.tistory.com
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 디지털 신호 출력 | LED (0) 2023.07.14 아두이노 | 회로 기초 지식 (0) 2023.07.14 아두이노 소프트웨어 사용 방법 (0) 2023.06.30 아두이노 하드웨어 종류 (0) 2023.06.23 아두이노란? (1) 2023.06.16