Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Coded by Alain Felger
- All rights reserved.
- */
- //Stepper
- const int pinDirection = 8;
- const int pinStepper = 9;
- const int minStepTime = 200;
- bool stepperDirection = false;
- const int pinMOne = 10;
- const int pinMTwo = 11;
- const int pinMThree = 12;
- long stepperPos = 0L;
- int delTime = 1000;
- void setup() {
- pinMode(pinDirection, OUTPUT);
- pinMode(pinStepper, OUTPUT);
- pinMode(pinMOne, OUTPUT);
- pinMode(pinMTwo, OUTPUT);
- pinMode(pinMThree, OUTPUT);
- stepperSetDirection(stepperDirection);
- stepperSetMode(2);
- digitalWrite(pinStepper, HIGH); //To keep momentum on device
- }
- void loop() {
- }
- void stepperSetDirection(bool dir){
- if(dir){
- digitalWrite(pinDirection, HIGH);
- }
- else{digitalWrite(pinDirection, LOW);}
- }
- void doStep(){
- digitalWrite(pinStepper, LOW);
- delayMicroseconds(100);
- digitalWrite(pinStepper, HIGH);
- unsigned long now = millis();
- countStep();
- while(!millis()-now <= minStepTime){
- //do loop
- //if Scan active change data to unusable
- }
- }
- void countStep(){
- //to slow?
- int state;
- if(digitalRead(pinMOne)){
- state = state + 1;
- }
- if(digitalRead(pinMTwo)){
- state = state + 2;
- }
- if(digitalRead(pinMThree)){
- state = state + 3;
- }
- switch(state){
- case B0:
- stepperPos = stepperPos + 1800L;
- break;
- case B1:
- stepperPos = stepperPos + 900L;
- break;
- case B10:
- stepperPos = stepperPos + 450L;
- break;
- case B11:
- stepperPos = stepperPos + 225L;
- break;
- case B111:
- //sixteenth step not possible to keep track of with this method
- break;
- }
- if(stepperPos >= 360000L){
- stepperPos = stepperPos - 360000L;
- }
- }
- void stepperSetMode(int mode){
- switch(mode){
- default:
- case 0:
- digitalWrite(pinMOne, LOW);
- digitalWrite(pinMTwo, LOW);
- digitalWrite(pinMThree, LOW);
- break;
- case 1:
- digitalWrite(pinMOne, HIGH);
- digitalWrite(pinMOne, LOW);
- digitalWrite(pinMOne, LOW);
- break;
- case 2:
- digitalWrite(pinMOne, LOW);
- digitalWrite(pinMOne, HIGH);
- digitalWrite(pinMOne, LOW);
- break;
- case 3:
- digitalWrite(pinMOne, HIGH);
- digitalWrite(pinMOne, HIGH);
- digitalWrite(pinMOne, LOW);
- break;
- case 4:
- digitalWrite(pinMOne, HIGH);
- digitalWrite(pinMOne, HIGH);
- digitalWrite(pinMOne, HIGH);
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement