I have a stepper motor with a GT2 gear hooked up via a belt to a 3D printed pulley (a much larger gear). In this case my arduino/L298N is running the Stepper Motor Control - one revolution program software program by Tom Igoe.
Given the larger gear, I needed to increase the "stepsPerRevolution = 200", and changed it from 200 to 800 and it worked fine.
However, I need the larger gear to turn more, so increased the stepsPerRevolution to 1000 (and later higher), but and in this case, the motor whined and barely moved and that movement was exceptionally jerky.
If I returned the stepsPerRevolution value to 800 it worked again so it wasn't a belt slipping etc.
is it possible that the speed and stepsPerRevolution are out of sync when I use such large values for stepsPerRevolution?
That is the stepper is going so fast, the stepper can not keep up, and this creates a jerky movement?
If so, can that be fixed?,
Any ideas or suggestions would be appreciated
Thanks
Mitchell
JIC the program is below.
/*
Stepper Motor Control - one revolution
This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 - 11 of the Arduino.
The motor should revolve one revolution in one direction, then
one revolution in the other direction.
Created 11 Mar. 2007
Modified 30 Nov. 2009
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);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(60);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}