Как запустить шаговый двигатель по сигналу лог "0"

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем Pavel8564, 12 сен 2018.

  1. Pavel8564

    Pavel8564 Нуб

    Доброго времени суток! Помогите пожалуйста правильно составить скетч, в этом не понимаю ничего. Есть шаговый двигатель 4SHG-023A 39S 1.8/step, к нему подключен драйвер L298N, и Ардуино нано. Все собрано, залит скетч, проверено, скетч переделанный из под чего-то, все хорошо, двигатель непрерывно вращается 300 об/мин. Но необходимо чтобы двигатель запускался по логическому сигналу "0" от другой платы, тоесть длительность вращение двигателя зависит от длительности сигнала лог "0".

    Скетч который сейчас залит в Ардуино нано...

    #include <Stepper.h>
    const int stepsPerRevolution = 200; // steps per revolution of your motor
    // initialize the stepper library on pins 2 through 5:
    Stepper myStepper(stepsPerRevolution, 2,3,4,5);
    void setup() {
    // set the speed at 300 rpm:
    myStepper.setSpeed(300);
    // initialize the serial port:
    Serial.begin(9600);
    }
    void loop() {
    // step one revolution in one direction:
    Serial.println("clockwise");
    myStepper.step(stepsPerRevolution);
    delay(0);
    }
     
  2. parovoZZ

    parovoZZ Гуру

     
  3. parovoZZ

    parovoZZ Гуру

    если комменты на ангельском - сто пудофф буквы пижжены.
     
  4. Mitrandir

    Mitrandir Гуру

    вешаем прерывание на изменение пина
    В нем проверка: если упал в ноль то ставим флаг двиг запущен если поднялся в 1 флаг сбрасываем

    В loop крутим двиг если флаг стоит
     
  5. Pavel8564

    Pavel8564 Нуб

    Мне предложили решение такое...

    #include <Stepper.h>
    const int stepsPerRevolution = 200; // steps per revolution of your motor
    // initialize the stepper library on pins 2 through 5:
    Stepper myStepper(stepsPerRevolution, 2,3,4,5);
    void setup() {
    // set the speed at 300 rpm:
    myStepper.setSpeed(300);
    // initialize the serial port:
    Serial.begin(9600);
    }
    void loop() {
    if(по такому-то адресу] > 0)
    {
    // step one revolution in one direction:
    Serial.println("clockwise");
    myStepper.step(stepsPerRevolution);
    }
    delay(0);

    }

    Подскажите подойдёт?
     
  6. parovoZZ

    parovoZZ Гуру

    это что за конструкция?
     
  7. Daniil

    Daniil Гик

    Попытаюсь предупредить конфликт. Сразу скажу "составлять" скетч вам никто не будет - либо пишете сами и вам подсказывают с алгоритмом, либо платите тому, кто напишет за вас.
     
    vvr нравится это.