BASIC4MCU | 질문게시판 | 아두이노 모터 정역제어
페이지 정보
작성자 맛나는바나나 작성일2019-04-18 14:27 조회6,761회 댓글0건본문
리밋스위치 3개로 모터를 1초동안 정회전시키고 그뒤로 1초동안 역회전시키고 1초동안 정지하는 회로를 짜보았는데 저는 모터가 한번씩 움직이고 리밋스위치가 재입력될때 다시 모터가 움직이는것을 원했는데 어떻게 하는지 잘 모르겠습니다..... 알려주시면 감사하겠습니다.
int Ls_1 = 2;
int Ls_2 = 3;
int Ls_3 = 4;
int motor_forward = 5;
int motor_backward = 6;
int ENA = 10;
void setup() {
pinMode(motor_forward, OUTPUT);
pinMode(motor_backward, OUTPUT);
pinMode(FND1, OUTPUT);
pinMode(FND2, OUTPUT);
pinMode(FND3, OUTPUT);
pinMode(ENA, OUTPUT);}
void loop() {
if(digitalRead(Ls_1)==HIGH) {
digitalWrite(ENA, HIGH);
digitalWrite(motor_forward, HIGH);
digitalWrite(motor_backward, LOW);
delay(1000);digitalWrite(ENA, HIGH);
digitalWrite(motor_forward, LOW);
digitalWrite(motor_backward, HIGH);
delay(1000);
digitalWrite(ENA, LOW);
digitalWrite(motor_forward, LOW);
digitalWrite(motor_backward, LOW);
delay(1000);
}
else if(digitalRead(Ls_2)==pulseIn) {
digitalWrite(ENA, HIGH);
digitalWrite(motor_forward, HIGH);
digitalWrite(motor_backward, LOW);
delay(1000);digitalWrite(ENA, HIGH);
digitalWrite(motor_forward, LOW);
digitalWrite(motor_backward, HIGH);
delay(1000);
digitalWrite(ENA, LOW);
digitalWrite(motor_forward, LOW);
digitalWrite(motor_backward, LOW);
delay(1000);
}
else if(digitalRead(Ls_3)==HIGH) {
digitalWrite(ENA, HIGH);
digitalWrite(motor_forward, HIGH);
digitalWrite(motor_backward, LOW);
delay(1000);
digitalWrite(motor_forward, LOW);
digitalWrite(motor_backward, HIGH);
delay(1000);
digitalWrite(ENA, LOW);
digitalWrite(motor_forward, LOW);
digitalWrite(motor_backward, LOW);
delay(1000);
}}
댓글 0
조회수 6,761등록된 댓글이 없습니다.