[22장] 아두이노와 PC 간 시리얼 통신 방법 및 예제 코드
![[22장] 아두이노와 PC 간 시리얼 통신 방법 및 예제 코드 [22장] 아두이노와 PC 간 시리얼 통신 방법 및 예제 코드](https://images.pexels.com/photos/5882582/pexels-photo-5882582.jpeg)
아두이노와 PC 간 시리얼 통신 방법 및 예제 코드
서론
아두이노와 PC 간 시리얼 통신은 많은 프로젝트에서 중요한 역할을 합니다. 이 기능을 통해 아두이노 보드와 컴퓨터 사이에 데이터를 주고받을 수 있으며, 다양한 센서와 액추에이터를 제어할 수 있습니다. 이번 글에서는 시리얼 통신의 기본 원리와 예제 코드를 살펴보겠습니다.
아두이노와 PC 간 시리얼 통신 기본 원리
아두이노와 PC 간에 시리얼 통신을 하기 위해서는 TX(송신)와 RX(수신) 두 개의 데이터 선을 사용합니다. 아두이노 UNO 보드는 하드웨어적인 시리얼 통신을 지원하며, USB 포트를 통해 PC와 연결할 수 있습니다. 시리얼 통신을 위해 아두이노 보드의 디지털 입출력 핀 0번(RX)와 1번(TX)을 사용합니다. setup() 함수 내에서 Serial 통신을 설정하고, Serial.print() 또는 Serial.println() 명령을 사용하여 데이터를 전송할 수 있습니다. 아두이노 IDE의 시리얼 모니터를 통해 전송된 데이터를 확인할 수 있습니다.
예제 코드: CDS 센서 값을 모니터에 출력하기
센서 값을 모니터에서 확인하기 위해서는 빛 센서(CDS) 예제를 사용하여 CDS 센서 값을 모니터에 출력할 수 있습니다. 아두이노 Web IDE의 Monitor 메뉴를 클릭하여 출력 값을 확인할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 |
const int cdsPin = A0; // CDS 센서 연결 핀 설정 void setup() { Serial.begin(9600); // 시리얼 통신 속도 설정 } void loop() { int cdsValue = analogRead(cdsPin); // CDS 센서 값 읽기 Serial.println(cdsValue); // 시리얼 모니터에 출력 delay(1000); // 1초 딜레이 } |
예제 코드: PC로부터 문자를 받아서 시리얼 모니터에 출력하기
PC에서 시리얼 통신을 통해 아두이노 보드로 한 개의 문자를 보내고, 아두이노 보드에서 받은 데이터를 다시 PC의 시리얼 모니터에 출력하기 위해서는 Serial.available()과 Serial.read() 함수를 사용합니다. 이를 통해 한 개의 문자를 받아서 시리얼 모니터에 출력할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 |
void setup() { Serial.begin(9600); // 시리얼 통신 속도 설정 } void loop() { if (Serial.available()) { // 시리얼 통신으로 데이터를 받았을 때 char receivedChar = Serial.read(); // 받은 문자 읽기 Serial.println(receivedChar); // 시리얼 모니터에 출력 } } |
예제 코드: PC에서 숫자를 입력하여 LED 제어하기
PC와 아두이노 보드의 시리얼 통신 기능을 사용하여 아두이노 보드의 LED를 ON/OFF로 제어할 수도 있습니다. PC의 키보드로부터 1, 2, 3, 4를 시리얼 통신으로 아두이노 보드로 전송하여 LED를 제어할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
const int ledPin = 13; // LED 연결 핀 설정 void setup() { Serial.begin(9600); // 시리얼 통신 속도 설정 pinMode(ledPin, OUTPUT); // LED 핀을 출력으로 설정 } void loop() { if (Serial.available()) { // 시리얼 통신으로 데이터를 받았을 때 char receivedChar = Serial.read(); // 받은 문자 읽기 if (receivedChar == '1') { // 1을 받으면 LED를 켜기 digitalWrite(ledPin, HIGH); } else if (receivedChar == '0') { // 0을 받으면 LED를 끄기 digitalWrite(ledPin, LOW); } } } |
마무리
위에서 살펴본 예제 코드를 통해 아두이노와 PC 간에 시리얼 통신을 할 수 있습니다. 이를 통해 다양한 프로젝트에서 아두이노와 컴퓨터 사이의 데이터 전송과 제어를 구현할 수 있습니다. 시리얼 통신은 아두이노의 강력한 기능 중 하나이며, 프로그래머에게 많은 가능성을 제공합니다.