Программа управления шаговым двигателем для жалюзи

Тема в разделе "Arduino & Shields", создана пользователем duke_nuke, 9 мар 2019.

  1. duke_nuke

    duke_nuke Нуб

    Здравия желаю. уважаемый Гуру.
    Прошу подсказать - где в коде ошибка/недодел? - Нажал кнопку - двигатель запускается на определенное кол=во оборотом, останавливается. После все зависает ((
    После повторных нажатий - ничего не происходит, хотя флаги положения кнопок отрабатывают правильно..
    Заранее благодарен
    Вот код
    #include<AccelStepper.h>
    #define HALFSTEP 8

    boolean butt_flag = 0; //логическая переменная, запоминает последнее состояние кнопки
    boolean butt; //Переменная принимает текущее значение кнопки
    unsigned long last_press;

    // Определение пинов для управления двигателем
    #define motorPin1 8 // IN1 на 1-м драйвере ULN2003
    #define motorPin2 9 // IN2 на 1-м драйвере ULN2003
    #define motorPin3 10 // IN3 на 1-м драйвере ULN2003
    #define motorPin4 11 // IN4 на 1-м драйвере ULN2003
    // Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4
    // для использования AccelStepper с 28BYJ-48

    AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
    void setup(){

    stepper1.setMaxSpeed(1000.0);
    stepper1.setAcceleration(100.0);
    stepper1.setSpeed(200);

    pinMode(5, INPUT_PULLUP); //устанавливаем ПИН 5 на подачу входного сигнала

    Serial.begin(9600); //мониторинг нажатия кнопки в терминале

    }

    void loop(){
    butt = digitalRead(5); //считать текущее положение кнопки

    if (butt == 1 && butt_flag == 0 && millis() - last_press > 200) {
    butt_flag = 1;
    Serial.println("Кнопка С нажата");
    last_press = millis();
    stepper1.moveTo(5000); //Вращаем двиг
    }
    if (butt == 0 && butt_flag == 1) {
    butt_flag = 0;
    // Кнопка отпущена
    }

    stepper1.run();
    }
     
  2. moveTo перемещает двигатель в определенную позицию
    если он уже в этой позиции, то ничего и не должно происходить
     
    Последнее редактирование: 17 мар 2019