aboutsummaryrefslogtreecommitdiff
path: root/libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino')
-rw-r--r--libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino48
1 files changed, 48 insertions, 0 deletions
diff --git a/libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino b/libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino
new file mode 100644
index 0000000..1a67a55
--- /dev/null
+++ b/libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino
@@ -0,0 +1,48 @@
+
+/*
+ Stepper Motor Control - speed control
+
+ This program drives a unipolar or bipolar stepper motor.
+ The motor is attached to digital pins 8 - 11 of the Arduino.
+ A potentiometer is connected to analog input 0.
+
+ The motor will rotate in a clockwise direction. The higher the potentiometer value,
+ the faster the motor speed. Because setSpeed() sets the delay between steps,
+ you may notice the motor is less responsive to changes in the sensor value at
+ low speeds.
+
+ Created 30 Nov. 2009
+ Modified 28 Oct 2010
+ by Tom Igoe
+
+ */
+
+#include <Stepper.h>
+
+const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
+// for your motor
+
+
+// initialize the stepper library on pins 8 through 11:
+Stepper myStepper(stepsPerRevolution, 8,9,10,11);
+
+int stepCount = 0; // number of steps the motor has taken
+
+void setup() {
+ // nothing to do inside the setup
+}
+
+void loop() {
+ // read the sensor value:
+ int sensorReading = analogRead(A0);
+ // map it to a range from 0 to 100:
+ int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
+ // set the motor speed:
+ if (motorSpeed > 0) {
+ myStepper.setSpeed(motorSpeed);
+ // step 1/100 of a revolution:
+ myStepper.step(stepsPerRevolution/100);
+ }
+}
+
+