안녕하세요 대짜이찐입니다.
이번에는 아두이노로 BLDC 모터드라이버를
제어하는 포스팅을 진행하겠습니다.
사용할 모터드라이버는
smp36D200S 제품으로
BLDC 서보 모터 드라이버입니다.
PC UI프로그램도 있어서
PC와 RS-232통신으로 프로그램만으로도 제어가 가능하지만,
이번엔 아두이노로 제어해보도록 하겠습니다.
아두이노와 연결하기전에 확인할 사실은 통신 타입입니다.
이 제품의 통신 타입은 RS-232 통신입니다.
하지만 아두이노에는 RS-232가 없죠
따라서 RS-232 to TTL(UART) 컨버터를 사용해야 합니다.
RS-232통신은 제일 간단하게 연결시에는 3핀만 연결하면 됩니다.
연결시에는 Rx와 Tx를 서로 교차하게 연결해야 합니다
Rx->Tx, Tx->Rx, Gnd->Gnd
그라운드는 통신레벨을 맞춰주기 위해 연결이 필요합니다.
하지만 위의 모듈들의 경우 Max232칩에 전원을 공급해야하기 때문에
5V의 전원을 따로 공급해줘야 하는점 참고해주시기 바랍니다.
연결은 아두이노에서는 디지털핀 8,9번을 통신핀으로 연결,
Rs-232 to TTL 모듈과 모터드라이버를
D-sub핀의 2,3,5번을 사용해서 연결해줍니다.
모터드라이버의 기본 통신 속도가 115200보오드레이드로 설정되어 있는점
참고해 주시기바랍니다.
소스코드는 이전 블루투스 모듈을 제어했던 것과 같은 소스입니다.
소프트웨어시리얼 라이브러리를 사용하여,
소프트웨어시리얼 라이브러리를 사용하여,
기존 0,1은 PC와 통신 8,9번을 통해 모터드라이버와 통신합니다.
기본 통신 속도 및 설정은 PC와 모터드라이버를 연결해서
기본 UI프로그램을 통해 할 수 있습니다.
그 이후 모터드라이버의 매뉴얼에 있는 내용 중
오브젝트 명령어를 통해 모터를 동작시켜 보겠습니다.
target_velocity 오브젝트는 모터의 속도를 제어할 수 있는 명령어입니다.
저는 모터드라이버 UI를 통해 모터드라이버의 최대 속도를 2500으로 설정해놨습니다.
아두이노IDE 시리얼 모니터를 통해서
target_velocity=2000을 전송해주면 모터가 동작합니다
본 포스팅에 사용된 제품은 디바이스마트에서 구매하실 수 있습니다.
SPM36D200S - https://www.devicemart.co.kr/goods/view?no=1324941
감사합니다.
0 댓글