BASIC4MCU | 질문게시판 | 답변 : 아두이노 스텝모터 소스 질문입니다.
페이지 정보
작성자 master 작성일2018-06-07 11:04 조회4,906회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=1523
본문
//#include <Stepper.h>Stepper M28BYJ(768,11,9,10,8); // 1회전 768스텝이라고 설정//int EchoPin=7,TrigPin=6;//long duration,val;byte flag=0;//void setup(){pinMode(EchoPin,INPUT); pinMode(TrigPin,OUTPUT);Serial.begin(9600);M28BYJ.setSpeed(40); // 20rpm 속도로 설정}//void loop(){digitalWrite(TrigPin,HIGH); delayMicroseconds(5); digitalWrite(TrigPin,LOW);duration=pulseIn(EchoPin,1); val=duration/58; // 거리를 cm 단위로 받음Serial.print(val); Serial.println("cm");//if(val<30){ // 15cm 이내if(flag==0){ flag=1; M28BYJ.step(6000); } // 정}else{ // 15cm 이상if(flag==1){ flag=0; M28BYJ.step(-6000); } // 역}//delay(10); // 10ms}이 소스 코드 거덩요 요기서if문 중에 flag==0{flag=1; M28BYJ.step(6000);}인데요flag들어가는 부분에서 모르겠어요그리고 요기서 추가로 스텝모터를 초음파센서에서 손을때면 바로 역방향으로돌아가는 소스코드를 추가로 알고 싶습니다. 말하자면~~~ 끝까지 정방향으로 올라간뒤역방향으로 내려가지 않구 바로 거리가 감지가 없으면 바로 역방향으로 가는 그런 소스코드를 알고싶어요부탁드려요~~~아참참... 그리고 요기서 속도를 제어하는 소스코드에서50을 넘으면 역회전이 안되던데;; 왜그런가요?
감지 시 6000 스텝만 동작시키려고 작성 한 것인데요
if(val<30){ // 15cm 이내if(flag==0){ flag=1; M28BYJ.step(6000); } // 정}else{ // 15cm 이상if(flag==1){ flag=0; M28BYJ.step(-6000); } // 역}여기서 flag 변수가 없는 경우에는
30 이하에서 정회전을 계속 하게되고
아니면 역회전을 계속하게 됩니다.
768스텝으로 1회전한다면 약 8회전입니다.
댓글 0
조회수 4,906등록된 댓글이 없습니다.