반응형

 

 

아두이노와 RS485toUSB로 1:N통신 5편! 모터드라이버(L298N)를 이용해서 DC모터 제어/RPM측정 해보기!
-아두이노끼리 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라고 해보자!
-A에는 녹색LED와 적색LED 그리고 FND모듈(TM1637)을 1개씩 연결한다! B에는 모터드라이브(L298N)을 연결하고 모터B쪽에 DC모터를 1개 연결한다! C에는 DC모터의 RPM측정을 위한 홀센서를 1개 연결한다!
-(시나리오) 윈폼에서 B에달린 모터드라이버의 방향과 파워를 제어한다! 이때 B의 모터방향이 정회전이면 A의 녹색LED가 켜지고 역회전이면 적색 LED가 켜진다! 그리고 B의 모터드라이버에 세팅된 파워값을 A의 FND모듈 화면에 출력한다! 그리고 DC모터의 RPM값을 측정해서 윈폼에서 요청하는 주기에 맞춰서 C는 윈폼에 리포트 한다!

 

example79.zip
0.05MB

 


C#예제 79-1 (결과출력용 아두이노)
 윈폼에서 수신받은 데이터로 LED와 FND를 제어해보자!
 현재 모터드라이버의 상태가 정회전이면 녹색LED가 켜지고 역회전이면 적색LED가 켜지도록하라!
 모터드라이버에 세팅된 파워(PWM)를 100분율로 환산해서 FND모듈에 출력하라!
 녹색LED는 D5에 연결했고 적색LED는 D4에 연결했다!
 FND모듈(TM1637)의 CLK핀은 D6에 연결했고 DIO핀은 D7에 연결했다!

C#79-1.txt
0.00MB


C#예제 79-2 (모터드라이버용 아두이노코드)
 아두이노에 모터드라이버를 IN3핀을 D4에 연결, IN4핀을 D5에 ENB핀을 D6에 연결했다
 윈폼에서 데이터를 받아서 모터드라이버를 작동시켜라!

C#79-2.txt
0.00MB


C#예제 79-3 (홀센서용 RPM측정 아두이노코드)
 아두이노에 홀센서를 D2에 연결해서 인터럽트기능으로 펄스의수를 세어보자!
 그리고 RPM값으로 환산해서 마스터가 요청하는 주기에 맞춰서 결과를 전송하자!

C#79-3.txt
0.00MB

USB to RS485 드라이버

http://www.wch.cn/download/CH341SER_EXE.html

C#레퍼런스강의(#74-1)

https://bota.tistory.com/1482

아두이노레퍼런스강의(#124)

https://bota.tistory.com/1355

아두이노RPM측정코드(#230-1-3)

https://bota.tistory.com/1474

아두이노레퍼런스코드(모터드라이버#221-3)

https://bota.tistory.com/1464

반응형
Posted by 덕력킹
,