BASIC4MCU | 질문게시판 | 스텝모터 버튼제어 질문 있습니다.
페이지 정보
작성자 시로이나즈 작성일2019-05-12 02:46 조회5,029회 댓글1건본문
마스터님이 올려주신 코딩으로 정말 많은 도움이 되었습니다.
간단하게 제어할수 있는 시스템으로 골머리를 앓았다니 저의 공부가 참 부족하단것을 깨달았습니다.
염치 불구하고 또다시 난관에 봉착하여 한가지 여쭤보고 싶은것이 있습니다.
http://www.devicemart.co.kr/goods/view?no=1310713
상기 아두이노 버튼을 2개 이용하여 버튼1을 누르고있을때는 스텝모터가 정회전,
버튼2를 누르고있을때는 스텝모터가 역회전 하는 것을 코딩하고 있습니다.
마스터님의 코딩을 응용하였고, 컴파일또한 정상적으로 됩니다.
하지만 버튼을 눌렀을때 스텝모터
제어가 정확히 이루어지지 않는 것같습니다.
버튼을 눌렀을때 LOW 입력으로 알고 있습니다.
또한 버튼을 누를때 만큼은 조도센서 출력에 스텝모터가 영향받지 않도록 하고 싶은데
저의 지식으로는 어떤 함수를 사용해야할지도 감이 안잡혀 또다시 질문 올립니다.
주말간 고생 많으십니다. 소중한 고견 남겨주시면 정말 감사하겠습니다.
#include <Stepper.h>
const int STEPS=833;
// int in1Pin=8,in2Pin=9,in3Pin=10,in4Pin=11;
Stepper stepper(STEPS,8,9,10,11);
//
// int upper_cds1=A0,lower_cds2=A1;
//
int upper,lower;
//
int button1,button2;
void setup(){pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT);
stepper.setSpeed(30);
Serial.begin(9600);
pinMode(button1, INPUT_PULLUP); pinMode(button2, INPUT_PULLUP);
}//
void loop(){
upper=analogRead(A0); Serial.print(upper); Serial.print(", ");
lower=analogRead(A1); Serial.println(lower);
//
if(upper>(lower+50)){ stepper.step( STEPS); }
if((upper+50)<lower){ stepper.step(-STEPS); }
button1=analogRead(A2); Serial.print(button1); Serial.print(",");
button2=analogRead(A3); Serial.println(button2);if(button1=LOW) {stepper.step( STEPS); }
if(button2=LOW) {stepper.step( -STEPS); }
}
댓글 1
조회수 5,029master님의 댓글
master 작성일
button1=analogRead(A2); Serial.print(button1); Serial.print(",");
button2=analogRead(A3); Serial.println(button2);
if(button1=LOW){ stepper.step( STEPS); }
if(button2=LOW){ stepper.step( -STEPS); }
위 코드를 아래처럼 변경해보세요
button1=digitalRead(A2); Serial.print(button1); Serial.print(",");
button2=digitalRead(A3); Serial.println(button2);
while(digitalRead(A2)==LOW){ stepper.step( STEPS); }
while(digitalRead(A3)==LOW){ stepper.step( -STEPS); }