

예제 시리얼 포트로 스텝모터 제어
2015.03.15 17:55
개요
시리얼 포트 데이터로 유니폴라 스텝모터를 제어해보자.
준비물
WAT-STEP1 [유니폴라스텝모터 구동 드라이버](설명) (구매)
보드 연결
WAT-Arduino128의 PORTA 와 WAT-STEP1 을 연결하고
WAT-STEP1 모듈에 12V 스텝모터용 전원을 연결합니다.
예제 열기
[파일] => [예제] => [WhiteAT] => [StepMotor] => [Serial] 을 엽니다.
시리얼포트로 키 입력을 받아
스텝모터 회전 속도/방향을 조절하는 예제
예>
'1' 입력시 delay(99) 로 시계방향 회전 - 느림
'99' 입력시 delay(1) 로 시계방향 회전 - 빠름
'-1' 입력시 delay(99)로 반시계방향 회전 - 느림
'-99' 입력시 delay(1)로 반시계방향 회전 - 빠림
출처: 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);
//시리얼 통신 초기화
}
void loop()
{
step.Next();
}
String inString;
int m_speed = 4;
void serialEvent()
{
while (Serial.available())
{
int inChar =
Serial.read() ;
if
(isDigit(inChar) || inChar=='-')
{
inString += (char)inChar;
}
else if (inChar == '\n')
{
if(inString.length()>0)
{
m_speed = inString.toInt();
step.SetInterval(m_speed);
Serial.print("Turn Delay:");
Serial.println(inString.toInt());
Serial.println(step.GetInterval());
}
inString = "";
}
}
}