Created
April 17, 2015 19:43
-
-
Save AnthonyLam/9f9d5c8f1bc8c1f8e6c2 to your computer and use it in GitHub Desktop.
Easy Driver Example code
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
////////////////////////////////////////////////////////////////// | |
//©2011 bildr | |
//Released under the MIT License - Please reuse change and share | |
//Using the easy stepper with your arduino | |
//use rotate and/or rotateDeg to controll stepper motor | |
//speed is any number from .01 -> 1 with 1 being fastest - | |
//Slower Speed == Stronger movement | |
///////////////////////////////////////////////////////////////// | |
#define DIR_PIN 2 | |
#define STEP_PIN 3 | |
void setup() { | |
pinMode(DIR_PIN, OUTPUT); | |
pinMode(STEP_PIN, OUTPUT); | |
} | |
void loop(){ | |
//rotate a specific number of degrees | |
rotateDeg(360, 1); | |
delay(1000); | |
rotateDeg(-360, .1); //reverse | |
delay(1000); | |
//rotate a specific number of microsteps (8 microsteps per step) | |
//a 200 step stepper would take 1600 micro steps for one full revolution | |
rotate(1600, .5); | |
delay(1000); | |
rotate(-1600, .25); //reverse | |
delay(1000); | |
} | |
void rotate(int steps, float speed){ | |
//rotate a specific number of microsteps (8 microsteps per step) - (negitive for reverse movement) | |
//speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger | |
int dir = (steps > 0)? HIGH:LOW; | |
steps = abs(steps); | |
digitalWrite(DIR_PIN,dir); | |
float usDelay = (1/speed) * 70; | |
for(int i=0; i < steps; i++){ | |
digitalWrite(STEP_PIN, HIGH); | |
delayMicroseconds(usDelay); | |
digitalWrite(STEP_PIN, LOW); | |
delayMicroseconds(usDelay); | |
} | |
} | |
void rotateDeg(float deg, float speed){ | |
//rotate a specific number of degrees (negitive for reverse movement) | |
//speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger | |
int dir = (deg > 0)? HIGH:LOW; | |
digitalWrite(DIR_PIN,dir); | |
int steps = abs(deg)*(1/0.225); | |
float usDelay = (1/speed) * 70; | |
for(int i=0; i < steps; i++){ | |
digitalWrite(STEP_PIN, HIGH); | |
delayMicroseconds(usDelay); | |
digitalWrite(STEP_PIN, LOW); | |
delayMicroseconds(usDelay); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment