블루투스로 스텝모터 제어

개요

블루투스(컴퓨터 또는 안드로이드 폰)로 아두이노에 연결된 유니폴라 스텝모터를 제어해 봅니다.

 

준비물

 

WAT-Arduino128 예제

부품 목록
부품명 WAT-Arduino128

아두이노

아두이노

기능 아두이노
수량 1
판매처 https://kit128.com/goods/view?no=64

 

부품명 HC-06

HC-06 Bluetooth module

Bluetooth module

기능 블루투스 모듈
수량 1
판매처 https://kit128.com/goods/view?no=65

 

부품명 WAT-STEP1

WAT-STEP1
스텝모터 드라이버
기능 스텝모터 드라이버
수량 1
판매처 https://kit128.com/goods/view?no=41

 

 

 

 

 

 

핀 연결

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, 000, 1111
	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

 

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

 

2 댓글

  1. 황현아 응답

    비주얼스튜디오 만드는 과정은 나와있지 않나요??

화이트앳에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다