Добрый день. Я только начинаю знакомство с Arduino, поэтому прошу отнестись с пониманием.
Использую шаговый мотор 28BYJ-48 с драйвером ULN2003, драйвер подключен к портам D2,D3,D4,D5, питание сделано от двух аккумуляторов 18650. Так же к плате подключен датчик препятствия (https://aliexpress.ru/item/4000550056776.html) его питание идёт от самой Arduino, подключён к порту D6.
Стараюсь сделать код, в котором двигатель будет двигаться, отталкиваясь от сигналов датчика препятствий. Вот пробую сделать хоть какую-либо связь, после неудачных попыток, через оператор if. В моих итерациях они не могут связаться друг с другом и двигатель не реагирует. При попытках использовать код с страницы двигателя AlexGyver'а (https://kit.alexgyver.ru/tutorials/stepmotor/) и добавлением кода для взаимодействия с датчиком движения ноль.
Когда беру его готовые исходники для этого моторчика, то всё работает. В коде вроде нет противоречий или неисправностей в написании. Использую библиотеку GyverStepper2 в версии 2.6.4
Использую шаговый мотор 28BYJ-48 с драйвером ULN2003, драйвер подключен к портам D2,D3,D4,D5, питание сделано от двух аккумуляторов 18650. Так же к плате подключен датчик препятствия (https://aliexpress.ru/item/4000550056776.html) его питание идёт от самой Arduino, подключён к порту D6.
Стараюсь сделать код, в котором двигатель будет двигаться, отталкиваясь от сигналов датчика препятствий. Вот пробую сделать хоть какую-либо связь, после неудачных попыток, через оператор if. В моих итерациях они не могут связаться друг с другом и двигатель не реагирует. При попытках использовать код с страницы двигателя AlexGyver'а (https://kit.alexgyver.ru/tutorials/stepmotor/) и добавлением кода для взаимодействия с датчиком движения ноль.
Когда беру его готовые исходники для этого моторчика, то всё работает. В коде вроде нет противоречий или неисправностей в написании. Использую библиотеку GyverStepper2 в версии 2.6.4
C++:
#include "GyverStepper2.h"
GStepper2< STEPPER4WIRE> stepper(2038, 2, 4, 3, 5);
void setup() {
Serial.begin(9600);
stepper.setMaxSpeed(400); // скорость движения к цели
stepper.setTargetDeg(0); // начинаем движение с позиции 0
}
bool dir = 1; // направление
void loop() {
stepper.tick();
Serial.println(!digitalRead(6));
port = !digitalRead(6);
if ((stepper.ready() && !digitalRead(6)) == true) {
dir = !dir; // разворачиваем (меняется 1,0,1,0...)
stepper.setTargetDeg(dir * 180); // едем в другую сторону (0 или 180)
}
}