Здесь примерно показана коммутация
Чтобы определить какие выводы ШД относятся к катушке А, а какие к Б, замыкайте любые 2 вывода из 4х вращая при этом ось двигателя, если выводы от одной катушки, ось будет вращаться труднее. Название А и Б условны, не важно какая из катушек А, всё можно менять программно, либо поменяв выводы одной из катушек местами. Значит на выводы А прикручиваем одну катушку, на выводы Б вторую.
Те драйверы, которые я рекомендую из-за дешивизны,
TB6560, отлично работают, но требуют аккуратности, если при включенном драйвере закоротить катушку, драйвер сгорит. Я, как можно заметить, человек не аккуратный, сжёг два драйвера пока экспериментировал.
Подключение со стороны ардуино достаточно простое. Все минусы можно сразу соединить друг с другом и с любым минусом ардуино. Куда вести плюсы и как подключать управляющие кнопки видно из кода программы, которую мы зальём в память микроконтроллера:
C++:
#include <VirtualButton.h> // должна быть загружена библиотека virtualButton от Alex Giver
#include <ContinuousStepper.h> // должна быть загружена библиотека ContinuousStepper от Benoit Blanchon
int goal = 2000; // Здесь можно отрегулировать желаемую скорость вращения. Сейчас 2000 шагов в секунду = 600 оборотов в минуту
const uint8_t stepPin = 2; // пин D2 ардуино соединяем с CLK+ драйвера
const uint8_t dirPin = 5; // пин D5 ардуино соединяем с CW+ драйвера
const uint8_t enablePin = 7; //пин D7 ардуино соединяем с EN+ драйвера
ContinuousStepper stepper;
#define BTN2_PIN 9 //кнопку или переключатель меняющий направление движения подключаем к пин D9 и к любому минусу ардуино
VButton btn2;
struct MyBtn : public VButton {
MyBtn(uint8_t pin) {
_pin = pin;
pinMode(_pin, INPUT_PULLUP);
}
bool tick() {
return poll(!digitalRead(_pin));
}
uint8_t _pin;
};
MyBtn btn(3); // кнопку старт-стоп подключаем к пину D3 и любому минусу ардуино
void setup(){
stepper.begin(stepPin, dirPin);
stepper.powerOn();
pinMode(BTN2_PIN, INPUT_PULLUP);}
}
void loop() {
btn.tick();
btn2.poll(!digitalRead(BTN2_PIN));
stepper.loop();
if (btn2.press()) goal = -goal;
if (btn2.release()) goal = -goal; //удалите эту строчку если направлением двигателя управляет обычная кнопка, а не переключатель.
if (btn.press()) stepper.spin(goal);
if (btn.release()) stepper.stop();
}
Как подключать ардуино к компьютеру и прошивать микроконтроллер, можно научиться за час с помощью гугла, если возникнет проблема пишите, постараюсь момочь. Прежде чем прошивать программу (в среде ардуино это называется скетч) не забудьте загрузить библиотеки virtualButton от Alex Giver и ContinuousStepper от Benoit Blanchon, скетч получился коротким и простым только благодаря этим библиотекам, все сложности в них.
Управляющие сигналы с ардуино идут одновременно на два драйвера, таким образом двигатели будут вращаться синхронно. Если после сборки двигатели, "смотрящие" друг на друга, вращают воображаемую струну в разные стороны, поменяйте на одном из драйверов выводы одной катушки местами.
В целом всё. Ниже отвечу на вопросы и добавлю мелочи, если вспомню.