ARDUINO Анализатор аудиоспектра

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
@novvel,
доработал ваш скетч.

1. Вынес все эффекты в функции и разместил отдельным файлов в проект.
2. Убрал багу с пиковой точкой в нечетных полосах, когда при падении в ноль точка пика перескакивала на соседний столбец.
3. Убрал багу с увеличением яркости и сам алгоритм изменения яркости переписал. Теперь изменяется плавней с шагом 10.
4. Сделал динамическую заставку при включении, которая проверяет все точки матрицы.
5. Сделал сохранение и загрузку настроек через EEPROM.
6. Сделал световую индикацию изменений параметров визуализации по двойному, тройному, четверному и пятерному нажатию на кнопку: красный - выключено, зелёный - включено.
7. Добавлено несколько дополнительных палитр в уже существующий набор режимов визуализации (кто-то на форуме просил - пользуйтесь!). Таким образом общее количество режимов достигло 12.

Сообщения об ошибках и разумные предложения по улучшению приветствуются.
 

Вложения

Изменено:
  • Лойс +1
Реакции: DEORDA_, 00zzz00 и novvel

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
Допилил скетч до следующего состояния:
1. Для некоторых режимов визуализации реализована возможность изменять цветовую схему отображения через параметры соответствующих функций в effects.ino. Смысл параметров прокомментирован в коде.
2. Добавлен новый режим визуализации "Зебра". Общее количество режимов - 16.
3. По 6-кратному нажатию на кнопку можно вкл./выкл. режим случайной смены режима визуализации.
4. Добавлена возможность перевода устройства в режим лампы. В этом режиме микрофонная часть не используется, а на светодиодной матрице отображаются разные динамические цветовые эффекты (в текущей версии их 5). Эффекты вынесены в отдельный файл проекта l_effects.ino. Для перехода в режим "Лампа" нужно включать спектроанализатор с нажатой кнопкой.
5. В основной файл проекта добавил памятку, как управлять устройством через кнопку.
 

Вложения

  • Лойс +1
Реакции: DEORDA_, novvel и 00zzz00

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
Доработанная прошивка.
Самое главное в этой прошивке - обоснованная рекомендация и возможность перестроить ширину спектра с 16 кГц на 6.4 кГц.
Практика показала что 16 кГц - избыточно широкая полоса. Как следствие:
1. Впустую тратится динамическая память, которой и так мало.
2. Основной цикл тормозится и не успевает обрабатывать звук в реальном режиме времени.
3. Удивительно, но на НЕ mp3 звуковых файлах отсекаются (удивительно, правда?!) высокие частоты. Этот парадокс обнаружил участник форума Алекса Гайвера с ником 00zzz00.
По вышеизложенным причинам рекомендую использовать ширину спектра звука в 6.4 кГц.

На 4-х кратное нажатие кнопки повешено включение/выключение плавной смены кадров для всех режимов аудио-анализатора (тоски пиков при падении превращаются в капельки, а столбики в некоторых режимах плавно гаснут как электрические лампочки). Эффект имеет глобальную настройку плавности.

Кроме того, устранены мелкие погрешности в скетче. В режиме обработки звука в полосе 6.4 кГц освобождается достаточное количество динамической памяти и скетч на Ардуино Нано работает стабильно.

Вернул и подчистил погрешности в реализации псевдо-стереофонических эффектов.
Добавил целый ряд новых режимов визуализации.
Общее количество настроенных по умолчанию режимов визуализации - 31.
Все режимы визуализации спектроанализатора реализованы через функции в файле effects.ino. Функции снабжены описанием параметров для удобства кастомизации.

Список функций визуализации:
1. Классический Гайвер
2. Градиент
3. Волна
4. Кометы
5. Костёр (огонь)
6. Радуга
7. Зебра
8. Два канала: Дорожка
9. Два канала: Триколор
10. Два канала: Радуга

ВЕРСИЯ: 1.4 от 03.02.2023
 

Вложения

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
Финальная версия прошивки 1.4.03 от 20.02.2023.
Дальнейшая разработка спектроанализатора под Arduino Nano мной прекращена. Все наработки перенесены под платформу Arduino ESP32.

В финальной версии исправлены все обнаруженные при тестировании ошибки.
Общее количество настроенных по умолчанию режимов визуализации - 38.

Список функций визуализации:
1. Классический Гайвер
2. Градиент
3. Синус
4. Волна
5. Кометы
5. Костёр (огонь)
6. Радуга
7. Зебра
8. Два канала: Дорожка
9. Два канала: Синус
10. Два канала: Радуга
 

Вложения

  • Лойс +1
Реакции: novvel, FerA и 00zzz00

Avatar

✩✩✩✩✩✩✩
20 Фев 2023
7
3
Второй день пытаюсь запустить прошивку Олега Полякова. Ничего не получается. В настройках выставлено
Width 16 не менял.
Height 16 тоже не менял.
Reverse 1 поменял. Был 0. 1 направление столбцов снизу, 0 сверху. Мне нужно, чтоб столбцы снизу прыгали.
Brightness 120 не менял.
Schem 1 поменял. Был 0. 0 схема с микрофоном без конденсатора, 1 схема с микрофоном с конденсатором или схема Гайвера. У меня схема с кнопкой, но аудио вход не микрофон, а провод. Такое как 1 надо ставить. Хотя пробовал и то, и то. Результаты одинаковые.
Offset 1,24 не менял
Reference 1,41//2,03 не менял. Написано замерить мультиметром и вписать, но не знаю, где мерить.
Correction 0xE6E0FF не менял.
Далее Lev1 4//5
Lev2 8//10
Lev3 12//13
Lev4 15 написано, что выставить под свою высоту столбцов. Ничего не менял оставил как есть.
Далее ниже ничего не менял.
Результаты. Включаю, идёт заставка, попеременно загораются диоды по всему полю, затем загорается первый столбик примерно до половины, под музыку не двигается. Горит не зависимо есть звук или нет. Кнопкой судя по всему режимы переключаются, так как столбик меняет свой цвет. Где-то после десяти нажатий появляется режим с горизонтальной полосой и тогда уже от центра вверх вниз горят несколько диодов. Но тоже ничего не двигается.
Оригинальная прошивка Гайвера та что на один режим работает, столбики скачут и все нормально, а здесь пока не получается. Может кто-то подскажет куда копать.
Вот короткое видео https://youtube.com/shorts/RNOSudSh47g?feature=share3
На видео заставка, где мигает по всему полю, затем режим с горизонтальной полосой и далее я нажимал следующие режимы. Музыку не слышно, но она есть, наушники просто на столе лежали, а колонок у меня нет.
 
Изменено:

Avatar

✩✩✩✩✩✩✩
20 Фев 2023
7
3
аудио-пин Вы правильно в скетче прописали?
У меня в скетче стоит Audio in 5
а звук подаю на А0 (если расположить плату USB разъемом вверх, то с левой стороны 4-й сверху, на шелкографии платы напечатано А0. Так было на схеме Алекса, которая не микрофон, а провод)
 

Вложения

Avatar

✩✩✩✩✩✩✩
20 Фев 2023
7
3
Олег Поляков спасибо вам за наводку. В общем методом тыка, подсмотрел в скетче Гайвера, что Audio in 0, поставил 0 все заработало. Диоды мигают.
Но первый столбик все равно светится до половины постоянно, хоть есть звук, хоть нету. Ещё заметил, что активно двигаются столбики только в левой части матрицы. Примерно до 9-го столбика. После девятого матрица молчит, изредка выдавая короткие невысокие всплески, примерно до 14-го столбика. Пятнадцатый и шестнадцатый вообще мертвые. И так почти на всех музыкальных треках, что только не пробовал и рок и металл - одинаково. Так и должно быть или это у меня так?
Если ничего не подключать к анализатору спектра, то первый столбик горит до половины постоянно (он вообще постоянно горит), а второй и третий загораются изредка по два три диода. Завтра сниму, наверное, видео. А то как-то я сумбурно всё описал.
P.S. Звук на вход наваливал на максимум.
 
Изменено:
  • Лойс +1
Реакции: Олег Поляков

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
@Avatar,
для того, чтобы левый столбик не зависал, а частоты были равномерно распределены по остальным столбикам Вам необходимо отредактировать массив тонов под линейный вход, т.к. изначально он был настроен на работу с микрофонным модулем.
В коде это тут:
C++:
#if (SPECTRUM == 0)
#define FHT_N 256   // ширина спектра х2
byte posOffset[17] = {2, 3, 4, 6, 8, 10, 12, 16, 20, 30, 40, 50, 60, 70, 80, 90, 110}; //Экспериментальная (самая удачная)
#else
#define FHT_N 128  // ширина спектра х
byte posOffset[17] = {1, 2, 3, 5, 8, 10, 12, 16, 20, 24, 27, 30, 35, 41, 48, 52, 63}; //Экспериментальная (для дискриминации 128 по Хартли)
#endif
 
  • Лойс +1
Реакции: Avatar

Avatar

✩✩✩✩✩✩✩
20 Фев 2023
7
3
@Avatar,
необходимо отредактировать массив тонов
Ну на этом, как говорится "вот и приплыли"... 😔 Как это сделать я не знаю. Не умею я программировать... В моем случае придется либо довольствоваться тем, что получилось, либо допаять микрофон. Как думаете, электретник таблетку от китайского плеера можно допаять или нужен именно модуль, который на маленькой плате с усилителем?
 

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
@Avatar, настоятельно рекомендую использовать микрофонный модуль MAX9814. Стоит он недорого.

Если хотите поэкспериментировать в настройке массива тонов, то Владимир описал методику, которая не требует программирования:
 
Изменено:
  • Лойс +1
Реакции: Avatar

Avatar

✩✩✩✩✩✩✩
20 Фев 2023
7
3
настоятельно рекомендую использовать микрофонный модуль MAX9814
Установил микрофонный модуль. Все заработало как надо, но первый столбик при отсутствии звука светится до половины все равно. Когда звук есть, то работает нормально, двигается и в большую и в меньшую сторону.

Если хотите поэкспериментировать в настройке массива тонов, то Владимир описал методику, которая не требует программирования
Прочитал методику, то есть беру генератор, выставляю например 100 герц для первого столбика к примеру, подаю на вход, но не совсем понял про цифры в скетче. Вот есть ряд цифр byte posOffset[17] = {2, 3, 4, 6, 8, 10, 12, 16, 20, 30, 40, 50, 60, 70, 80, 90, 110} там 17 цифр почему-то, а столбиков в матрице 16. Вот подал я с генератора звук частотой 100 герц и получается нужно подбирать первую цифру, чтоб засветился первый столбик? Потом 200 герц, второй столбик, вторая цифра. 400 герц третий столбик, подбираем третью цифру. Что-то темный лес для меня. Что такое 2, 3, 4, 6, 8, 10, 12, 16, 20 и т.д. И там эта строка с цифрами встречается 2 раза, первый раз после define FHT_N 256 // ширина спектра х2 второй раз после define FHT_N 128 // ширина спектра х. Что такое ширина спектра х и х2 это когда половина матрицы светится и полная матрица? Напишите пожалуйста если не сложно. Что-то я запутался.

Вот короткое видео, что получилось с микрофонным модулем
в начале видео видно, как музыки еще нет, но первый столбик светится до половины.
 

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
Все заработало как надо, но первый столбик при отсутствии звука светится до половины все равно. Когда звук есть, то работает нормально, двигается и в большую и в меньшую сторону
Очень похоже на наличие низкочастотной помехи. Откуда она берется?
Тут возможны варианты.
1. Звуковой провод от микрофонной платы крайне желательно делать коротким и экранированным на массу проводом.
2. Возможной причиной наводки может быть работающий вентилятор охлаждения ноутбука.
 
Изменено:

Садриддин

✩✩✩✩✩✩✩
16 Ноя 2023
4
0
Добрый день Олег . Походу только вы и занялись доработкой этой идеи , за это вам огромное спасибо. Хочу попробовать вашу прошивку . А есть ли возможность добавить возможность смены цветов ? Либо автоматическую , либо в ручную каким либо резистором ?
 

Садриддин

✩✩✩✩✩✩✩
16 Ноя 2023
4
0
@Олег Поляков, Прошивку Гайвера на нано я загрузил легко , сразу скомпилировалась и сразу загрузилась . Загружаю с телефона программой Arduino droid . Вашу прошивку я попробовал скомпилировать и понеслось , ошибка за ошибкой . Помошите пожалуйста. Для начала думаю нужны все требуемые библиотеки , немогли бы вы дать ссылку на файл с требуемыми библиотеками , а после посмотрим какие ещё покажет ошибки .комп мой устаревшей модели поэтому делаю это с телефона . Я думаю найдется огромное количество людей желающих загружать прошивку с телефона . А ещё кстати esp32 ведь много разновидностей , ко всем ли подойдёт ваша прошивка ?
 
Изменено:

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
@Садриддин, все необходимые библиотеки находятся в папке libraries архива скетча.
Arduino droid - программа мне незнакомая. Сборку и прошивку производил в Arduino IDE. Если там возникают ошибки по библиотекам, то давайте разберёмся. Лучше со скриншотами и в личной переписке.
 

Serg70

✩✩✩✩✩✩✩
20 Янв 2022
8
1
Изменено:
  • Лойс +1
Реакции: Олег Поляков

Esmertec

✩✩✩✩✩✩✩
1 Янв 2022
3
0
Привет всем! Тупой вопрос, реально ли сделать две матрицы WS2812 на одной ардуино нано? Хватит ли у нее памяти на две матрицы, и как разделить на левый и правый канал, чтоб одна матрица работала только на правый, вторая - только на левый?
Заранее спасибо за ответ!
 

Serg70

✩✩✩✩✩✩✩
20 Янв 2022
8
1
@Esmertec,проще две ардуино взять на левый и правый канал.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@Олег Поляков, скажите под какой лицензией доступен ваш проект? И какой код там лично ваш/заимствованый?
Просто есть мысли в обозримом будущем немого переработать и интегрировать эффекты под свой движёк вот сюда вместо существующей там реализации.
На хаб75 панели выглядит оч. симпатично.
 

Олег Поляков

★★★✩✩✩✩
18 Янв 2022
105
112
www.1812.ru
@vortigont, та часть проекта, которая написана мной (большая часть эффектов), полностью свободна (freeware). За основу взят оригинальный проект Алекса Гайвера. Какое у него лицензирование мне неведомо.
 
Изменено:
  • Лойс +1
Реакции: vortigont

SLee

✩✩✩✩✩✩✩
15 Июн 2024
1
0
В программировании не силён, просто хотел повторить ваш проект, arduino ide 1.18.19, библиотеки у становил, пытаюсь записать скетч на плату, возникают следующие ошибки.
Посоветуйте, что нужно сделать. Мне всего то нужно чтобы было управление кнопкой и линейный вход.

ошибка
'months' was not declared in this scope

Остановилось на этой строке программы
RuningString((String)rtc.getDay() + " " + months[rtc.getMonth()] + ", " + weekDays[rtc.getDayofWeek()]);

закомментировал строку, дальше следующая ошибка
unused variable 'cget' [-Werror=unused-variable]

// Сохранение настроек в энергонезависимую память
void updateEEPROM() {
int eget;
float fget;
char cget[20];

закомментировал строку, дальше следующая ошибка
'local_IP' was not declared in this scope

if (local_IP != "") {
RuningString(local_IP);
} else {
RuningString("Not connected...");


закомментировал строку, дальше следующая ошибка
'Sinelon' was not declared in this scope
switch (lamp_mode_now) {
case 0:
Random_Pixels();
break;
case 1:

Sinelon(color);

закомментировал строку, дальше следующая ошибка
'Sinelon' was not declared in this scope

// Заставка
matrix->setBrightness(1);
randomSeed(analogRead(AUDIO_IN_PIN));
color = random(0, 254);
for (int i = 1; i < WIDTH * 2 + 16; i++) {
Sinelon(color);
delay(10);
if (i < WIDTH + 8) {

закомментировал строку, дальше следующая ошибка
'effectGyver' was not declared in this scope

switch (display_mode_now) {
case 0:
// Классическая индикация от Гайвера
effectGyver(pos, 160, 128, 96, 64, 0, 96, false, false);

на этом я остановился, что то явно делаю не правильно


ниже полный листинг ошибок после последней компиляции
In file included from C:\Users\STLee\Documents\Arduino\libraries\FastLED\src/FastLED.h:67,
from C:\Users\STLee\Documents\Arduino\libraries\Framebuffer_GFX/Framebuffer_GFX.h:33,
from C:\Users\STLee\Documents\Arduino\libraries\FastLED_NeoMatrix/FastLED_NeoMatrix.h:23,
from C:\Spectrus_esp32\Spectrus_esp32.ino:22:
C:\Users\STLee\Documents\Arduino\libraries\FastLED\src/fastspi.h:145:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output
# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino: In function 'void spectrus_Mode()':
Spectrus_esp32:756:13: error: 'effectGyver' was not declared in this scope
effectGyver(pos, 160, 128, 96, 64, 0, 96, false, false);
^~~~~~~~~~~
Spectrus_esp32:760:13: error: 'backgroundSimple' was not declared in this scope
backgroundSimple(pos, 96, 200);
^~~~~~~~~~~~~~~~
Spectrus_esp32:770:13: error: 'backgroundTricolor' was not declared in this scope
backgroundTricolor(pos, 0, 200, 160, 200, 0, 0);
^~~~~~~~~~~~~~~~~~
Spectrus_esp32:775:13: error: 'backgroundGradient' was not declared in this scope
backgroundGradient(pos, 96, 250, 0, 120);
^~~~~~~~~~~~~~~~~~
Spectrus_esp32:784:13: error: 'effectGradient' was not declared in this scope
effectGradient(pos, 160, 70, 180, 22, 255, 96, false);
^~~~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:784:13: note: suggested alternative: 'Gradient'
effectGradient(pos, 160, 70, 180, 22, 255, 96, false);
^~~~~~~~~~~~~~
Gradient
Spectrus_esp32:813:13: error: 'effectWave' was not declared in this scope
effectWave(pos, 160, 64, 0, 16, 160, 4, 16, true);
^~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:813:13: note: suggested alternative: 'execve'
effectWave(pos, 160, 64, 0, 16, 160, 4, 16, true);
^~~~~~~~~~
execve
Spectrus_esp32:834:13: error: 'effectSinus' was not declared in this scope
effectSinus(pos, 72, 96, 72, 64, 180, 255, 0, 48, false);
^~~~~~~~~~~
Spectrus_esp32:855:13: error: 'effectZebra' was not declared in this scope
effectZebra(pos, 0x9f0000, 0xe42b2b, 0xeaa819, 0, 0, true); //0xffff00
^~~~~~~~~~~
Spectrus_esp32:876:13: error: 'effectComet' was not declared in this scope
effectComet(pos, 1, 64, 128, 192, 64, 0);
^~~~~~~~~~~
Spectrus_esp32:896:13: error: 'effectFire' was not declared in this scope
effectFire(pos, 0, 0);
^~~~~~~~~~
Spectrus_esp32:916:13: error: 'effectRainbow' was not declared in this scope
effectRainbow(pos, 0, 0);
^~~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:916:13: note: suggested alternative: 'fill_rainbow'
effectRainbow(pos, 0, 0);
^~~~~~~~~~~~~
fill_rainbow
Spectrus_esp32:929:13: error: 'effect2ChanelWay' was not declared in this scope
effect2ChanelWay(pos, 0, 155, 60, 70, 56);
^~~~~~~~~~~~~~~~
Spectrus_esp32:944:13: error: 'effect2ChanelRainbow' was not declared in this scope
effect2ChanelRainbow(pos, 0);
^~~~~~~~~~~~~~~~~~~~
Spectrus_esp32:959:13: error: 'effect2ChanelSinus' was not declared in this scope
effect2ChanelSinus(pos, 160, 0, 64, 40);
^~~~~~~~~~~~~~~~~~
Spectrus_esp32:979:13: error: 'backgroundTwocolor' was not declared in this scope
backgroundTwocolor(pos, 200, 160, 146, 160);
^~~~~~~~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino: In function 'void lamp_Mode()':
Spectrus_esp32:1134:11: error: 'Random_Pixels' was not declared in this scope
Random_Pixels();
^~~~~~~~~~~~~
Spectrus_esp32:1140:11: error: 'FadeTo' was not declared in this scope
FadeTo();
^~~~~~
Spectrus_esp32:1143:11: error: 'Confetti' was not declared in this scope
Confetti();
^~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:1143:11: note: suggested alternative: 'confstr'
Confetti();
^~~~~~~~
confstr
Spectrus_esp32:1146:11: error: 'Juggle' was not declared in this scope
Juggle();
^~~~~~
Spectrus_esp32:1149:11: error: 'Fill' was not declared in this scope
Fill(color, 255, 255);
^~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:1149:11: note: suggested alternative: 'kill'
Fill(color, 255, 255);
^~~~
kill
Spectrus_esp32:1153:13: error: 'RuningString' was not declared in this scope
RuningString(rtc.getTime("%H:%M:%S"));
^~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:1153:13: note: suggested alternative: 'emptyString'
RuningString(rtc.getTime("%H:%M:%S"));
^~~~~~~~~~~~
emptyString
Spectrus_esp32:1155:13: error: 'RuningString' was not declared in this scope
RuningString(F("--:--:--"));
^~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:1155:13: note: suggested alternative: 'emptyString'
RuningString(F("--:--:--"));
^~~~~~~~~~~~
emptyString
Spectrus_esp32:1162:13: error: 'RuningString' was not declared in this scope
RuningString(F("--:--:--"));
^~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:1162:13: note: suggested alternative: 'emptyString'
RuningString(F("--:--:--"));
^~~~~~~~~~~~
emptyString
Spectrus_esp32:1166:11: error: 'RuningString' was not declared in this scope
RuningString(runningText);
^~~~~~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:1166:11: note: suggested alternative: 'emptyString'
RuningString(runningText);
^~~~~~~~~~~~
emptyString
Spectrus_esp32:1169:11: error: 'Balls' was not declared in this scope
Balls();
^~~~~
Spectrus_esp32:1172:11: error: 'Lissajous' was not declared in this scope
Lissajous();
^~~~~~~~~
Spectrus_esp32:1175:11: error: 'Cycles' was not declared in this scope
Cycles();
^~~~~~
Spectrus_esp32:1178:11: error: 'Lissajous1' was not declared in this scope
Lissajous1();
^~~~~~~~~~
Spectrus_esp32:1182:11: error: 'Iridescence' was not declared in this scope
Iridescence(1, 255, 10);
^~~~~~~~~~~
Spectrus_esp32:1185:11: error: 'Sinusoid' was not declared in this scope
Sinusoid(0);
^~~~~~~~
C:\Spectrus_esp32\Spectrus_esp32.ino:1185:11: note: suggested alternative: 'fill_solid'
Sinusoid(0);
^~~~~~~~
fill_solid
C:\Spectrus_esp32\button_control.ino: In function 'void buttonTick()':
button_control:80:13: error: 'local_IP' was not declared in this scope
if (local_IP != "") {
^~~~~~~~
C:\Spectrus_esp32\button_control.ino:80:13: note: suggested alternative: 'locale_t'
if (local_IP != "") {
^~~~~~~~
locale_t
button_control:81:11: error: 'RuningString' was not declared in this scope
RuningString(local_IP);
^~~~~~~~~~~~
C:\Spectrus_esp32\button_control.ino:81:11: note: suggested alternative: 'emptyString'
RuningString(local_IP);
^~~~~~~~~~~~
emptyString
button_control:83:11: error: 'RuningString' was not declared in this scope
RuningString("Not connected...");
^~~~~~~~~~~~
C:\Spectrus_esp32\button_control.ino:83:11: note: suggested alternative: 'emptyString'
RuningString("Not connected...");
^~~~~~~~~~~~
emptyString
C:\Spectrus_esp32\button_control.ino: In function 'void buttonTick1()':
button_control:145:24: error: 'local_IP' was not declared in this scope
RuningString(local_IP);
^~~~~~~~
C:\Spectrus_esp32\button_control.ino:145:24: note: suggested alternative: 'locale_t'
RuningString(local_IP);
^~~~~~~~
locale_t
button_control:145:11: error: 'RuningString' was not declared in this scope
RuningString(local_IP);
^~~~~~~~~~~~
C:\Spectrus_esp32\button_control.ino:145:11: note: suggested alternative: 'emptyString'
RuningString(local_IP);
^~~~~~~~~~~~
emptyString
button_control:146:11: error: expected '}' before 'else'
} else {
^~~~
C:\Spectrus_esp32\button_control.ino:140:5: note: to match this '{'
{
^
button_control:147:11: error: 'RuningString' was not declared in this scope
RuningString("Not connected...");
^~~~~~~~~~~~
C:\Spectrus_esp32\button_control.ino:147:11: note: suggested alternative: 'emptyString'
RuningString("Not connected...");
^~~~~~~~~~~~
emptyString
C:\Spectrus_esp32\button_control.ino: At global scope:
button_control:151:3: error: expected declaration before '}' token
}
^
Несколько библиотек найдено для "FastLED_NeoMatrix.h"
Используется: C:\Users\STLee\Documents\Arduino\libraries\FastLED_NeoMatrix
Не используется: C:\Users\STLee\Documents\Arduino\libraries\FastLED_NeoMatrix-master
exit status 1
'effectGyver' was not declared in this scope