ESP32 (C++) использует как AccelStepper.runSpeed(), так и Audio.loop() (блокировка).C++

Программы на C++. Форум разработчиков
Anonymous
ESP32 (C++) использует как AccelStepper.runSpeed(), так и Audio.loop() (блокировка).

Сообщение Anonymous »

В моем проекте ESP32 C++ я использую Audio.h и AccelStepper.h.
К сожалению, степпер не работает, когда звук активен. Похоже, Audio.loop() блокируется слишком долго.
Пример кода:

Код: Выделить всё

#include 
#include 

#define IN1 25
#define IN2 26
#define IN3 27
#define IN4 14

#define stepsPerRevolution  2048/60

AccelStepper motors[1] = {AccelStepper(AccelStepper::FULL4WIRE, IN1, IN3, IN2, IN4)};
Audio audio;

void setup()
{

// Some stuff to build up Wifi connection was removed here. Wifi is working.

motors[0].setMaxSpeed(stepsPerRevolution * 10); // 10 rpm
motors[0].setSpeed(stepsPerRevolution * 10);

audioController.connecttohost("https://stream.antenne.de/antenne/stream/mp3");

Serial.begin(115200);
}

void loop() {
motors[0].runSpeed();
audio.loop();
}
Каждый раз, когда я комментирую audio.loop(), шаговый двигатель движется правильно. Всякий раз, когда я использую audio.loop(), шаговый двигатель движется довольно медленно и нагревается.
Надеюсь на помощь. Спасибо

Подробнее здесь: https://stackoverflow.com/questions/787 ... p-blocking

Вернуться в «C++»