BASIC4MCU | 질문게시판 | 아두이노 DC모터 제어 질문드려요
페이지 정보
작성자 닷모드 작성일2019-04-03 21:19 조회4,072회 댓글0건본문
제가 하고자 하는것은 이것입니다.!
1. 스위치 1개(작동버튼), 리미트 스위치 두개 (UP, DOWN), UP스위치 , DOWN 스위치 , 비상정지버튼
2. 작동스위치를 누르면 DC모터가 구동된다.
3. DOWN리미트 스위치에 닿으면 DC모터가 1초간 더 작동후 1.5초간 멈춘다
4. 1.5초간 멈춘 후 UP리미트 스위치에 닿을떄 까지 모터가 역방향 한다
5. UP리미트 스위치에 닿으면 작동이 끝이 난다 .
UP스위치를 누르면 모터가 역회전한다
DOWN스위치를 누르면 모터가 정회전한다
비상정지 버튼이 눌리면 그자리에서 작동이 정지한다.
입니다!
int SW = 8; //작동스위치 푸시버튼사용 int EMG = 9; //비상정지버튼 int UP = 10; //실린더 UP 버튼 int DOWN = 11; // 실린더 DOWN버튼 int LSU = 7; //리미트UP int LSD = 6; //리미트DOWN int ULT = 12; // 릴레이(초음파) int IN1 = 3; //드라이버 정 int IN2 = 4; //드라이버 역 int enablePin = 11; void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(enablePin, OUTPUT); pinMode(ULT, OUTPUT);//릴레이(진동자 On/Off) pinMode(SW, INPUT_PULLUP); pinMode(LSU, INPUT_PULLUP); pinMode(LSD, INPUT_PULLUP); pinMode(EMG, INPUT_PULLUP); pinMode(UP, INPUT_PULLUP); pinMode(DOWN, INPUT_PULLUP); } void loop() { if(digitalRead(SW)== 1 && digitalRead(LSU) ==1 && digitalRead(EMG) == HIGH){ digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); }// 작동스위치, 리미트UP 둘다 1일경우, 비상정지버튼 0 일경우 모터 구동 else if(digitalRead(LSD)== 1 && digitalRead(EMG) == HIGH){ //리미트DOWN 감지, 비상정지 OFF시 초음파 On 모터 0,2초 가동 1.5초간 정지, 다시역회전, 초음파 OFF digitalWrite(ULT, HIGH);//초음파 ON digitalWrite(IN1, HIGH);// 정회전 digitalWrite(IN2, LOW); delay(200); //모터 0.2초 더 가동 digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); delay(1500);//1.5초간 정지 digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);// 모터 역회전 digitalWrite(ULT, LOW); } else if(digitalRead(LSU)==1 && digitalRead(EMG) == HIGH){//리미트UP에 닿으면 모터정지 digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);//모터정지 digitalWrite(ULT, LOW);//초음파 릴레이 OFF } else if(digitalRead(EMG) == LOW){ //비상정지ON시 모터 정지, 초음파릴레이 OFF digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(ULT, LOW);//초음파 off } else if(digitalRead(UP) == 1){ // UP버튼 꾹 누르고 있을동안 모터가 역회전함 digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);// 모터 역회전 } else (digitalRead(DOWN) == 1){ //DOWN버튼 꾹 누르고 있을동안 모터가 정회전함 digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);// 모터 정회전 } }
이게 제가 짠건데요
if문을 제대로 잘 썻는지 잘 ㄹ모르겠네요..
댓글 0
조회수 4,072등록된 댓글이 없습니다.