#define steps 5
#define dir 6
#define ms1 8
#define ms2 9
#define ms3 10 //핀연결
unsigned int val1, val2, val3; //입력할 변수값 스텝수, 회전속도 딜레이, 회전방향
unsigned int i; //for문에 사용할 변수
void setup(){
Serial.begin(9600);
pinMode(steps, OUTPUT);
pinMode(dir, OUTPUT);
pinMode(ms1, OUTPUT);
pinMode(ms2, OUTPUT);
pinMode(ms3, OUTPUT); //신호보낼 핀 출력설정
digitalWrite(ms1, LOW);
digitalWrite(ms2, LOW);
digitalWrite(ms3, LOW); //분주설정
}
void loop(){
if(Serial.available()){ //시리얼 입력이 있을경우
val1=Serial.parseInt(); //스텝수 입력
val2=Serial.parseInt(); //회전속도를 결정하는 딜레이값 입력(값이 작을수록 회전속도가 빨라짐)
val3=Serial.parseInt(); //회전방향을 결정하는 입력
digitalWrite(dir, val3); //회전방향 출력
for(i=0; i<val1; i++){ //정해진 스텝수만큼 펄스입력
digitalWrite(steps, HIGH);
delayMicroseconds(val2); //딜레이값
digitalWrite(steps, LOW);
delayMicroseconds(val2);
}
}
}