ARDUINO Подсветка лестницы. Обсуждение проекта

Endry971

✩✩✩✩✩✩✩
25 Июн 2024
14
4
А вообще все эти эффекты баловство и пускания пыли перед гостями.
А вот как это еще расценить. Я живу в котедже на 2 хозяина. как-бы один дом большой, а входа 2. то-есть сосед зеркально с другой стороны. И вот возми и похвались ему не обдумавши подсветкой. теперь отбою нет. когда я смогу ему такое замутить. Придется мутить.
 

Gen@

★★★✩✩✩✩
13 Апр 2020
135
113
@bort707, это можно было бы сделать , но придется использовать дополнительный массив, который сожрет память и уменьшит и так небольшое количество поддерживаемых светодиодов. Эффект выдран из Гайвера, но ограничил я его по ширине самой узкой ступени для экономии памяти

@bort707, кинь ссылку мне на этот контроллер чтобы я в Европе смог купить. Тогда могу и под него переделать
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
597
178
но придется использовать дополнительный массив
Уже второй человек пишет про доп массив. Зачем? Используемый эффект "огня" (noise) рассчитывается поточечно, и не использует ни значения соседних точек, ни значения предыдущих расчетов.
При использовании ширины самой узкой ступени - работает неправильно.
При использовании ширины самой широкой ступени - работает "правильно" (условно).
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,317
1,317
Москва
Самое простое решение. Заполнить "левый" массивы эффектом огня и перенести его на ступени с учетом текущих размеров каждой ступени. Что бы не лезть и не разбираться в самом эффекте. Если лезть, то наверное можно сразу пересчитывать , только я не смотрел сам расчет и зависимости от соседних точек.
 

bort707

★★★★★★✩
21 Сен 2020
3,217
941
кинь ссылку мне на этот контроллер чтобы я в Европе смог купить.
ишите по ключевым словам Raspberry Pi Pico. Их десятки видов. В том числе и официальные ардуино - что-то типа Arduino Nano RP2040
Тогда могу и под него переделать
Там ничего особо переделывать не надо, код у Вас верхнего уровня, никаких привязок к железу именно атмеги328 там нет.
Надо только выкинуть гайверскую микролед и вставить FastLED
 

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
если интересно у меня в проекте этих огней штук несколько понадерганых отовсюду. Оформленны в виде классов, запускаются без перекомпиляции под произвольный размер матрицы. Адаптировать под свои хотелки довольно просто. Но это не под атмегу, да. Надо что бы был кадровый буфер в памяти - RPi или esp32-S2 в самый раз.
 

leopold

✩✩✩✩✩✩✩
30 Ноя 2022
2
0
Добрый день, пытаюсь собрать подсветку леснтицы по данному проекту. Столкнулся с проблемой: не реагирует на фоторезистор, в мониторе выдает значение резистора 0, хотя с мультиметром все вроде как хорошо, с +/- 5 ком падает до практически 1. Из-за чего лента светиться еле еле. Еще ПИР’ы работают не стабильно. Пытаться подтянуть 10ком к +5в, результат то же. Фоторезистор нужен чтобы днем лестница не светилась, ну а без ПИР’ов никуда.
подскажите решение пожалуйста.
сборка 1.2 от Геннадия, взята с github.
Алексей
 

Vancouver

✩✩✩✩✩✩✩
22 Сен 2020
9
9
@leopold, я когда свою собирал пока конденсаторами наводки не погасил, тоже нестабильно работало - попробуй в цепи питания датчиков добавить
 
  • Лойс +1
Реакции: Gen@ и leopold

leopold

✩✩✩✩✩✩✩
30 Ноя 2022
2
0
@Vancouver, емкость важна? Какую сам ставил? Или как говориться «кашу маслом не испортить» :)
 

vlad_krash

✩✩✩✩✩✩✩
22 Фев 2025
2
0
Доброго времени суток. Подскажите почему лента загорается ярко, в одну сторону а в другую в полнакала. Автояркость = 0, но при этом ночная подсветка горит.
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
597
178
@vlad_krash,
Когда повторял этот проект в wokwi в сообщении #581 , то тоже заметил ошибочную работу с яркостью, долго не разбирался, поставил заплатку в файл effects.ino Но возможно у вас другая ошибка.
Строка
setBrightness(curBright); //WOKWI добавил. т.к. не логично работало. Возможно лучше вызывать снаружи.
C++:
  while (1) {
    EVERY_MS(FADR_SPEED) {
      counter++;
      switch (curEffect) {
        case COLOR:
          setBrightness(curBright); //WOKWI добавил. т.к. не логично работало. Возможно лучше вызывать снаружи.
          switch (mode) {
            case 0: staticColor(1, 0, counter); break;
@vlad_krash,
Я не понял, это вы хотели сказать этими предложениями, что так быть не должно? Тогда почему?
>Автояркость = 0, но при этом ночная подсветка горит.
Изменил яркость ночной подстветки и лента стала гореть ярче. но в коде она отключена
Какую прошивку вы используете, и как вы отключаете ночную подсветку (если в предложениях выше вы говорите об этом)?
 
Изменено:

vlad_krash

✩✩✩✩✩✩✩
22 Фев 2025
2
0
27 #define NIGHT_LIGHT_BRIGHT 255 // 0 - 255 яркость ночной подсветки

версия 1.1, версия 1.2 не компилируется ошибка Compilation error: too many initializers for 'Step [7]'
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
597
178
too many initializers for 'Step [7]'
В версии 1.2, скорее всего у вас, при создании массива, указано больше строк, чем размер массива.
Если у вас 7 ступенек и 16 чипов на ступеньку, то должно быть так
C++:
Step steps[STEP_AMOUNT] = {
{ 16, 0b0100100100100100 },   // первая ступенька 16 чипов, 0b0100100100100100 - каждый третий чип активен в ночном режиме
{ 16, 0b0000000000000000 },   // вторая ступенька 16 чипов, 0b0000000000000000 - не активен в ночном режиме
{ 16, 0b0000000000000000 },   // 3
{ 16, 0b0000000000000000 },   // 4
{ 16, 0b0000000000000000 },   // 5
{ 16, 0b0000000000000000 },   // 6
{ 16, 0b0100100100100100 }    // 7
};
>#define NIGHT_LIGHT_BRIGHT 255 // 0 - 255 яркость ночной подсветки
Если это ответ на вопрос, "как вы отключаете ночную подсветку", то наверно у вас должен быть 0, а не 255.

Разбираться с Версией 1.1 не буду.
 

konstantakr1975

✩✩✩✩✩✩✩
26 Фев 2025
2
0
Хэлп... Все загрузилось и вроде работает, но не выключается! Не от датчиков, (работают) не по таймеру? Что может быть? Версия 1,2
Яркость не регулируется, режимы меняются. Монитор портов датчики реагируют. Но при включении сразу начинают работать режимы. бесконечно. Еще не понятно, IDE просит обновить библиотеки, если это сделать, то все перестает грузиться, справляюсь удалением...
Пробывал на трех Ардуинах Nano.
 
Изменено:

Ной

★✩✩✩✩✩✩
25 Янв 2023
45
11
Сделал лестницу пару лет назад, полёт нормальный... почти. (Версия 1,2)
Друзья настойчиво жалуются, что иногда именно ночью подсветка не срабатывает, то есть, похоже, неправильно наастроен датчик освещённости. У меня и среда не настроена под этот проект и ехать и три дня (и три ночи) настраивать как-то желания нет, хочется за день)) управиться. Что подкрутить? Может вообще фоторезистор вырезать?
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
597
178
иногда именно ночью подсветка не срабатывает
Когда активна ночная подсветка, то раз в минуту производится переключение диодов и сенсор не опрашивается некоторое время.
Но в этом случае сенсор должен сработать, если задержаться около него на пару секунд, или сработать на выходе (т.к. вероятность, что попали в неудачное время на входе и выходе существенно меньше.) Если дело в этом, то надо менять алгоритм программы.
 

Gen@

★★★✩✩✩✩
13 Апр 2020
135
113
@Bruzzer,
Можно отключить animatedSwitchOff и animatedSwitchOn в строках 222 и 231 , чтобы минимизировать задержку между опросами PIR сенсоров

@Ной,отпишитесь помогло ли отключение анимации в ночном режиме - я тогда поправлю прошивку
 

Ной

★✩✩✩✩✩✩
25 Янв 2023
45
11
@Gen@, попробовал закоментировать эти строки - не компилируется вовсе. Сообразить , как именно отключить не могу.
P.s. Смотрю, оно и без этого не компилируется. Скорей всего не настроена среда. Вообще не помню что там должно быть. Напомните, пожалуйста, что за ядро должно быть и версии библиотек. Или ссылочку дайте...
Был на месте установки, говорят, днём без нареканий, ночью, если только подано питание, минут 10 все ок, потом временами словно "подзасыпает" временами. Заклеил фоторезистор, посмотрим, что будет.
PPS Причина была в версии микролед, всё скомпилировалось. Когда попаду вновь туда, перезалью, отпишусь
 
Изменено:

Ной

★✩✩✩✩✩✩
25 Янв 2023
45
11
@Bruzzer, Я ж не ночевал там на лестнице)) Как я понял, срабатывает не сразу(не в тот момент как обычно) или не срабатывает вовсе
 

atomic_wolf

✩✩✩✩✩✩✩
12 Апр 2025
1
0
Доброго времени суток. Подскажите где в коде можно отключить один из эффектов? что бы оставить только два и авто смена была между ними.
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
597
178
@atomic_wolf,
Самый простой по вносимым изменениям способ:
Замените
enum {COLOR, RAINBOW, FIRE, EFFECTS_AMOUNT} curEffect = START_EFFECT;
например на
enum {RAINBOW, FIRE, EFFECTS_AMOUNT, COLOR} curEffect = RAINBOW;
Эффекты слева от EFFECTS_AMOUNT будут активны. Эффекты справа от EFFECTS_AMOUNT будут отключены.
 
Изменено:
  • Лойс +1
Реакции: atomic_wolf и Gen@