#include <Stepper.h>
const int stepsPerRevolution = 200;
// for your motor
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
myStepper.setSpeed(60);
}
void loop() {
for (int i = 1; i <= 5; i++) {
// 1. По часовой стрелке
myStepper.step(stepsPerRevolution * i); // Один полный оборот по часовой стрелке
delay(1000); // Задержка в 1 секунду
// 2. Против часовой стрелки
myStepper.step(-stepsPerRevolution * (i + 1)); // Два полного оборота против часовой стрелки
delay(1000); // Задержка в 1 секунду
}
// После выполнения всех оборотов, зацикливаемся
while (true);
}
/*
5. Разработать и реализовать алгоритм, при котором шаговый двигатель будет
постепенно увеличивать скорость до максимального значения, после чего снижать до
минимального.
#include <Stepper.h>
const int maxSpeed = 100; // Максимальная скорость (об/мин)
const int minSpeed = 5; // Минимальная скорость (об/мин)
const int speedIncrement = 5; // Увеличение скорости за шаг
const int stepsPerRevolution = 200;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// Начальная установка скорости
myStepper.setSpeed(minSpeed);
}
void loop() {
// Увеличиваем скорость до максимального значения
for (int speed = minSpeed; speed <= maxSpeed; speed += speedIncrement) {
myStepper.setSpeed(speed);
myStepper.step(stepsPerRevolution / 10); // Двигаемся немного, чтобы почувствовать изменение скорости
delay(100); // Задержка для наблюдения за изменением скорости
}
// Уменьшаем скорость до минимального значения
for (int speed = maxSpeed; speed >= minSpeed; speed -= speedIncrement) {
myStepper.setSpeed(speed);
myStepper.step(stepsPerRevolution / 10); // Двигаемся немного, чтобы почувствовать изменение скорости
delay(100); // Задержка для наблюдения за изменением скорости
}
// Зацикливаемся после полного цикла
while (true);
}
*/
/*
6. Добавить в проект управления шаговым двигателем три кнопки, при нажатии на
которые выполняются следующие действия: кнопка 1 – движение двигателя по часовой
стрелке; кнопка 2 – против часовой стрелки; кнопка 3– остановка двигателя.
#include <Stepper.h>
const int stepsPerRevolution = 200; // Количество шагов на один полный оборот
const int buttonCW = 2; // Кнопка по часовой стрелке
const int buttonCCW = 3; // Кнопка против часовой стрелки
const int buttonStop = 4; // Кнопка остановки
// Создаем объект Stepper
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
pinMode(buttonCW, INPUT_PULLUP); // Настройка кнопки CW
pinMode(buttonCCW, INPUT_PULLUP); // Настройка кнопки CCW
pinMode(buttonStop, INPUT_PULLUP); // Настройка кнопки Stop
myStepper.setSpeed(100); // Установка скорости
}
void loop() {
if (digitalRead(buttonCW) == LOW) { // Если нажата кнопка CW
myStepper.step(stepsPerRevolution / 10); // Двигаемся немного по часовой стрелке
delay(100); // Задержка для предотвращения дребезга
}
if (digitalRead(buttonCCW) == LOW) { // Если нажата кнопка CCW
myStepper.step(-stepsPerRevolution / 10); // Двигаемся немного против часовой стрелки
delay(100); // Задержка для предотвращения дребезга
}
if (digitalRead(buttonStop) == LOW) { // Если нажата кнопка Stop
// Остановка двигателя (можно просто ничего не делать)
// В этом случае двигатель просто не будет двигаться
delay(100); // Задержка для предотвращения дребезга
}
}
*/