MKR 1010 WIFI Встроенный светодиод RGB не работает с BLE
в дополнение к стандартному LED_BUILTIN, MKR 1010 WIFI оснащен встроенным светодиодом RGB.
Этот RGB-светодиод не работает при использовании встроенного BLE, независимо от того, какую последовательность программ я тестирую.
Чтобы воспроизвести проблему, включите светодиод, а затем запустите BLE, который выключит светодиод.
#include <WiFiNINA.h>
#include <utility\wifi_drv.h>
#include <ArduinoBLE.h>
void setup() {
const int ledPin = 27; //R=26 G=25 B=27
WiFiDrv::pinMode(ledPin, OUTPUT);
WiFiDrv::digitalWrite(ledPin, HIGH);
Serial.begin(115200);
while (!Serial);
if (!BLE.begin()) { // ble.begin выключает светодиод
Serial.println("BLE Failed");
while (1);
}
Serial.println("BLE started"); // последняя строка показана в консоли
WiFiDrv::digitalWrite(ledPin, HIGH);
// программа сюда никогда не попадает
}
void loop() {}
Светодиод RGB подключен к контактам GPIO NINA. Два из них (зеленый и синий) входят в состав UART, а еще один используется для сигналов управления системой (красный).
Я предположил, что BLE.begin использует UART для связи с процессором, поэтому избегал красного контакта и добавлял задержки между командами, надеясь разделить действия, но это не сработало.
Моя цель — использовать светодиод RGB для индикации состояний BLE без добавления трех наборов полевых МОП-транзисторов и резисторов. Идеи?
@Nino, 👍1
1 ответ
Библиотека ArduinoBLE сбрасывает прошивку NINA в режим BLE (код здесь ). В этом режиме прошивка NINA просто устанавливает ESP32 SDK (фреймворк IDF) для обработки команд BLE.
Светодиод RGB управляется той частью прошивки Arduino NINA, которая обрабатывает команды из библиотеки WiFiNINA. Эти команды передаются через SPI и не обрабатываются, если прошивка находится в режиме BLE.
- Улучшенное циклическое переключение цветов RGB.
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Управление цифровой адресной светодиодной лентой RGB 12 В с помощью Arduino
- Как управлять встроенными светодиодами Arduino Nano 33 BLE Sense?
- Адресная RGB-полоса работает по отдельности, но не может настроить все светодиоды на полностью белый цвет.
- Как изменить яркость светодиодного освещения?
- Нужна помощь в подключении светодиодной матрицы 64х32.
- Моргнуть всей светодиодной лентой
Ценю разъяснения, спасибо Юрай, @Nino