메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

WAT-Arduino128 아두이노 자료실

예제 블루투스로 스텝모터 제어

2015.03.15 17:55

WhiteAT 조회 수:4834

개요

블루투스(컴퓨터 또는 안드로이드 폰)로 유니폴라 스텝모터를 제어해보자.



준비물

WAT-Arduino128

WAT-STEP1 [유니폴라스텝모터 구동 드라이버](설명) (구매)

블루투스 기본 예제 스터디(http://whiteat.com/Arduino/224919  )

시리얼통신 프로그램 ( http://whiteat.com/bSerialComCS/225993 )

안드로이드 블루투스어플(https://play.google.com/store/apps/details?id=com.whiteat.android.wat_bt_app1 )

 


보드 연결

WAT-Arduino128의 PORTA 와 WAT-STEP1 을 연결하고 WAT-STEP1 모듈에 12V 스텝모터용 전원을 연결합니다.



예제 열기

[파일] => [예제] => [WhiteAT] => [StepMotor]  => [bluetooth] 을 엽니다.

 



/*

  컴퓨터 또는 스마트폰으로 스텝모터 제어

           5가지 형태의 커맨드

           MnnnT 형태의 5bytes 이며 nnn 은 정수임

 

  >

   시계방향 빠르게 회전  (M099T : 시계방향으로 딜레이 1로 회전 n=99) 

   시계방향 느리게 회전  (M001T : 시계방향으로 딜레이99로 회전 n=01)

   정지                  (M000T : 정지 n=0 )

   반시계방향 느리게 회전 (M-01T:반시계방향으로 딜레이99로 회전 n=-1)

   반시계방향 빠르게 회전 (M-99T:반시계방향으로 딜레이 1로 회전 n=-99) 


  출처: http://whiteat.com/Arduino  


  보드

  WAT-Arduino128  https://kit128.com/goods/view?no=64

  WAT-STEP1 :  https://kit128.com/goods/view?no=41

*/

 

 

#include <WAT_Multi.h>

#include <WAT_STEP1.h>

 

// STEP1  : 유니폴라 1상 여자 방식

// STEP2  : 유니폴라 2상 여자 방식

// STEP12 : 유니폴라 1-2상 여자 방식

 

Step1 step(STEP2,PA0,PA1,PA2,PA3);

 

// 프로그램 시작 - 초기화 작업

void setup()

{

           Serial.begin(115200);    //시리얼 통신 초기화

          

           Serial1.begin(9600);    // HC-06 용 시리얼

           // key =  1234

           Serial1.print("AT+NAME BT - Whiteat.com\n");

}

 

void loop()

{

           step.Next();

}

 

String inString;

void serialEvent1()

{

           while (Serial1.available())

           {   

                     int inChar = Serial1.read();

                     if ( isAlphaNumeric(inChar) || inChar=='-')

                     {

                                inString += (char)inChar;

                     }

                     else if (inChar == '\n')

                     {

                                if(inString.length()>=5)

                                {

                                          if(inString.charAt(0) =='M' && inString.charAt(4) =='T' )

                                          {

                                                     inString = inString.substring(1,4);

                                                     step.setSpeed(inString.toInt());

                                                     Serial.print("Direction:");

                                                     Serial.print(step.DirString());

                                                     Serial.print(" , Turn Delay:");

                                                     Serial.println(step.getSpeed());

                                          }

                                          else

                                          {

                                                     Serial.print("Bad Packet[Data:");

                                                     Serial.print(inString);

                                                     Serial.println("]");

                                          }

                                }

                                else

                                {

                                          Serial.print("Short Data Retry [Data:");

                                          Serial.print(inString);

                                          Serial.println("]");

                                }

                                inString = "";

                     }

           }

}






디버깅 화면


 blue_stepmotor.jpg





블루투스에 연결된 컴퓨터 화면


M001T 를 보내면 시계방향으로 빠른 속도로 회전합니다.



M001T.jpg



wat-Arduino128_step1.jpg





안드로이드 블루투스 통신 화면