아두이노는 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를 제어하는 것이다.
이상 자세한 라이브러리의 사용법은 여기서 끝마치겠다.
다음은 프로토콜 통신에 대해 공부해보자
'아두이노 (Arduino) > 통신 (Communication)' 카테고리의 다른 글
[Serial] 3. C# 아두이노 센서값 실시간 동기화하기 (3) | 2021.11.09 |
---|---|
[Serial] 2. C# 아두이노 실시간 제어하기 (0) | 2021.11.07 |
[Serial] 1. C# 아두이노와 시리얼 통신하기 (0) | 2021.11.07 |
[Serial] 2. C++ 아두이노와 프로토콜 통신하기 (2) | 2021.07.31 |