Не могу управлять 4 шаговыми двигателями одновременно
Я пытаюсь управлять 4 шаговыми двигателями с помощью библиотеки AccelStepper.
Что - то вроде этого:
AccelStepper FL(1,stepPin,dirPin);
AccelStepper FR(1,stepPin2,dirPin2);
AccelStepper BL(1,stepPin3,dirPin3);
//AccelStepper BR(1,stepPin4,dirPin4);
Проблема в том, что это работает просто отлично, если я объявляю 3 экземпляра ускорителя, но как только я раскомментирую 4-й, появляется ошибка.
Error message: Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "ESP32 Dev Module, Disabled, Default, 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"
In file included from C:\Users\Parit\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.1/tools/sdk/include/esp32/xtensa/xtruntime.h:30:0,
from C:\Users\Parit\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.1/tools/sdk/include/freertos/freertos/portmacro.h:80,
from C:\Users\Parit\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.1/tools/sdk/include/freertos/freertos/portable.h:94,
from C:\Users\Parit\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.1/tools/sdk/include/freertos/freertos/FreeRTOS.h:105,
from C:\Users\Parit\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.1\cores\esp32/Arduino.h:32,
from sketch\Test_file.ino.cpp:1:
C:\Users\Parit\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.1/tools/sdk/include/esp32/xtensa/config/specreg.h:40:13: error: expected unqualified-id before numeric constant
#define BR 4
^
C:\Users\Parit\Desktop\Test_file\Test_file.ino:31:14: note: in expansion of macro 'BR'
AccelStepper BR(1,stepPin4,dirPin4);
^
Multiple libraries were found for "WiFi.h"
Used: C:\Users\Parit\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.1\libraries\WiFi
Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\WiFi
exit status 1
Error compiling for board ESP32 Dev Module.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Я не уверен, в чем проблема - в ESP 32 или в коде. Я использую драйвер A4988 для подключения ко всем 4 шаговым двигателям.
@ QiQi, 👍0
Обсуждение1 ответ
Имя переменной BR
уже используется где-то в другом месте.
Используйте другое имя переменной
AccelStepper FL(1,stepPin,dirPin);
AccelStepper FR(1,stepPin2,dirPin2);
AccelStepper BL(1,stepPin3,dirPin3);
AccelStepper BackRight(1,stepPin4,dirPin4);
Благодарю вас ! Теперь работает. Но это странно, я могу подтвердить, что я не использовал переменную с таким именем где-либо в моем коде/, @ QiQi
Это объясняется в сообщении об ошибке. В нем говорится, что BR определен как константа со значением 4
(#define BR 4
), @Gerben
Хорошо, но все же я не написал "#define BR 4" в своем коде. В любом случае, теперь это работает, так что это не имеет значения, спасибо., @ QiQi
Первое определение обязательно в вашем коде — оно может быть в одной из библиотек, включенных в ваш код., @JRobert
Судя по сообщению об ошибке, он находится внутри файла specreg.h
. Попробуйте прочитать сообщения об ошибках, которые вы получаете. Они содержат гораздо больше информации, чем вы думаете. Поначалу они могут быть немного ошеломляющими, но после нескольких из них вы почувствуете, что важно и на что следует обращать внимание., @Gerben
- AccelStepper.h — Как быстро увеличить скорость двигателя NEMA 17?
- Невозможно управлять двигателем с помощью ESP32 с помощью переключателя логического уровня.
- ESP32 + шаговый двигатель 17HS3401S + драйвер A4988. Шаговый двигатель не может двигаться по часовой стрелке.
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
Пожалуйста, покажите полное сообщение об ошибке, @chrisl
Только не в комментариях, пожалуйста. Вы можете добавить эту информацию к своему вопросу, отредактировав его., @chrisl
ок извини сейчас добавлю, @ QiQi