Arduino/libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino

49 lines
1.2 KiB
Arduino
Raw Normal View History

2010-10-28 06:39:36 -07:00
/*
2010-10-28 06:39:36 -07:00
Stepper Motor Control - speed control
This program drives a unipolar or bipolar stepper motor.
2010-10-28 06:39:36 -07:00
The motor is attached to digital pins 8 - 11 of the Arduino.
A potentiometer is connected to analog input 0.
2010-10-28 06:39:36 -07:00
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,
2010-10-28 06:39:36 -07:00
you may notice the motor is less responsive to changes in the sensor value at
low speeds.
2010-10-28 06:39:36 -07:00
Created 30 Nov. 2009
Modified 28 Oct 2010
by Tom Igoe
2010-10-28 06:39:36 -07:00
*/
#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);
2010-10-28 06:39:36 -07:00
int stepCount = 0; // number of steps the motor has taken
2010-10-28 06:39:36 -07:00
void setup() {
// nothing to do inside the setup
2010-10-28 06:39:36 -07:00
}
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);
}
2010-10-28 06:39:36 -07:00
}