아두이노

커터기수정분(운전중 정지 버턴작동)

내동 2019. 7. 23. 07:37

운전중 정지 버턴을 작동시킴


#include <Servo.h>

//------------------------- stepper --------------------------------

#define stepPin 7

#define dirPin 8


//------------------------- servo ----------------------------------

Servo snippers_1;

Servo snippers_3;

#define servo_1   9

#define  servo_3  6

#define openAngle_1 90

#define openAngle_2  90

#define closedAngle 0


//--------------------------- input -------------------------------

#define start_Bt 13

#define stop_Bt 2

#define up_Bt 5

int state = 1;


void setup() {

Serial.begin(9600);

pinMode(start_Bt, INPUT_PULLUP);

pinMode(stop_Bt , INPUT_PULLUP);

pinMode(up_Bt , INPUT_PULLUP);

pinMode(stepPin,OUTPUT);

pinMode(dirPin,OUTPUT);

snippers_1.attach(servo_1 );

snippers_3.attach(servo_3);

snippers_1.write(openAngle_1);

snippers_3.write(openAngle_1);

delay(100);

 digitalWrite( dirPin, LOW);

}


void loop() {

   if (digitalRead(start_Bt)){

      cutting_Work();}

    if(digitalRead(stop_Bt)){

         stop_Work();}

   if(digitalRead(up_Bt)){

      run_upBt(); }

        }


 void cutting_Work(){

   while( ! digitalRead (stop_Bt)){

    digitalWrite(dirPin, HIGH);

     for(int i = 0; i < 377 ; i++){

       digitalWrite(stepPin,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin,LOW);

       delayMicroseconds(2000);}

  if(digitalRead(stop_Bt) == HIGH){break;}

     for(int i = 0; i < 560 ; i++){

       digitalWrite(stepPin,HIGH);

       delayMicroseconds(1000);

      digitalWrite(stepPin,LOW);

       delayMicroseconds(1000);}

   if(digitalRead(stop_Bt) == HIGH){break;}

    for(int i = 0; i < 250 ; i++){

       digitalWrite(stepPin,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin,LOW);

       delayMicroseconds(2000);}

       digitalWrite(dirPin, LOW);

       digitalWrite(stepPin,LOW);

       delay(1000);

    if(digitalRead(stop_Bt) == HIGH){break;}

      snippers_1.write(closedAngle);

      delay(2000);

      snippers_3.write(closedAngle);

      delay(2000);

   if(digitalRead(stop_Bt) == HIGH){break;}

     snippers_1.write(openAngle_1);

     snippers_3.write(openAngle_1);

      delay(2000); 

       Serial.println(" motor run");}}

       

  void run_upBt(){

      digitalWrite(dirPin,HIGH); 

     for(int i = 0; i < 430 ; i++){

       digitalWrite(stepPin,HIGH);

       delayMicroseconds(2000);

       digitalWrite(stepPin,LOW);

       delayMicroseconds(2000);}

       digitalWrite(dirPin,LOW); }

  

  void stop_Work (){     

       digitalWrite (dirPin , LOW);

      digitalWrite (stepPin , LOW);

      snippers_1.write(openAngle_1);

      snippers_3.write(openAngle_1);}

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

interrupt문을사용한 정지(컷팅기)  (0) 2019.07.26
컷팅기수정본  (0) 2019.07.24
cutter기제작  (0) 2019.07.08
커팅기  (0) 2019.06.30
커터기수정(8월17일(토))프로그램  (0) 2019.06.09