ARDUINO Датчик препятствия

IvanK06

✩✩✩✩✩✩✩
9 Авг 2024
1
0
Добрый день. Я только начинаю знакомство с 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
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)
  }
}