Работа 2 шаговиков паралельно.

DIGIUS
Offline
Зарегистрирован: 17.09.2015

Собираю дешманский колхозный самодельный студенчиский 3д принтер на основе нанки и четырёх l293d, и собственно втал вопрос паралельной работы 3 шаговиков и одного  DC мотора, управлял через библиотеку Stepper, потом вычитал что в Stepper'е возможна только последовательная работа, потом пошёл колходить на основе Pinmode, тоже не получалось из за того что малая задержка, сигналы по сути шли быстро и поочерёдно, но работал только один мотор (ах да мощность у моторов разная, тестировал на 2 одновременно подключенных шаговиках), подключал к нанке по следующей схеме:

Соответственно 2 такие схемы на 2 шаговика, сначала пытался подключить от одного внешнего питания, потом подключил на каждую схему свой источник питания(одинаковые по току), в результате вроде что-то получилось но крутился только один, после измерений тестером понял что второму мало тока, собственно вопрос как их заставить их работать вместе?

Если будет интерестно могу потом статью накатать о том как собрать дешманский 3д принтер из хлама (до 5 000 рублей).

vvadim
Offline
Зарегистрирован: 23.05.2012

библиотека AccelStepper - пример MultiStepper

DIGIUS
Offline
Зарегистрирован: 17.09.2015

Спасибо!

DIGIUS
Offline
Зарегистрирован: 17.09.2015

Для тех то налетит на эту тему из нета:
Вот ссытка на документацию:
http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#afa3061ce813303a8f2fa206ee8d012bd

Вот самый простой для начала работы с библой:

#include <AccelStepper.h> - эта библа самописная и в ардуино иде её нет, качайте по ссылке архив:

http://www.airspayce.com/mikem/arduino/AccelStepper/AccelStepper-1.48.zip

 и кинте на рабочий стол, потом запускайте ардуино иде и ищите во вкладке Эскиз->Include libray->add .zip libray...

Далее выбирайте архив и нажимайте open или открыть потом работайте с примером!

#include <AccelStepper.h>

AccelStepper stepper1(AccelStepper::FULL4WIRE, 6, 7, 8, 9); /6789 это пины.
/*на нанке если не знали d2-d12 можно использовать для работы с устройствами, по крайней мере я на это наткунлся методом научного тыка, при этом пытаясь найти на нанке пин 2, не кидайте ссаными тапками =)
Соответственно пин D2 это пин в коде 2, и.т.д...
*/

void setup()
{  
    stepper1.setMaxSpeed(200.0); 
    stepper1.setAcceleration(100.0);
    stepper1.moveTo(24);
}

void loop()
{

    if (stepper1.distanceToGo() == 0)
stepper1.moveTo(-stepper1.currentPosition());
    stepper1.run();
}