-
아두이노 시리얼 통신: 데이터 입력Technology/Arduino 2023. 12. 8. 18:00
1. 시리얼 통신을 이용한 문자 입력
앞서 살펴보았듯이, 아두이노 하드웨어는 PC와의 시리얼 통신으로 아두이노 내부의 데이터값을 출력할 수 있다. 반대로 시리얼 모니터를 통해 데이터를 아두이노 하드웨어로 입력할 수 있다. 이때 시리얼 통신으로 입력 받은 데이터는 버퍼라는 저장 공간에 일시적으로 저장되며, 버퍼에 데이터가 저장되었는지 확인하거나 데이터를 복사해 변수에 저장할 수 있다.
1.1. 회로 구성
아두이노 하드웨어가 PC와 시리얼 통신을 하기 위해서는 별도의 회로를 구성할 필요 없이 USB 연결선을 이용해 아두이노 하드웨어를 PC에 연결하면 된다.
1.2. 프로그램 작성
void setup() { Serial.begin(9600); // 시리얼 통신 시작 (통신 속도: 9600 bps) } void loop() { if (Serial.available() > 0){ // 버퍼에 데이터가 저장되었는지 확인 // 문자형 변수 선언 후 버퍼에 저장된 데이터의 1바이트를 변수에 저장 char data = Serial.read(); Serial.print("data: "); // 시리얼 모니터에 문자열을 출력 Serial.println(data); // 변수에 저장된 데이터를 시리얼 모니터에 출력한 뒤 줄 바꿈 } }
1.3. 시리얼 모니터
시리얼 모니터 창 상단에 있는 칸에 숫자나 문자를 입력하고 전송하면, 프로그램으로 작성한 바와 같이 아두이노 하드웨어가 시리얼 통신으로 입력 받은 문자를 출력하는 것을 볼 수 있을 것이다.
2. 시리얼 통신을 이용한 문자열 입력
앞선 예제에서는 문자를 아두이노 하드웨어에 전송하면 아두이노 하드웨어가 시리얼 모니터에 문자를 출력하는 것을 확인하였다. 하지만 문자열을 전송하면 아래 그림과 같이 한 문자씩 연속적으로 출력되는 것을 확인할 수 있다. 문자열을 구성하고 있는 문자 하나하나가 아닌, 입력 받은 문자열 자체를 다루고 싶다면 문자열을 저장할 변수의 자료형과 메소드만 변경해주면 된다.
2.1. 프로그램 작성
void setup() { Serial.begin(9600); // 시리얼 통신 시작 (통신 속도: 9600 bps) } void loop() { if (Serial.available() > 0){ // 버퍼에 데이터가 저장되었는지 확인 // 문자열 변수 선언 후 버퍼에 저장된 문자열을 변수에 저장 String data = Serial.readString(); Serial.print("data: "); // 시리얼 모니터에 문자열을 출력 Serial.println(data); // 변수에 저장된 데이터를 시리얼 모니터에 출력한 뒤 줄 바꿈 } }
2.2. 시리얼 모니터
시리얼 모니터 창 상단에 있는 칸에 문자열을 입력하면, 한 문자씩 연속적으로 출력되는 것이 아니라 문자열 자체가 출력되는 것을 볼 수 있을 것이다.
[함께 읽으면 좋은 페이지]
참고문헌
- 최훈. (2022). 팅커캐드 & 아두이노. 길벗캠퍼스.
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 | MOSFET IRF520 모듈 (0) 2023.12.22 아두이노 | 릴레이 DC 5V 모듈 (0) 2023.12.15 아두이노 프로젝트 | 자동차 후방 감지기 (0) 2023.12.01 아두이노 | 초음파센서 모듈 HC-SR04 (1) 2023.11.24 아두이노 프로젝트 | 젤다의 전설 시간의 오카리나 (0) 2023.11.17