BASIC4MCU | 질문게시판 | 아두이노 조이스틱으로 스텝모터2개제어
페이지 정보
작성자 초보진 작성일2022-05-10 09:25 조회13,200회 댓글4건본문
안녕하세요 제가 모터라이징하면서 하나의 아두이노로 두개의 조이스틱으로 좌우 해서 2개의 스텝모터를 제어를 해야되는데요 하나하나씩은 제어는 가능한데 코드를 바꾸고 다시해보니까 이번에는 좌측에있는 조이스틱으로 좌우측 두개다 제어가되서요 저는 각각의 조이스틱으로 두개의 스텝모터를 제어하고싶어서요 아두이노가 2개있어서 따로 연결해서는 제어가 가능한데 하나의 아두이노로 2개스텝모터를 제어하고 싶어서요 조이스틱 모듈로 이용해 좌우측 하나하나요 코드는 작성해보았는데 어떤부분에서 잘못됬는지 궁금합니다.
이코드를 이용해서 하고있습니다 . 작동 구현하면 좌측에 있는 조이스틱으로 두개의 모터가 반응을하네요.. 부탁드리겠습니다 .어떤부분을 수정해야하나요 ?
#include <Stepper.h>
const int stepsPerRevolution = 64;
Stepper stepper(stepsPerRevolution,8,10,9,11);
Stepper stepper2(stepsPerRevolution,7,5,6,4);
void setup() {
stepper.setSpeed(220);
stepper2.setSpeed(220);
}
void loop() {
int sensorReading = analogRead(A0);
int sensorReading2 = analogRead(A1);
if (sensorReading < 300) {
stepper.step(1);
if (sensorReading2 < 300)
stepper2.step(1);
}
if (sensorReading > 800) {
stepper.step(-1);
if (sensorReading2 > 800)
stepper2.step(-1);
}
}
댓글 4
조회수 13,200master님의 댓글
master 작성일
#include <Stepper.h>
const int stepsPerRevolution=64;
Stepper stepper1(stepsPerRevolution,8,10,9,11);
Stepper stepper2(stepsPerRevolution,7,5,6,4);
//
void setup(){
stepper1.setSpeed(220);
stepper2.setSpeed(220);
}
//
void loop(){
int sensorReading1=analogRead(A0);
if(sensorReading1<300)stepper1.step(1);
if(sensorReading1>800)stepper1.step(-1);
//
int sensorReading2=analogRead(A1);
if(sensorReading2<300)stepper2.step(1);
if(sensorReading2>800)stepper2.step(-1);
}
초보진님의 댓글
초보진 작성일감사합니다!! 원하는대로 작동 잘됩니다!! loop함수 에서 따로따로 묶어서 해야되는것도 배웠습니다.!
master님의 댓글
master
if문이 독립적으로 작성되어 있으므로 섞여있어도 상관없지만
연관된 것들을 묶어 놓아야지 가독성이 좋아지겠죠
초보진님의 댓글
초보진
감사합니다 !!! 더욱 더 열심히 공부 해볼게요!