본문 바로가기

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

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

C#을 사용해서 아두이노와 시리얼 통신을 해보겠다.

C#은 C++과 다르게 Serial 객체를 선언하면 쉽게 그 시리얼 정보를 읽어서 사용할 수 있다.

C# 윈도우 폼을 사용해서 아두이노의 기본 LED를 제어해볼 것이다.

윈도우 폼은 위와 같이 구성한다.

먼저 시리얼 포트를 선택할 수 있도록 시리얼 포트를 콤보박스에 넣어야 한다.

콤보박스를 클릭하면 시리얼 포트를 새로고침해서 콤보박스에 넣어주게 할 것이다.

IO.Ports 객체를 불러와 using 한다.

콤보박스 클릭시 시리얼 정보를 콤보박스에 새로고침한다.

아두이노와의 연결을 위한 SerialPort 객체를 Form1 클래스 내에 선언한다.

다른 호출 함수, 쓰레드 등에서 공유가 가능해야하기에 Form1 클래스 내에 선언한다.

만약 서로 다른 Form 끼리 연결해서 사용하려면 공유 클래스를 따로 만들어 사용하면 된다.

연결하기 버튼 클릭시 위 코드처럼 작성하면 심플하게 시리얼 포트 연결을 관리할 수 있다.

serialPort1.BuadRate 의 값을 지정하여 통신속도를 지정할 수 있다.

그 외의 통신정보들은 왠만해서는 잘 안바뀌니 필요에 따라 바꾸도록 하자

켜기/끄기 버튼의 이벤트 함수는 위와 같이 심플하게 작성이 가능하다.

시리얼 포트가 연결되지 않았을 때는 return 하여 예외를 처리하는 것이다.

아두이노 코드는 정말 심플하다. 시리얼 통신속도를 지정해주고 수신받은 값을 분류하여 동작을 구분한다.

프로그램과 아두이노를 연결하여 실행하면 13번 LED를 제어할 수 있을 것이다.

 

C_Sharp_Serial1.zip
0.04MB