아두이노

cutter기제작

내동 2019. 7. 8. 01:42


스텝모터 회전속도를 처음과 마지막의속도를 낮추워 조정함



#include <Servo.h>


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

#define stepPin 7

#define dirPin 8


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

Servo snippers_1;

Servo snippers_2;

Servo snippers_3;

#define servo_1   3

#define  servo_2  5

#define  servo_3  4

#define openAngle_1 90

#define openAngle_2  90

#define closedAngle 0


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

#define start_Bt 13

#define stop_Bt 9

char state = 1;


void setup() {

Serial.begin(9600);

pinMode(start_Bt, INPUT);

pinMode(stop_Bt , INPUT);

pinMode(stepPin,OUTPUT);

pinMode(dirPin,OUTPUT);

snippers_1.attach(servo_1 );

snippers_2.attach( servo_2);

snippers_3.attach(servo_3);

snippers_1.write(openAngle_1);

snippers_2.write( - openAngle_2);

snippers_3.write(openAngle_1);

delay(1000);

 digitalWrite( dirPin, LOW);

}


void loop() {

   if (digitalRead(start_Bt)){

      state = 0;}

    if (digitalRead(stop_Bt)){

         state =1;}


          switch (state){

          case 0:

             cutting_Work();

             break;


          case 1:

             stop_Work();

              break;}}


     void cutting_Work(){

      while( ! digitalRead (stop_Bt)){

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

       digitalWrite(stepPin,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin,LOW);

       delayMicroseconds(2000);}

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

       digitalWrite(stepPin,HIGH);

       delayMicroseconds(1000);

      digitalWrite(stepPin,LOW);

       delayMicroseconds(1000);}

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

       digitalWrite(stepPin,HIGH);

       delayMicroseconds(2000);

      digitalWrite(stepPin,LOW);

       delayMicroseconds(2000);}  

            

       Serial.println(" motor run");

       delay(1000);

      snippers_1.write(closedAngle);

      snippers_2.write(closedAngle);

      Serial.print(" servo_1,  2 run  closeAngle  :");

      Serial.println (closedAngle);    

      delay(2000);

      snippers_3.write(closedAngle);

      Serial.print(" servo_3 run  closeAngle  :");

      Serial.println (closedAngle);

      delay(2000);

      snippers_1.write(openAngle_1);

      snippers_2.write( - openAngle_2);

      snippers_3.write(openAngle_1);

      Serial.print(" servo_1,2,3,  run openAngle :");

      Serial.println (openAngle_1);

      delay(2000); }  }


    void stop_Work (){     

       digitalWrite (dirPin , LOW);

      digitalWrite (stepPin , LOW);}



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

컷팅기수정본  (0) 2019.07.24
커터기수정분(운전중 정지 버턴작동)   (0) 2019.07.23
커팅기  (0) 2019.06.30
커터기수정(8월17일(토))프로그램  (0) 2019.06.09
L298N 스텝모터 드라이버  (0) 2019.05.23