BASIC4MCU | 질문게시판 | 답변 : 아두이노 제어 질문 드립니다
페이지 정보
작성자 master 작성일2019-05-02 20:53 조회9,456회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8436
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-02 오후 9:00:05// by Ok-Hyun Park//int ULT=7; // 릴레이(초음파)int SW=8; // 작동스위치 푸시버튼사용int UP=9; // 실린더 UP 버튼int DOWN=10; // 실린더 DOWN버튼int LSU=11; // 리미트UPint LSD=12; // 리미트DOWNint EMG=13; // 비상정지버튼int IN1=3; // 드라이버 정int IN2=4; // 드라이버 역int EN=11; // PWM으로 속도 조절시 필요int mode=0; // 초기 정지모드//void motor_stop(){ digitalWrite(IN1,0); digitalWrite(IN2,0); }void motor_up() { digitalWrite(IN1,1); digitalWrite(IN2,0); }void motor_dn() { digitalWrite(IN1,0); digitalWrite(IN2,1); }//void setup(){pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(EN,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(EMG)||!digitalRead(SW)){ // 비상정지motor_stop(); digitalWrite(ULT,LOW); // 정지}else{if(digitalRead(SW)){ // 작동스위치if(digitalRead(LSD)){} // DOWN리미트 감지중이면 통과else{motor_dn(); digitalWrite(ULT,HIGH);while(!digitalRead(LSD)){ if(!digitalRead(EMG))return; } // DOWN리미트 감지까지 dn//delay(200); motor_stop(); delay(1500);//motor_up();while(!digitalRead(LSU)){ if(!digitalRead(EMG))return; } // UP리미트 감지까지 upmotor_stop(); digitalWrite(ULT,LOW);}}//if (digitalRead(UP ))motor_up();else if(digitalRead(DOWN))motor_dn();else motor_stop();}}
댓글 1
조회수 9,456닷모드님의 댓글
닷모드 작성일
마스터님 늘 도와주셔서 감사드립니다
이제 작동버튼을 눌렀을때 실행되는 동작들은 제대로 잘 되는데
아직 업버튼, 다운버튼을 눌렀을대 모터가 정 역 하는 기능이 되질 않습니다..
디지털 리드 앞에 느낌표도 넣어보고
디지털리드()==1 형식으로도 해보고
혹시 몰라 while문으로도 해보고
이프문의 위치도 바꿔도 보고 했는데 안되네요...