#include <Servo.h>
//------------------------- stepper --------------------------------
#define stepPin 7
#define dirPin 8
//------------------------- servo ----------------------------------
Servo snippers_1;
Servo snippers_3;
#define servo_1 3
#define servo_3 4
#define openAngle_1 90
#define openAngle_2 90
#define closedAngle 0
//--------------------------- input -------------------------------
#define start_Bt 13
#define stop_Bt 9
#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(1000);
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)){
for(int i = 0; i < 377 ; 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);
Serial.print(" servo_1, 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_3.write(openAngle_1);
Serial.print(" servo_1,3, run openAngle :");
Serial.println (openAngle_1);
delay(2000); }}
void run_upBt(){
if(digitalRead(up_Bt)){
for(int i = 0; i < 430 ; i++){
digitalWrite(stepPin,HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin,LOW);
delayMicroseconds(2000);}
}
}
void stop_Work (){
digitalWrite (dirPin , LOW);
digitalWrite (stepPin , LOW);
snippers_1.write(openAngle_1);
snippers_3.write(openAngle_1);}
'아두이노' 카테고리의 다른 글
엔코딩모터 (0) | 2019.08.01 |
---|---|
interrupt문을사용한 정지(컷팅기) (0) | 2019.07.26 |
커터기수정분(운전중 정지 버턴작동) (0) | 2019.07.23 |
cutter기제작 (0) | 2019.07.08 |
커팅기 (0) | 2019.06.30 |