Дошла плата. Надписи нечитаемые (жирные и маленькие) на ней. Попробовал такой скетч, всё работает, но использует 65 процентов памяти!!! Попробовал на кубе с умными светодиодами скетч с ардуино - тоже работает, но идут блики отдельных светодиодов, портящих всю анимацию. Какая плата не знаю, грузит скетчи подряд с любыми названиями из менеджера - не ругается, как так? Нумерация выводов с уной ничего общего не имеет, встроенный светодиод на 2 пине, который на месте аналогового А0. Найти внятное объяснение на распиновку и использование выводов не удалось - придётся методом тыка. Сервы по ходу от штатной библиотеки не заработают, надо ставить дополнительную под esp32. Вообщем мне нравится "такое с птичками".
Код:
//ESP32
// скетч - тест мигание встроенным светодиодом с передачей длительностей пауз переключения по блютуз встроенному
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
String inputString;// строки данных
const int LED = 2;//встроенный светодиод (вывод I/O 2)
int n=500;// исходная длительность
void setup() {
SerialBT.begin("ESP32test"); //НАЗВАНИЕ БЛЮТУЗ МОДУЛЯ
pinMode(LED, OUTPUT);
}
void loop() {
CheckSerial();
delay(n);
digitalWrite(LED, HIGH);
delay(n);
CheckSerial();
digitalWrite(LED, LOW);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
//ФУНКЦИИ ПРИЁМА И ОБРАБОТКИ КОМАНД-ДАННЫХ
void CheckSerial()
{
//////////////////////////////////////////////////////////////////////////////
while (SerialBT.available())//считываем строку данных пока они поступают
{
char inChar = (char)SerialBT.read();
if (inChar == '\n'||inChar == ' ') //если окончание строки или запрос на загрузку
{
MakeCmd();//обрабатываем её данной функцией
break;
}
else inputString += inChar;// иначе удлиняем строку на один символ
}
}
/////////////////////////////////////////////////////////////////////////////////
void MakeCmd()
{
int y = inputString.length(); // присваиваем переменной у число символов в строке
if (y < 1 || y > 4){inputString = "";return;} //если их меньше 1 или больше 4, выходим из функции
String cmd = inputString; // передаём строку другой переменной
inputString = "";//"обнуляем переменную"
//////
n=cmd.toInt();//задаём длительность между переключениями светодиода
//////
}
///////////////////////////////////////////////////////////////////////////////////////////////////////