[아두이노] BLDC 모터드라이버 제어해보기

안녕하세요 대짜이찐입니다.

이번에는 아두이노로 BLDC 모터드라이버를 

제어하는 포스팅을 진행하겠습니다.

사용할 모터드라이버는 

smp36D200S 제품으로 BLDC 서보 모터 드라이버입니다.


PC UI프로그램도 있어서 
PC와 RS-232통신으로 프로그램만으로도 제어가 가능하지만,
이번엔 아두이노로 제어해보도록 하겠습니다.


아두이노와 연결하기전에 확인할 사실은 통신 타입입니다.
 이 제품의 통신 타입은 RS-232 통신입니다.
하지만 아두이노에는 RS-232가 없죠 

따라서 RS-232 to TTL(UART) 컨버터를 사용해야 합니다. 

출처-https://xenix82.tistory.com/23

RS-232통신은 제일 간단하게 연결시에는 3핀만 연결하면 됩니다. 
연결시에는 Rx와 Tx를 서로 교차하게 연결해야 합니다
Rx->Tx, Tx->Rx, Gnd->Gnd
그라운드는 통신레벨을 맞춰주기 위해 연결이 필요합니다.
하지만 위의 모듈들의 경우 Max232칩에 전원을 공급해야하기 때문에 
5V의 전원을 따로 공급해줘야 하는점 참고해주시기 바랍니다.


연결은 아두이노에서는 디지털핀 8,9번을 통신핀으로 연결,
Rs-232 to TTL 모듈과 모터드라이버를 
D-sub핀의 2,3,5번을 사용해서 연결해줍니다.

 

#include <SoftwareSerial.h> //0,1번핀 제외하고 Serial 통신을 하기 위해 선언

 // Serial 통신핀으로 D11번핀을 Rx로, D10번핀을 Tx로 선언

SoftwareSerial mySerial(8, 9); 

 

void setup()

{

 Serial.begin(115200); 

 mySerial.begin(115200);

}

 

void loop()

{

 //mySerial 핀에 입력이 들어오면, 바이트단위로 읽어서 PC로 출력

     if(mySerial.available()

    {

       Serial.write(mySerial.read());

     }

  //Serial 핀에 입력이 들어오면, 바이트단위로 읽어서 블루투스로 출력

     if(Serial.available())

    {

       mySerial.write(Serial.read());

     }

}

Colored by Color Scripter

cs


모터드라이버의 기본 통신 속도가 115200보오드레이드로 설정되어 있는점 
참고해 주시기바랍니다.

소스코드는 이전 블루투스 모듈을 제어했던 것과 같은 소스입니다.
소프트웨어시리얼 라이브러리를 사용하여,
기존 0,1은 PC와 통신 8,9번을 통해 모터드라이버와 통신합니다.

기본 통신 속도 및 설정은 PC와 모터드라이버를 연결해서 
기본 UI프로그램을 통해 할 수 있습니다.

그 이후 모터드라이버의 매뉴얼에 있는 내용 중 
오브젝트 명령어를 통해 모터를 동작시켜 보겠습니다.
target_velocity 오브젝트는 모터의 속도를 제어할 수 있는 명령어입니다.


저는 모터드라이버 UI를 통해 모터드라이버의 최대 속도를 2500으로 설정해놨습니다.
아두이노IDE 시리얼 모니터를 통해서 
target_velocity=2000을 전송해주면 모터가 동작합니다

본 포스팅에 사용된 제품은 디바이스마트에서 구매하실 수 있습니다.


감사합니다.





댓글 쓰기

0 댓글