운전중 정지 버턴을 작동시킴
#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 |