ARDUINO Кнопка и шаговый двигатель

Не вращается двигатель. Светодиод работает как надо. Помогите разобраться.

  • Возможно неправильно обращение к двигателю

    Голосов: 3 100.0%
  • Вариантов нет

    Голосов: 0 0.0%

  • Всего проголосовало
    3

ИванСеменыч

✩✩✩✩✩✩✩
16 Мар 2023
1
0
Оформи код соответствующим тэгом
/Управление шаговым двигателем, подключенного к контроллеру на базе микросхемы L298/
#include <Stepper.h> // Подключаем библиотеку управления шаговыми двигателями
const int StepsForRotation = 200; // 200 шага на оборот - 1,8 градуса на один шаг
Stepper stepmotor (StepsForRotation, 8, 9, 10, 11); // Инициализируем шаговый двигатель 200 шага на оборот, управление обмотками через 8, 9, 10, 11 цифровые выходы
int buttonPin6 = 6; //номер входа, подключенный к кнопке
boolean butt_flag = 0; //запоминает последнее состояние кнопки
boolean butt; // текущее значение кнопки
boolean led_flag = 0;
unsigned long last_press; //переменная хранящая время прошлого нажатия

void setup()
{
pinMode(6, INPUT_PULLUP); //обозначаем пин 6 входом
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
int Napr = 0; // переменная направления вращения двигателя варианты значений 1 / 0 / -1
stepmotor.setSpeed (200) ; // устанавливаем скорость вращения
butt = !digitalRead(3); // считать текущее положение кнопки, инвертированное

if (butt == 1 && butt_flag == 0 && millis() - last_press > 100) {
butt_flag = 1;
Serial.println("Button pressed");
led_flag = !led_flag;
digitalWrite(13, led_flag); //проверка нажатия кнопки
last_press = millis();
}
if (digitalRead(6) == HIGH) {
buttonState = 1;
}
else
{
buttonState = 0;
}
}

if (buttonState == 1) Napr = 1; // если кнопка нажата, сделать шаговому двигателю 1 шаг
if (buttonState == 0) Napr = 0; // если кнопка нажата еще раз, двигатель сделает 0 шагов

stepmotor.step(Napr) ; // Дивагеть должен сделать кол-во шагов согласно переменной Napr
}