BASIC4MCU | 질문게시판 | 아두이노 코딩 버튼2개로 스텝모터 제어 질문
페이지 정보
작성자 master 작성일2018-08-01 14:04 조회6,109회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2602
본문
버튼 2개로 스텝모터 제어를 하려고하는데버튼을 어떻게 연결해야될지 모르겠구요공간이 두개 있다고하면버튼1을 누르면 공간1에 있으면 모터가 안움직이고버튼2를 누르면 공간2로 원하는만큼 모터가 돌고공간2에서 버튼2를 누르면 모터가 안움직이고공간2에서 버튼1을 누르면 반대로 원하는 만큼 모터가 돌았으면 하는데어떤 부품이 필요하고 어떻게 코딩을 해야할지 감이 안오네요.//
//#include <Stepper.h>int in1Pin=12;int in2Pin=11;int in3Pin=10;int in4Pin=9;Stepper motor(768,in1Pin,in2Pin,in3Pin,in4Pin);//void setup(){pinMode(in1Pin,OUTPUT); pinMode(in2Pin,OUTPUT); pinMode(in3Pin,OUTPUT); pinMode(in4Pin,OUTPUT);motor.setSpeed(20);//Serial.begin(9600);}//void loop(){if(Serial.available()){int steps=Serial.parseInt();motor.step(steps);}}https://kocoafab.cc/tutorial/view/727
위 사이트의 예제입니다.
수정해서 만들어보죠
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-07-20 오전 10:10:25// by Ok-Hyun Park//#include <Stepper.h>int in1Pin=12;int in2Pin=11;int in3Pin=10;int in4Pin=9;Stepper motor(768,in1Pin,in2Pin,in3Pin,in4Pin);//int pos=0,target=0;//void setup(){pinMode(in1Pin,OUTPUT); pinMode(in2Pin,OUTPUT); pinMode(in3Pin,OUTPUT); pinMode(in4Pin,OUTPUT);motor.setSpeed(20);}//void loop(){if(digitalRead(2))target=0; // 0위치로 이동if(digitalRead(3))target=768; // 768위치로 이동//if(pos<target)motor.step(1);if(pos>target)motor.step(-1);}
코드가 워낙 간단해서 어렵지 않을겁니다.문제점은전원을 끄기 전에 0 위치로 보낸 후에 전원을 꺼야합니다.그렇지 않으면 처음 전원 넣었을 때 0위치로 보내도록 코드를 추가해야합니다.원점 이동용 리미트 스위치도 추가해야하죠뭘 하려는지 모르니 여기까지만..
댓글 0
조회수 6,109등록된 댓글이 없습니다.