root / arduino-1.0 / libraries / Stepper / examples / stepper_speedControl / stepper_speedControl.ino @ 58d82c77
History | View | Annotate | Download (1.25 KB)
1 | 58d82c77 | Tom Mullins | |
---|---|---|---|
2 | /* |
||
3 | Stepper Motor Control - speed control |
||
4 | |||
5 | This program drives a unipolar or bipolar stepper motor. |
||
6 | The motor is attached to digital pins 8 - 11 of the Arduino. |
||
7 | A potentiometer is connected to analog input 0. |
||
8 | |||
9 | The motor will rotate in a clockwise direction. The higher the potentiometer value, |
||
10 | the faster the motor speed. Because setSpeed() sets the delay between steps, |
||
11 | you may notice the motor is less responsive to changes in the sensor value at |
||
12 | low speeds. |
||
13 | |||
14 | Created 30 Nov. 2009 |
||
15 | Modified 28 Oct 2010 |
||
16 | by Tom Igoe |
||
17 | |||
18 | */ |
||
19 | |||
20 | #include <Stepper.h> |
||
21 | |||
22 | const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution |
||
23 | // for your motor |
||
24 | |||
25 | |||
26 | // initialize the stepper library on pins 8 through 11: |
||
27 | Stepper myStepper(stepsPerRevolution, 8,9,10,11); |
||
28 | |||
29 | int stepCount = 0; // number of steps the motor has taken |
||
30 | |||
31 | void setup() { |
||
32 | // initialize the serial port: |
||
33 | Serial.begin(9600); |
||
34 | } |
||
35 | |||
36 | void loop() { |
||
37 | // read the sensor value: |
||
38 | int sensorReading = analogRead(A0); |
||
39 | // map it to a range from 0 to 100: |
||
40 | int motorSpeed = map(sensorReading, 0, 1023, 0, 100); |
||
41 | // set the motor speed: |
||
42 | if (motorSpeed > 0) { |
||
43 | myStepper.setSpeed(motorSpeed); |
||
44 | // step 1/100 of a revolution: |
||
45 | myStepper.step(stepsPerRevolution/100); |
||
46 | } |
||
47 | } |
||
48 |