#include <Stepper.h> //подключение библиотеки
#include "potentiometer_reader.h"
#include "button_reader.h"
Potentiometer speed_meter(A0, DEFAULT);
Button b_start_stop(7, HIGH);
Button b_left(6, HIGH);
Button b_right(5, HIGH);
const int steps_per_revolution = 200; //количество шагов на оборот
Stepper stepper(steps_per_revolution, 8, 9, 10, 11); //управление выводами 8 - 11
bool is_work = false;
bool is_right_rotation = true;
int motor_speed = 0;
void setup() {
speed_meter.set_map(0, 100);
}
void ChangeRotation() {
if (is_right_rotation && b_left.is_changed()) {
is_right_rotation = false;
}
if (!is_right_rotation && b_right.is_changed()) {
is_right_rotation = true;
}
}
void ChangeState() {
if (b_start_stop.is_changed()) {
is_work = !is_work;
}
}
void ReadSpeed() {
motor_speed = speed_meter.read();
}
void MotorOperation() {
stepper.setSpeed(motor_speed); //установка нового значения скорости
if (is_work) {
if (is_right_rotation) {
stepper.step(steps_per_revolution / 100);
} else {
stepper.step(-steps_per_revolution / 100);
}
}
}
void loop() {
ChangeRotation();
ChangeState();
ReadSpeed();
MotorOperation();
}