Сразу поясню, я не хочу разбираться в программировании, мне надо решить конкретную задачу. Мне написали скетч заготовку, но так как я совсем ничего не понимаю, то не смог подставить нужные мне значения. Мне нужно что бы: ШД повернулся в микрошаговом режиме на 7.2 градуса и замер на 60 секунд, цикл повторяется бесконечно. Если можно, подставьте значения в скетч, готов оплатить. #include <AccelStepper.h> AccelStepper stepper(1, 6, 7); /// step - 6 пин, dir - 7 пин long steps = 64; /// кол-во шагов двигателя /// -1000 вращение в другую сторону /// в полношаговом режиме 1 шаг - 1.8 гр /// в микрошаговом 1/16 1 шаг - 0.1125 гр long time = 600; /// время задержки, 20 - 2 сек byte state = 0; long pos = 0; int count = 0; void setup() { stepper.setMaxSpeed(2000); /// скорость шагов в сек stepper.setAcceleration(3000); /// разгон - торможение pos = steps; } void loop() { if(state == 0) { stepper.moveTo(pos); stepper.run(); if (stepper.distanceToGo() == 0) { state = 1; } } if(state == 1) { static unsigned long timer = 0; if (millis() - timer > 100) { count ++; timer = millis(); } if (count >= time) { pos = stepper.currentPosition() + steps; count = 0; state = 0; } } }
Код (C++): /// описание драйвера http://www.robototehnika.ru/e-store/catalog/203/949/ /// не забываем на драйвере выставить рабочий ток /// НИКОГДА не подключаем - отключаем шаговик от драйвера если драйвер под напряжением!!! /// для этого варианта вывод ENABLE к ардуино не подключаем #include <AccelStepper.h> AccelStepper stepper(1, 6, 7); /// step - 6 пин, dir - 7 пин long steps = 64; /// кол-во шагов двигателя /// -1000 вращение в другую сторону /// в полношаговом режиме 1 шаг - 1.8 гр /// в микрошаговом 1/16 1 шаг - 0.1125 гр long time = 600; /// время задержки, 20 - 2 сек byte state = 0; long pos = 0; int count = 0; void setup() { stepper.setMaxSpeed(2000); /// скорость шагов в сек stepper.setAcceleration(3000); /// разгон - торможение pos = steps; } void loop() { if(state == 0) { stepper.moveTo(pos); stepper.run(); if (stepper.distanceToGo() == 0) { state = 1; } } if(state == 1) { static unsigned long timer = 0; if (millis() - timer > 100) { count ++; timer = millis(); } if (count >= time) { pos = stepper.currentPosition() + steps; count = 0; state = 0; } } }