Last active
December 4, 2015 11:57
-
-
Save nikibobi/ebd7db5c66c54aacfb9b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define STEPS 800 //motor steps for one cut | |
#define DIRECTION 1 //motor direction 1 or 0 | |
#define CUT_TIME 500 //time to cut in ms | |
#define CUT_COUNT 20 //number of cuts | |
#define SPEED_TIME 1 //speed between impulses in ms | |
#define PAUSE_TIME 100 //time after pause button is pressed | |
#define GRAB_TIME 200 //time for grabbing/releasing the paperj | |
#define STEP_PIN 5 //motor driver STEP pin | |
#define DIR_PIN 11 //motor driver DIR pin | |
#define NOT_READY_PIN 12 //LED pin when not ready | |
#define FINISH_PIN 13 //LED pin when all pieses are ready | |
#define CUT_PIN 9 //cuts the paper | |
#define GRAB_PIN 8 //grabs the paper | |
#define GO_PIN 7 //button for starting | |
#define PAUSE_PIN 6 //button for pausing the job for a PAUSE_TIME | |
void setup() { | |
//set all outputs | |
pinMode(STEP_PIN, OUTPUT); | |
pinMode(DIR_PIN, OUTPUT); | |
pinMode(NOT_READY_PIN, OUTPUT); | |
pinMode(FINISH_PIN, OUTPUT); | |
pinMode(CUT_PIN, OUTPUT); | |
pinMode(GRAB_PIN, OUTPUT); | |
//set all inputs | |
pinMode(GO_PIN, INPUT); | |
pinMode(PAUSE_PIN, INPUT); | |
digitalWrite(DIR_PIN, DIRECTION);//set the direction pin | |
digitalWrite(CUT_PIN, LOW); | |
digitalWrite(GRAB_PIN, LOW); | |
Serial.begin(9600);//start serial port communication | |
} | |
void loop() { | |
waitForGo(); | |
start(); | |
doNPieces(CUT_COUNT); | |
finish(); | |
} | |
void waitForGo() { | |
//while go button is not pressed wait | |
boolean go; | |
do { | |
go = digitalRead(GO_PIN); | |
delay(200); | |
} while(go == HIGH); | |
} | |
void doNPieces(int n) { | |
while(n > 0) { | |
boolean pause = digitalRead(PAUSE_PIN); | |
if(pause == HIGH) { //when pause isnt pressed make one piece | |
delay(500); | |
grabPaper(); | |
doNSteps(STEPS); | |
cutPaper(); | |
n--; | |
} else { //when pause is pressed wait pause time | |
releasePaper(); | |
delay(PAUSE_TIME); | |
} | |
Serial.println(n); | |
} | |
} | |
void grabPaper() { | |
digitalWrite(GRAB_PIN, LOW); | |
delay(GRAB_TIME); | |
} | |
void releasePaper() { | |
digitalWrite(GRAB_PIN, HIGH); | |
delay(GRAB_TIME); | |
} | |
void doNSteps(int n) { | |
while(n > 0) { | |
doOneStep(SPEED_TIME); | |
n--; | |
} | |
} | |
void doOneStep(int speedTime) { | |
digitalWrite(STEP_PIN, LOW); | |
delay(speedTime); | |
digitalWrite(STEP_PIN, HIGH); | |
delay(speedTime); | |
} | |
void cutPaper() { | |
digitalWrite(CUT_PIN, HIGH); | |
delay(CUT_TIME); | |
digitalWrite(CUT_PIN, LOW); | |
delay(CUT_TIME); | |
} | |
void start() { | |
digitalWrite(NOT_READY_PIN, HIGH); | |
digitalWrite(FINISH_PIN, LOW); | |
} | |
void finish() { | |
digitalWrite(NOT_READY_PIN, LOW); | |
digitalWrite(FINISH_PIN, HIGH); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment