Простой код управления 2мя шаговыми двигателями. 1000р.
- Войдите на сайт для отправки комментариев
кину 1000 руб на карту или телефон.
К ардуине подключены два двигателя НЕМА 23 на драйвере TB6600
при включении в сеть, нужно сделать паузу на 2 секунды и далее:
1. один двигатель делает движение на 500 шагов вперед и резко возвращается (скорость высокая, см. код для примера). Итого - поворот на 500 шагов и резко назад в начальное положение - остановка ) (назову это ВЫСТРЕЛ)
Второй запускается в момент когда первый достигает 500 шагов . Его задача повторить такое же движение вдогонку -> когда первый достигает 500 шагов, второй стартует на 500 шагов вперед и сразу же обратно. Т.е. один начинает возвращаться назад, второй стартует навстречу, повторяя аналогичное движение.. после возврата назад так же останавливается
(назовем это ДВОЙНОЙ ВЫСТРЕЛ))
далее пауза 2 секунды
2. Тоже самое, только в момент когда второй "догоняющий" ШД достигает 500 шагов, первый начинает делать еще один ВЫСТРЕЛ
(ТРОЙНОЙ ВЫСТРЕЛ) По окончании тройного выстрела двигатели останавливаются.
пауза 2 секунды
3. ЧЕТВЕРНОЙ ВЫСТРЕЛ.
( , мне нужно опробовать сами движения, настроить скорость, количество шагов)
пример кода ВЫСТРЕЛА (нравится что есть ускорение и замедление, что под высокую скорость для шаговиков предпочтительнее) , накопал эту библиотеку, но она не принципиальна.. можете по своему.
#include <AccelStepper.h>
// The X Stepper pins
#define STEPPER1_DIR_PIN 5
#define STEPPER1_STEP_PIN 6
#define STEPPER2_DIR_PIN 10
#define STEPPER2_STEP_PIN 11
AccelStepper stepper(AccelStepper::DRIVER, STEPPER1_STEP_PIN, STEPPER1_DIR_PIN);
AccelStepper stepper2(AccelStepper::DRIVER, STEPPER2_STEP_PIN, STEPPER2_DIR_PIN);
void setup()
{
stepper.setMaxSpeed(6050);
stepper.setAcceleration(12000);
stepper2.setMaxSpeed(6050);
stepper2.setAcceleration(12000);
}
void loop()
{
stepper.moveTo(300);
while (stepper.currentPosition() != 300) // Full speed up to 300
stepper.run();
stepper.runToNewPosition(0); // Cause an overshoot then back to 0
}
Высокая/невысокая скорость - это скоко в RPM? Драйвер один или два?
у каждого ШГ свой драйвер естественно.
Здесь просто библиотека Аскельстеппер. там скорость с ускорением и настраивал методом тыка.
мне примерно нужно чтобы скажем 90 градусов проходил за 120-150 мс. и резко назад. Т.е. это примерно 1 оборот за пол секунды. Для Немы 23 это легко
Ну, понятно, в принципе. Сделать можно, но наврядли за тыщу. Если готовы подвинуться по цене, а не отчаянно торговаться - пишите: wrk.sadman@gmail.com
Два шашлыка (шаговика - классный T9 :) ) с такой скоростью с этой библиотекой нормально работать не будут. Стоимость задачи много больше.
р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии
Два шашлыка с такой скоростью с этой библиотекой нормально работать не будут. Согласен. Нужно делать по другому.
Писал похожее. Для себя. Но немного другой алгоритм. Можно под ваш попробовать.
gas31a@mail.ru
Вот энтот Gas311 на реинкарнацию скифа похож. Пишет похоже, только зарегистрировался и сразу в платнике тусить начал...
Вот энтот Gas311 на реинкарнацию скифа похож. Пишет похоже, только зарегистрировался и сразу в платнике тусить начал...
Не исключено, больше нигде не светится.