BASIC4MCU | 질문게시판 | 토글스위치를 사용한 dc모터 정역회전 제어 부분에 있어서 질문드립니다...
페이지 정보
작성자 쿤싼 작성일2022-06-10 15:49 조회1,715회 댓글4건본문
int Echo=A1,Trig=A0;
int motor_go=1,motor_back=2;
int button_state = 0;
void setup() {
pinMode(3, INPUT_PULLUP);
pinMode(Echo, INPUT);pinMode(Trig,OUTPUT);
}
void run(int time) {//정회전 설정
analogWrite(motor_go,100); analogWrite(motor_back,0);
}
void back(int time) {//역회전 설정
analogWrite(motor_go,0); analogWrite(motor_back,100);
}
void stop(int time) {//역회전 설정
analogWrite(motor_go,0); analogWrite(motor_back,0);
}
void loop() {
if (digitalRead (3) == 0 )
{
if ( button_state ==0) { run(6);}
button_state = 1;
else if ( button_state == 0 ){ back(6); }
buttom_state =0;
else { stop();) }
}
토글스위치를 처음 사용해봐서 어디부분에서 문제가 생기는지 파악이 어렵습니다.
모터는 시간으로 제어하려고 시도했고 토글스위치 3개의 선택지중에 정회전 역회전 정지 3가지 기능을 사용하고 싶습니다.
혼자 한 4시간 끙끙대다가 질문해봅니다,,,,
댓글 4
조회수 1,715master님의 댓글
master 작성일
토글 스위치 가운데 핀은 GND에 연결하고
양쪽은 아두이노 핀을 하나씩 연결합니다.
현재 3번핀을 연결했으니 4번핀도 추가하세요
//
0번핀과 1번핀은 업로드와 시리얼모니터에서 사용하므로 다른 용도로 사용하면 안됩니다.
초음파센서를 구지 아나로그 핀을 사용 할 필요가 있을까요?
남는 디지털 핀에 연결합니다.
(아나로그 핀은 디지털 핀이 부족 할 때 고려하세요)
analogWrite는 PWM 핀을 사용해야 합니다.
핀을 전부 재 정의 해야겠습니다.
master님의 댓글
master 작성일
int Echo=7,Trig=8;
int motor_go=5,motor_back=6;
//
int button_state=0;
//
void setup(){
pinMode(3,INPUT_PULLUP); pinMode(4,INPUT_PULLUP);
pinMode(Echo,INPUT); pinMode(Trig,OUTPUT);
}
//
void run(int time){//정회전 설정
analogWrite(motor_go,100); analogWrite(motor_back,0);
}
//
void back(int time){//역회전 설정
analogWrite(motor_go,0); analogWrite(motor_back,100);
}
//
void stop(int time){//역회전 설정
analogWrite(motor_go,0); analogWrite(motor_back,0);
}
//
void loop(){
if (digitalRead(3)==0){ run(6); }
else if(digitalRead(4)==0){ back(6); }
else { stop(); }
}
핀이 모두 달라졌습니다. 연결 다시 하세요
master님의 댓글
master 작성일
3포지션이든 10포지션이든
핀을 하나만 연결해서는 입력 받을 수 있는 경우의 수가 0,1 두 가지 뿐입니다.
이 것으로 정회전/역회전/정지/ 를 구분하지 못합니다.
쿤싼님의 댓글
쿤싼 작성일감사합니다 싸랑해요