ARDUINO Простая огненная лампа.

PriusFax

✩✩✩✩✩✩✩
29 Сен 2020
4
0
Всем доброго времени суток.
Очень много конфигураций огненной лампы от нашего гуру.
Мне тоже захотелось сделать подобное.
Порадовать супругу на новый год.
Круглая мне показалась не очень (надеюсь без обид), решил сделать обычным квадратом, и сверху подвесить тряпочку под вентилятор и подсветить красным светодиодом(ну или белым с красным фильтром). Все бы ничего решил начать с материалов (ардуино нано - есть, адресная лента - есть, конденсаторы и резисторы закупился и нашёл в далеком ящике, даже кулер на 5V - есть, тактовая кнопка - есть, белое матовое оргстекло тоже нашлось, питание взял старую юсб зарядку на 2 А). Почитав статью про огненные эффекты нашел прошивку для матриц(адресных), прочитал статью для матриц(адресных), спаял сам адресную матрицу 9*9(последовательноIMG_20201206_214941.jpgIMG_20201206_230548.jpgIMG_20201206_230552.jpg). Подкорректировал прошивку и прошил, урааа заработало все три прошивки как часы работают ( fireMatrixNoise , fireMatrixReal ,fireMatrixNoiseWave ), но по отдельности. По задумке управление лампой производиться кнопкой (смена режима); реостат на 10кОм (смена цвета); выключатель (включение выключение питания), м.б. еще одна кнопка это включение выключение диода и кулера.
Теперь проблема:
Взял библиотеку GyverButton, из примера нашел нужное. Начал совмещать и вставлять эффекты ничего не получается код не компилируется.
Помогите плиз с кодом. Я почти нуб в этом, да нет наверно полный нуб.
 

Вложения

xof

★✩✩✩✩✩✩
24 Окт 2020
123
44
строка 65
'generateLine' was not declared in this scope
И всё ? Других ошибок нету ?
Метод generateLine находится внутри метода loop, и недоступен в методе setup.
Как вариант вынесете метод generateLine из метода loop и ошибка компиляции пропадёт.

1607529602551.png

C++:
void loop() { содержимое лупа}

void generateLine() {содержимое генератора}
 

PriusFax

✩✩✩✩✩✩✩
29 Сен 2020
4
0
И всё ? Других ошибок нету ?
Метод generateLine находится внутри метода loop, и недоступен в методе setup.
Как вариант вынесете метод generateLine из метода loop и ошибка компиляции пропадёт.

Посмотреть вложение 19391

C++:
void loop() { содержимое лупа}

void generateLine() {содержимое генератора}

вынесете метод generateLine из метода loop, нет метод находится в void setup(), куда его можно вынести не могу понять, или что совсем не понимаю? если его закоментить то получается следующая ошибка
'getFireColor' was not declared in this scope строка 69.
я прекрасно понимаю что все ошибки мне здесь не сделают и код не отладят, но хотя бы одинаковые ошибки я сам смогу устранить.
 

bort707

★★★★★★✩
21 Сен 2020
2,862
850
метод находится в void setup(), куда его можно вынести не могу понять, или что совсем не понимаю?
походу совсем не понимаете. Язык Си не поддерживает создание процедур и функций внутри других процедур, это вы с Паскалем перепутали. Вынесите свой метод в основное тело программы
 
  • Лойс +1
Реакции: PriusFax

xof

★✩✩✩✩✩✩
24 Окт 2020
123
44
вынесете метод generateLine из метода loop, нет метод находится в void setup(), куда его можно вынести не могу понять, или что совсем не понимаю?
У Вас сейчас примерно вот так
C++:
void setup()
{
    //что-то из сетуп
    generateLine(); //вызов метода
}
void loop()
{
  //что-то из луп
  void generateLine() //объявление метода и всего его содержимого
      {
        //blabla
    }
}
А должно быть вот так:
C++:
void setup()
{
    //что-то из сетуп
    generateLine(); //вызов метода
}
void loop()
{
  //что-то из луп
}
void generateLine() //объявление метода и всего его содержимого
{
    //blabla
}
 
  • Лойс +1
Реакции: PriusFax

PriusFax

✩✩✩✩✩✩✩
29 Сен 2020
4
0
спасибо за то, что разъяснили ошибку (я так понял что нужно было просто разобраться с фигурными скобками) . Но дальше столкнулся с тем, что оператор switch повис в воздухе, т.е. не в методе. и выводит такую ошибку :expected unqualified-id before 'switch'. строка 96. не понимаю как поставить фигурные скобки.
 

Вложения