BASIC4MCU | 질문게시판 | 아두이노 모터 작동이 안합니다
페이지 정보
작성자 리셀 작성일2022-11-26 12:41 조회748회 댓글3건첨부파일
본문
안녕하세요 저번에 질문드렸던 전기과 학생입니다. 다시 코딩을 짜서 해보던중 모터가 동작이 안되어 다시 재질문합니다.
1번 리미트 스위치를 누르면 정회전 2번 리미트 스위치 누르면 역회전 동작해야하는데 모터 자체가 동작을 안합니다.
#include <Stepper.h> // 스테핑 모터 라이브러리를 정의 한다
int in1Pin = 12; //[A] 상을 정의 한다
int in2Pin = 11; //[B] 상을 정의 한다
int in3Pin = 10; //[/A] 상을 정의 한다
int in4Pin = 9; //[/B] 상을 정의 한다
int limit1=4; //리미트스위치 4번으로 선언
int limit2=5; //리미트스위치 5번으로 선언
int steps=50;
Stepper motor(50, in1Pin, in2Pin, in3Pin, in4Pin);
void setup() {
pinMode(in1Pin, OUTPUT); // [A] 상을 출력으로 지정한다
pinMode(in2Pin, OUTPUT); //[B] 상을 출력으로 지정한다
pinMode(in3Pin, OUTPUT); // [/A] 상을 출력으로 지정한다
pinMode(in4Pin, OUTPUT); // [/B] 상을 출력으로 지정한다
pinMode(limit1, INPUT); //리미트스위치1을 입력으로 지정한다
pinMode(limit2, INPUT); //리미트스위치2을 입력으로 지정한다
motor.setSpeed(10); // 스텝모터의 스피드 설정 함수 (RPM)
Serial.begin(9600);
}
void loop() {
if(limit1==HIGH){ //리미트스위치1이 눌린상태일때면
motor.step(steps); //정회전
delay(1000);
}
if(limit2==HIGH){ //리미트스위치2이 눌린상상태이면
motor.step(-steps); //역회전
delay(1000);
}
}
답변해주시면 큰 힘이 될것같습니다 답변 부탁드립니다!
댓글 3
조회수 748master님의 댓글
master 작성일
리미트 스위치 연결 떼어내세요
현재처럼 연결하면 전원 쇼트납니다.
master님의 댓글
master 작성일
리미트 스위치 3핀 중 2핀만 사용하세요
COM,NO 두개를 사용하고 NC는 연결하지 않습니다.
COM을 GND에 연결하면 NO는 아두이노핀에 연결합니다.
pinMode(limit1, INPUT_PULLUP); //리미트스위치1을 입력으로 지정한다
pinMode(limit2, INPUT_PULLUP); //리미트스위치2을 입력으로 지정한다
INPUT_PULLUP으로 설정 해야 합니다.
if(limit1==0){ //리미트스위치1이 눌린상태일때면
체크 논리도 반대로 바꿔야합니다.
리셀님의 댓글
리셀
감사드립니다. 큰 도움이 되었습니다!