본문 바로가기

아두이노 (Arduino)/통신 (Communication)

[Serial] 1. C++ 아두이노와 시리얼 통신하기

아두이노는 UART 시리얼 통신을 통해 컴퓨터와 데이터를 주고 받는다.

이번에는 C++을 사용하여 아두이노와 시리얼 통신을 하여 데이터를 주고 받아보자

아두이노 공식 포럼에서는 C++를 사용한 시리얼 통신 라이브러리를 제공하고 있다.

https://playground.arduino.cc/Interfacing/CPPWindows/

 

Arduino Playground - CPPWindows

Interfacing... Arduino and C++ (for Windows) As I found it pretty hard finding the good information, or an already working code to handle Serial communication on windows based system, I finally made a class that do what is needed for basic Serial Communica

playground.arduino.cc

위 라이브러리 코드를 자신이 사용할 프로젝트 파일에 추가하여 사용하면 된다.

위 처럼 소스 파일에 헤더파일과 cpp 파일을 추가하여 포럼에 안내된 코드를 추가하면 된다.

코드를 추가하고 Serial.cpp 의 CreateFile 에 오류가 생긴다면 CreateFileA로 수정하자

이후 예제 코드를 입력한 후 자신의 아두이노 포트를 알맞게 수정하고 실행하면 기본적인 데이터를 받는 코드는 완성된다.

장치관리자를 들어가면 현재 연결된 아두이노가 어느 포트로 등록되어 있는지를 확인할 수 있다.

예제 코드를 아두이노 포트를 수정하여 실행하면 아두이노와 통신할 수 있게된다.

위와 같이 작성후 cpp 파일을 실행하면 아두이노에서 출력한 Hello World! 문구를 확인할 수 있다.

 

이렇게 아두이노와 통신을 하기위한 모든 준비는 마쳤다. 그렇다고 데이터를 받기만 할 것인가?

0.5초 주기로 데이터를 전송하여 아두이노에서는 그 값에 따라 LED를 제어해보도록 할 것이다.

위 코드와 같이 수정하여 업로드하면 C++로 만든 프로그램에서 아두이노에게 ON, OFF의 string 데이터를 전달하고, 아두이노는 ON, OFF의 값을 인식하여 내장 13번 LED를 제어하는 것이다.

 

이상 자세한 라이브러리의 사용법은 여기서 끝마치겠다.

 

다음은 프로토콜 통신에 대해 공부해보자

 

sketch_jul29a.ino
0.00MB
Project1.zip
0.00MB