아두이노

원단커터기 자동화

내동 2021. 1. 14. 01:03

시작스위치=  7  리버스스위치 = 2   엔드스위치= 3  R_pwm 5  L_pwm =6

BTS7960 모터 드라이버   커터기 =4    R_EN=+5v   L_EN=+5v

#define cutter 4
#define R_pwm 5
#define L_pwm 6 
const int  start_bt = 7;
const int end_sw =3;
 const int reverse = 2;
 int end_state =0, reverse_state =0, start_state =0,current_state =0;

void setup() {
  pinMode(cutter, OUTPUT);
  pinMode(start_bt, INPUT);
  pinMode(end_sw, INPUT);
  pinMode(reverse, INPUT);
  pinMode(R_pwm, OUTPUT);
  pinMode(L_pwm, OUTPUT);
  end_state= digitalRead(end_sw);
  reverse_state = digitalRead(reverse);
  start_state = digitalRead(start_bt);
    }

void loop() {
  end_state= digitalRead(end_sw);
  reverse_state = digitalRead(reverse);
  start_state = digitalRead(start_bt);
 if(end_state == HIGH){ current_state =2;}
 if(reverse_state == HIGH){ current_state =1;}
 if(start_state == HIGH){current_state =0;}
 switch(current_state){
  case 0: Forward();  break;
  case 1:  backward();  break;
  case 2:motor_stop();   break; }  }

void Forward(){delay(100);
  digitalWrite(cutter,HIGH);
    analogWrite(R_pwm,100);
  analogWrite(L_pwm,0);}
  
  void backward(){
    digitalWrite(cutter,LOW); delay(1500);
   analogWrite(R_pwm,0);
  analogWrite(L_pwm,100);}
 
  void motor_stop(){
    digitalWrite(cutter,LOW);
  analogWrite(R_pwm,0);
  analogWrite(L_pwm,0);}

'아두이노' 카테고리의 다른 글

1602 LCD와 Rotary_ Encoder를 이요한 메뉴 구현  (0) 2021.01.27
dc 모터 위치 보내기  (0) 2021.01.17
cutter_1  (0) 2020.12.18
건널목신호대  (0) 2020.11.29
세탁기 코드  (0) 2020.08.19