87 this->step_number = 0;
89 this->last_step_time = 0;
90 this->number_of_steps = number_of_steps;
93 this->motor_pin_1 = motor_pin_1;
94 this->motor_pin_2 = motor_pin_2;
97 pinMode(this->motor_pin_1, OUTPUT);
98 pinMode(this->motor_pin_2, OUTPUT);
101 this->motor_pin_3 = 0;
102 this->motor_pin_4 = 0;
103 this->motor_pin_5 = 0;
115 int motor_pin_3,
int motor_pin_4)
117 this->step_number = 0;
119 this->last_step_time = 0;
120 this->number_of_steps = number_of_steps;
123 this->motor_pin_1 = motor_pin_1;
124 this->motor_pin_2 = motor_pin_2;
125 this->motor_pin_3 = motor_pin_3;
126 this->motor_pin_4 = motor_pin_4;
129 pinMode(this->motor_pin_1, OUTPUT);
130 pinMode(this->motor_pin_2, OUTPUT);
131 pinMode(this->motor_pin_3, OUTPUT);
132 pinMode(this->motor_pin_4, OUTPUT);
135 this->motor_pin_5 = 0;
146 int motor_pin_3,
int motor_pin_4,
149 this->step_number = 0;
151 this->last_step_time = 0;
152 this->number_of_steps = number_of_steps;
155 this->motor_pin_1 = motor_pin_1;
156 this->motor_pin_2 = motor_pin_2;
157 this->motor_pin_3 = motor_pin_3;
158 this->motor_pin_4 = motor_pin_4;
159 this->motor_pin_5 = motor_pin_5;
162 pinMode(this->motor_pin_1, OUTPUT);
163 pinMode(this->motor_pin_2, OUTPUT);
164 pinMode(this->motor_pin_3, OUTPUT);
165 pinMode(this->motor_pin_4, OUTPUT);
166 pinMode(this->motor_pin_5, OUTPUT);
180 if (this->number_of_steps == 0)
181 this->number_of_steps = 2048;
183 this->step_delay = 60L * 1000L * 1000L / this->number_of_steps / whatSpeed;
189 this->number_of_steps = number_of_steps;
200 int steps_left = abs(steps_to_move);
203 if (steps_to_move > 0) { this->direction = 1; }
204 if (steps_to_move < 0) { this->direction = 0; }
208 while (steps_left > 0)
210 unsigned long now = micros();
212 if (now - this->last_step_time >= this->step_delay)
215 this->last_step_time = now;
218 if (this->direction == 1)
221 if (this->step_number == this->number_of_steps) {
222 this->step_number = 0;
227 if (this->step_number == 0) {
228 this->step_number = this->number_of_steps;
235 if (this->pin_count == 5)
236 stepMotor(this->step_number % 10);
238 stepMotor(this->step_number % 4);
246void Stepper::stepMotor(
int thisStep)
248 if (this->pin_count == 2) {
251 digitalWrite(motor_pin_1, LOW);
252 digitalWrite(motor_pin_2, HIGH);
255 digitalWrite(motor_pin_1, HIGH);
256 digitalWrite(motor_pin_2, HIGH);
259 digitalWrite(motor_pin_1, HIGH);
260 digitalWrite(motor_pin_2, LOW);
263 digitalWrite(motor_pin_1, LOW);
264 digitalWrite(motor_pin_2, LOW);
268 if (this->pin_count == 4) {
271 digitalWrite(motor_pin_1, HIGH);
272 digitalWrite(motor_pin_2, LOW);
273 digitalWrite(motor_pin_3, HIGH);
274 digitalWrite(motor_pin_4, LOW);
277 digitalWrite(motor_pin_1, LOW);
278 digitalWrite(motor_pin_2, HIGH);
279 digitalWrite(motor_pin_3, HIGH);
280 digitalWrite(motor_pin_4, LOW);
283 digitalWrite(motor_pin_1, LOW);
284 digitalWrite(motor_pin_2, HIGH);
285 digitalWrite(motor_pin_3, LOW);
286 digitalWrite(motor_pin_4, HIGH);
289 digitalWrite(motor_pin_1, HIGH);
290 digitalWrite(motor_pin_2, LOW);
291 digitalWrite(motor_pin_3, LOW);
292 digitalWrite(motor_pin_4, HIGH);
297 if (this->pin_count == 5) {
300 digitalWrite(motor_pin_1, LOW);
301 digitalWrite(motor_pin_2, HIGH);
302 digitalWrite(motor_pin_3, HIGH);
303 digitalWrite(motor_pin_4, LOW);
304 digitalWrite(motor_pin_5, HIGH);
307 digitalWrite(motor_pin_1, LOW);
308 digitalWrite(motor_pin_2, HIGH);
309 digitalWrite(motor_pin_3, LOW);
310 digitalWrite(motor_pin_4, LOW);
311 digitalWrite(motor_pin_5, HIGH);
314 digitalWrite(motor_pin_1, LOW);
315 digitalWrite(motor_pin_2, HIGH);
316 digitalWrite(motor_pin_3, LOW);
317 digitalWrite(motor_pin_4, HIGH);
318 digitalWrite(motor_pin_5, HIGH);
321 digitalWrite(motor_pin_1, LOW);
322 digitalWrite(motor_pin_2, HIGH);
323 digitalWrite(motor_pin_3, LOW);
324 digitalWrite(motor_pin_4, HIGH);
325 digitalWrite(motor_pin_5, LOW);
328 digitalWrite(motor_pin_1, HIGH);
329 digitalWrite(motor_pin_2, HIGH);
330 digitalWrite(motor_pin_3, LOW);
331 digitalWrite(motor_pin_4, HIGH);
332 digitalWrite(motor_pin_5, LOW);
335 digitalWrite(motor_pin_1, HIGH);
336 digitalWrite(motor_pin_2, LOW);
337 digitalWrite(motor_pin_3, LOW);
338 digitalWrite(motor_pin_4, HIGH);
339 digitalWrite(motor_pin_5, LOW);
342 digitalWrite(motor_pin_1, HIGH);
343 digitalWrite(motor_pin_2, LOW);
344 digitalWrite(motor_pin_3, HIGH);
345 digitalWrite(motor_pin_4, HIGH);
346 digitalWrite(motor_pin_5, LOW);
349 digitalWrite(motor_pin_1, HIGH);
350 digitalWrite(motor_pin_2, LOW);
351 digitalWrite(motor_pin_3, HIGH);
352 digitalWrite(motor_pin_4, LOW);
353 digitalWrite(motor_pin_5, LOW);
356 digitalWrite(motor_pin_1, HIGH);
357 digitalWrite(motor_pin_2, LOW);
358 digitalWrite(motor_pin_3, HIGH);
359 digitalWrite(motor_pin_4, LOW);
360 digitalWrite(motor_pin_5, HIGH);
363 digitalWrite(motor_pin_1, LOW);
364 digitalWrite(motor_pin_2, LOW);
365 digitalWrite(motor_pin_3, HIGH);
366 digitalWrite(motor_pin_4, LOW);
367 digitalWrite(motor_pin_5, HIGH);
void setSpeedSteps(long whatSpeed, int number_of_steps)
8.14.25 set speed and number_of_steps
void step(int number_of_steps)
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2)
void setSpeed(long whatSpeed)