[C#윈폼77] 아두이노와 RS485toUSB로 1:N통신 4편! 릴레이를 이용해서 DC모터 제어/RPM측정 해보기!(녹칸다/포로리야공대가자)
프로그래밍/RS485모드버스(modbus) 2021. 1. 27. 22:07
아두이노와 RS485toUSB로 1:N통신 4편! 릴레이를 이용해서 DC모터 제어해보기!
-아두이노끼리 RS485통신으로 1:N통신을 구현한 예제는 마무리 하고 시즌2로 넘어가는 예제이다!
-이번편의 메인테마는 C#을 이용해서 RS485를 활용할 수 있는 GUI를 winform으로 구현하고 제어를 하거나 모니터링 해보는 것이다!
-기본에 어떤 방식으로 제어하는지는 모르겠고 녹칸다의 개인적인?방식으로 츄라이를 해보는 예제이다!
-rs485를 usb로 변환해주는 아주 저렴하면서 좋은 제품이 있다!(USB to RS485 혹은 RS485 to USB 검색!)
-PC에 모듈을 연결하고 아두이노 3대를 준비해서 각각 RS485모듈을 하나씩 달아준다!
-그러면 PC와 아두이노 3대가 서로 데이터를 주고 받을 수 있는 상태가 될 것이다!
-데이터는 Request & Response 방식으로 구현해볼 생각이다! 그리고 슬레이브가 온라인인지 오프라인인지도 체크해보자!
-아두이노 3대를 각각 A, B, C라고 해보자!
-릴레이(relay)를 이용한 DC모터제어와 RPM측정 예제이다!
-A에는 녹색LED와 적색LED를 1개씩 연결하고 B에는 DC모터 제어를위한 릴레이를 연결하고 C에는 RPM측정을 위한 홀센서를 연결해보자!
-윈폼에서 릴레이제어 명령이 떨어지면 B에서 릴레이를 이용해서 DC모터를 제어하고, 릴레이가 ON상태면 A의 녹색LED가 켜지고 OFF상태면 적색LED가 켜진다!
-그리고 윈폼에서 C에게 측정중인 RPM값을 요청하면 C는 값을 반환하고, 윈폼에 결과를 적절한 컨트롤로 디스플레이 해보자!
C#예제 77-1(LED가 있는 아두이노용 코드)
아두이노에 빨간LED를 D4에 연결하고 녹색 LED를 D5에 연결했다!
DC모터가 작동중이면 녹색LED가 켜지고, 꺼져있으면 적색ELD가 켜지도록하고
그것에 대한 제한권한은 C#윈폼에게 있도록 하라!
C#예제77-2(릴레이가 연결된 아두이노용 코드)
릴레이가 D4에 연결되어있다! 윈폼에서 받은 메시지에 따라서 릴레이를 on/off시키시오!
C#예제 77-3 (홀센서가 있는 슬레이브3번 코드)
아두이노에 홀센서를 D2에 연결해서 인터럽트기능으로 펄스의수를 세어보자!
그리고 RPM값으로 환산해서 마스터가 요청하는 주기에 맞춰서 결과를 전송하자!
USB to RS485 드라이버
http://www.wch.cn/download/CH341SER_EXE.html
C#레퍼런스강의(#74-1)
아두이노레퍼런스강의(#124)
아두이노RPM측정코드(#230-1-3)