아두이노

커터기수정(8월17일(토))프로그램

내동 2019. 6. 9. 16:16

#include <Servo.h>

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

#define stepPin_1 7

#define dirPin_1 8

#define stepPin_2 10

#define dirPin_2 11


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

Servo snippers_1;

#define servo_1   9

#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_1,OUTPUT);

pinMode(dirPin_1,OUTPUT);

pinMode(stepPin_2,OUTPUT);

pinMode(dirPin_2,OUTPUT);

snippers_1.attach(servo_1 );

snippers_1.write(openAngle_1);

delay(100);

 digitalWrite( dirPin_1, LOW);

digitalWrite( dirPin_2, 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_1, HIGH);

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

       digitalWrite(stepPin_1,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin_1,LOW);

       delayMicroseconds(2000);}

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

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

       digitalWrite(stepPin_1,HIGH);

       delayMicroseconds(1000);

      digitalWrite(stepPin_1,LOW);

       delayMicroseconds(1000);}

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

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

       digitalWrite(stepPin_1,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin_1,LOW);

       delayMicroseconds(2000);}

       digitalWrite(dirPin_1, LOW);

       digitalWrite(stepPin_1,LOW);

       delay(1000);

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

      snippers_1.write(closedAngle);

      delay(1000);

      digitalWrite(dirPin_2,HIGH);

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

       digitalWrite(stepPin_2,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin_2,LOW);

       delayMicroseconds(2000);}

       delay(2000);

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

       digitalWrite(stepPin_2,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin_2,LOW);

       delayMicroseconds(2000);}

       digitalWrite(dirPin_2, LOW);

       digitalWrite(stepPin_2,LOW);

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

     snippers_1.write(openAngle_1);

     delay(1000); 

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

       

  void run_upBt(){

      digitalWrite(dirPin_1,HIGH); 

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

       digitalWrite(stepPin_1,HIGH);

       delayMicroseconds(2000);

       digitalWrite(stepPin_1,LOW);

       delayMicroseconds(2000);}

       digitalWrite(dirPin_1,LOW); }

  

  void stop_Work (){     

       digitalWrite (dirPin_1 , LOW);

      digitalWrite (stepPin_1 , LOW);

        digitalWrite (dirPin_2 , LOW);

      digitalWrite (stepPin_2 , LOW);

      snippers_1.write(openAngle_1);}

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

cutter기제작  (0) 2019.07.08
커팅기  (0) 2019.06.30
L298N 스텝모터 드라이버  (0) 2019.05.23
커팅기 내용  (0) 2019.05.16
커팅기 제작  (0) 2019.04.01