Простой код управления 2мя шаговыми двигателями. 1000р.

valetudo
Offline
Зарегистрирован: 17.11.2018

кину 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

}

sadman41
Offline
Зарегистрирован: 19.10.2016

Высокая/невысокая скорость - это скоко в RPM? Драйвер один или два?

valetudo
Offline
Зарегистрирован: 17.11.2018

у каждого ШГ свой драйвер естественно.
Здесь просто библиотека Аскельстеппер.  там скорость  с ускорением и настраивал методом тыка. 

мне примерно нужно чтобы скажем 90 градусов проходил за 120-150 мс.  и резко назад. Т.е. это примерно 1 оборот за пол секунды. Для Немы 23 это легко 

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну, понятно, в принципе. Сделать можно, но наврядли за тыщу. Если готовы подвинуться по цене, а не отчаянно торговаться - пишите: wrk.sadman@gmail.com

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Два шашлыка (шаговика - классный T9 :) ) с такой скоростью с этой библиотекой нормально работать не будут. Стоимость задачи много больше.

karamzin01
Offline
Зарегистрирован: 08.03.2018

р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

Два шашлыка с такой скоростью с этой библиотекой нормально работать не будут. Согласен. Нужно делать по другому. 

Писал похожее. Для себя. Но немного другой алгоритм. Можно под ваш попробовать. 

gas31a@mail.ru

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот энтот Gas311 на реинкарнацию скифа похож. Пишет похоже, только зарегистрировался и сразу в платнике тусить начал...

bwn
Offline
Зарегистрирован: 25.08.2014

sadman41 пишет:

Вот энтот Gas311 на реинкарнацию скифа похож. Пишет похоже, только зарегистрировался и сразу в платнике тусить начал...

Не исключено, больше нигде не светится.