#include <Servo.h>
//------------------------- stepper ----------------------------------
#define stepPin 7
#define dirPin 8
//------------------------- servo ----------------------------------
Servo snippers_1;
Servo snippers_2;
#define servo_1 3
#define servo_2 5
#define openAngle_1 90
#define openAngle_2 180
#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_1.write(openAngle_1);
snippers_2.write(openAngle_2);
delay(1000);
digitalWrite( dirPin, HIGH);
}
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 < 1060 ; i++){
digitalWrite(stepPin,HIGH);
delayMicroseconds(700);
digitalWrite(stepPin,LOW);
delayMicroseconds(700);}
Serial.println(" motor run");
delay(1000);
snippers_1.write(closedAngle);
Serial.print(" servo_1 run closeAngle :");
Serial.println (closedAngle);
delay(2000);
snippers_2.write(closedAngle);
Serial.print(" servo_2 run closeAngle :");
Serial.println (closedAngle);
delay(2000);
snippers_1.write(openAngle_1);
snippers_2.write(openAngle_2);
Serial.print(" servo_1 run openAngle :");
Serial.println (openAngle_1);
Serial.print(" servo_2 run openAngle :");
Serial.println (openAngle_2);
delay(2000); } }
void stop_Work (){
digitalWrite (dirPin , HIGH);
digitalWrite (stepPin , LOW);}
'아두이노' 카테고리의 다른 글
커터기수정(8월17일(토))프로그램 (0) | 2019.06.09 |
---|---|
L298N 스텝모터 드라이버 (0) | 2019.05.23 |
커팅기 제작 (0) | 2019.04.01 |
에레베이터 (0) | 2018.11.04 |
캐스케이드 방법을 이용한 시퀸스 제어회로 설계 (0) | 2018.10.01 |