BASIC4MCU | 질문게시판 | 답변 : 아두이노 스텝모터 스텝모터 드라이버
페이지 정보
작성자 master 작성일2019-05-28 18:02 조회14,388회 댓글5건본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-28 오후 6:09:08// by Ok-Hyun Park#include <Stepper.h>Stepper myStepper(1024,13,12,11,10);//bool stat,flag=0;//void setup(){Serial.begin(9600);myStepper.setSpeed(70);for(int i=10; i<=13; i++)pinMode(i,OUTPUT);}//void loop(){stat=0; // 초기화for(int i=2; i<=9; i++){ // 2번핀~9번핀 센서 체크if(digitalRead(i))stat=1; // 하나라도 입력이 있으면 set}//if(stat==0){if(flag==0){ flag=1; myStepper.step(20); Serial.println("STOP"); }}else{if(flag==1){ flag=0; myStepper.step(-20); Serial.println("GO"); }}}
댓글 5
조회수 14,388아두이노굿님의 댓글
아두이노굿 작성일flag 함수로 시간 제어를 할때 0 과 1만 되고 2 3등 다른숫자는 안되는데 그 이유가 있나요??
master님의 댓글
master 작성일
bool stat,flag=0;
bool은 0과 1만을 가지는 변수형입니다.
아두이노굿님의 댓글
아두이노굿 작성일그럼 stat만 bool로 정의하고 flag를 따로 정의하면 터치했을때와 안했을때 시간을 각각 제어할수 있나요?
master님의 댓글
master
하나만 바꿔도 되고
둘 다 char 또는 int로 선언하면 됩니다.
아두이노굿님의 댓글
아두이노굿 작성일
만약 int 를 사용하여 flag 를 정의 할때 터치할때 반시계 방향으로 1만큼 터치하지 않을때 시계방향으로 20만큼 회전 하게 하려면
#include <Stepper.h>
Stepper myStepper(1024,13,12,11,10);
//
bool stat=0;
int flag=0;
//
void setup(){
Serial.begin(9600);
myStepper.setSpeed(45);
for(int i=10; i<=13; i++)pinMode(i,OUTPUT);
}
//
void loop(){
stat=0; // 초기화
for(int i=2; i<=9; i++)
{
if(digitalRead(i))stat=1;
}
if(stat==0)
{
if(flag==0);
{
flag=20;
myStepper.step(70);
Serial.println("STOP");
}
}
else
{
if(flag==1 )
{ flag=0;
myStepper.step(-70);
Serial.println("GO");
}
}
}
이렇게 명령어를 주는게 맞나요??