55 Stepper::Stepper(
int number_of_steps,
int motor_pin_1,
int motor_pin_2)
57 this->step_number = 0;
60 this->last_step_time = 0;
61 this->number_of_steps = number_of_steps;
64 this->motor_pin_1 = motor_pin_1;
65 this->motor_pin_2 = motor_pin_2;
68 pinMode(this->motor_pin_1, OUTPUT);
69 pinMode(this->motor_pin_2, OUTPUT);
72 this->motor_pin_3 = 0;
73 this->motor_pin_4 = 0;
85 Stepper::Stepper(
int number_of_steps,
int motor_pin_1,
int motor_pin_2,
int motor_pin_3,
int motor_pin_4)
87 this->step_number = 0;
90 this->last_step_time = 0;
91 this->number_of_steps = number_of_steps;
94 this->motor_pin_1 = motor_pin_1;
95 this->motor_pin_2 = motor_pin_2;
96 this->motor_pin_3 = motor_pin_3;
97 this->motor_pin_4 = motor_pin_4;
100 pinMode(this->motor_pin_1, OUTPUT);
101 pinMode(this->motor_pin_2, OUTPUT);
102 pinMode(this->motor_pin_3, OUTPUT);
103 pinMode(this->motor_pin_4, OUTPUT);
113 void Stepper::setSpeed(
long whatSpeed)
115 this->step_delay = 60
L * 1000
L / this->number_of_steps / whatSpeed;
122 void Stepper::step(
int steps_to_move)
124 int steps_left = abs(steps_to_move);
127 if (steps_to_move > 0) {this->direction = 1;}
128 if (steps_to_move < 0) {this->direction = 0;}
132 while(steps_left > 0)
136 if (this->direction == 1) {
138 if (this->step_number == this->number_of_steps)
140 this->step_number = 0;
144 if (this->step_number == 0) {
145 this->step_number = this->number_of_steps;
152 stepMotor(this->step_number % 4);
155 delay(this->step_delay);
162 void Stepper::stepMotor(
int thisStep)
164 if (this->pin_count == 2) {
167 digitalWrite(motor_pin_1, LOW);
168 digitalWrite(motor_pin_2, HIGH);
171 digitalWrite(motor_pin_1, HIGH);
172 digitalWrite(motor_pin_2, HIGH);
175 digitalWrite(motor_pin_1, HIGH);
176 digitalWrite(motor_pin_2, LOW);
179 digitalWrite(motor_pin_1, LOW);
180 digitalWrite(motor_pin_2, LOW);
184 if (this->pin_count == 4) {
187 digitalWrite(motor_pin_1, HIGH);
188 digitalWrite(motor_pin_2, LOW);
189 digitalWrite(motor_pin_3, HIGH);
190 digitalWrite(motor_pin_4, LOW);
193 digitalWrite(motor_pin_1, LOW);
194 digitalWrite(motor_pin_2, HIGH);
195 digitalWrite(motor_pin_3, HIGH);
196 digitalWrite(motor_pin_4, LOW);
199 digitalWrite(motor_pin_1, LOW);
200 digitalWrite(motor_pin_2, HIGH);
201 digitalWrite(motor_pin_3, LOW);
202 digitalWrite(motor_pin_4, HIGH);
205 digitalWrite(motor_pin_1, HIGH);
206 digitalWrite(motor_pin_2, LOW);
207 digitalWrite(motor_pin_3, LOW);
208 digitalWrite(motor_pin_4, HIGH);
217 int Stepper::version(
void)