RSS блога
Подписка
Новогодняя гирлянда на Arduino NANO с пультом, имеет более 1000 вариаций (122 эффекта и 33 палитры)
- Цена: $8.69
- Перейти в магазин
«Какой же новый год и без елочки?»
— Ваши игрушки бракованные! — Что, не блестят? — Нет, не радуют!
Наверное каждому уже надоели скучные гирлянды с однотипными эффектами. Хочется что-то по серьезнее, с минимумом вложением и использованием головы (она и так болит от новогодней кутерьмы).
Здесь рассмотрим гирлянду на 100 светодиодов, с 1000 вариациями и ценой за контроллер 150 руб
Интересно? Следуйте далее…
— Прошивки
— Примечание по прошивкам
— Прошивки для esp8566 и ESP32
— Для тех кто запутался в версиях
— Описание, как настроить аналоговые кнопки на нужные команды
— Еще одно описание, как настроить аналоговые кнопки на нужные команды
— Как настроить палитру (добавить, убрать)
Я уже был готов собрать это на контроллерах ARM. (валяются у меня много платок контроллеров с LPC1754) но паять не охота, и переводить код с Arduino времени нет.
Да я знаю что можно делать на ESP8266, но не хочу… (желающие могут портировать скетч самостоятельно)
И вот мучительно рыская в интернете в поисках интересных эффектов под разные библиотеки, я случайно набрел на страничку FastLED-Demos, где Andrew Tuline выкладывает эффекты для библиотеки FastLED.
Меня заинтересовал раздел notamesh
Я сказал Вау… и понеслось…
Покупается гирлянда на WS2811 или WS2812 или им подобных (куплена наверно уже давно на прошлых распродажах).
Покупается модуль Arduino UNO, NANO или подобным на контроллере ATMega328
Берется модуль ИК (такой или такой )
Пульт от старого телевизора или видеомагнитофона, или плеера.
Блок питания 5 вольт и 3 ампера. Ну любой
У меня были 100 штук WS2812B я каждый светодиод закатал в прозрачную термоусадку, это дало свечение на 360 градусов.
В закромах валялась платка на схеме NANO, блок питания, приемник ИК, и корпус от роутера все это соединил воедино.
У меня получилось:
вход с ИК пин 8 (PB0, D8, физический пин 12),
выход на гирлянду пин 14 (PC0, A0, физический пин 23)
Проверяйте распиновку (например, у ИК приемников ножки могут отличаться)
Вы можете выбрать другие ножки Arduino, я покажу, где менять в скетче.
С момента публикации обзора выпущено много версий, для ардуино контроллеров на базе ATMega последняя версия скетча 4,2
Нулевой вариант скетча — это оригинальный скетч автора Andrew Tuline, вот ссылка
Автор использовал библиотеки FastLED (https://github.com/FastLED/FastLED) и IRLremote.
Первую я оставил, вторую заменил на IRremote (https://github.com/z3t0/Arduino-IRremote), теперь пульт работает с библиотекой FastLED.
Первый вариант скетча с этими библиотеками notamesh1.zip
Оригинальный скетч старался не переделывать (нет времени).
Второй вариант скетча notamesh2.zip
Подробности ниже в примечании
Третий вариант скетча notamesh3.zip
Подробности ниже в примечании
Четвертый вариант скетча notamesh4.zip
Подробности ниже в примечании
Дальше шли модификации 4 варианта скетча, шло добавление отключаемого функционала
Вариант скетча 4.1добавлены эффекты notamesh4.1_(plus).zip
Подробности ниже в примечании
Вариант скетча 4.2 Добавлены дополнительные библиотеки управления кнопками и светодиодами индикации notamesh4.2_(Biblio).zip
Подробности ниже в примечании
Вариант скетча 4.2 с настройками для проекта Гайвера У Алекса использован скетч 4.1, и в нем были ошибки notamesh4.2_(Gyver).zip
Подробности ниже в примечании
Вариант скетча 4.2 для контроллеров на базе ESP убраны не поддерживаемые библиотеки (аналоговые кнопки и пульт ИК)
Подробности, свежая версия и ссылки на эту и последующие модификации рассматриваются в обзоре Новогодняя гирлянда на ESP32, имеет более 1000 вариаций (122 эффекта и 33 палитры) (Продолжение на новом железе)
Урезанная версия скетча для контроллеров на базе ATMega168 Урезано все чтоб влезло в 168 notamesh_(for168).zip
Для установки библиотеки IRremote, по совету автора надо удалить Arduino / libraries / RobotIRremote
Берем пульт, загружаем пример из библиотеки IRremote с названием IRrecvDemo
В 11 строке int RECV_PIN = 11; 11 меняем на 8 (в моей схеме к этому пину подключен ИК приемник)
Загружаем скетч в Arduino.
Тыкаем на кнопки пульта и в режиме монитора порта будут появляться коды, запоминаем их.
Эти коды надо вставить в файлик commands.h,
Например:
для команды IR_A1 (увеличить яркость) у меня на пульте код клавиши 0xff4ab5
#define IR_A1 0xff4ab5 //N/P // Увеличение яркости A1
разберетесь я думаю.
У автора номера строк будут другими
В 75 строке выставляем пин приемника ИК int RECV_PIN = 8;
В 84 строке выставляем пин выхода на гирлянду #define LED_DT 14
Если у вас другие гирлянды то в строках 84- 87 выбирается ее тип.
И не забываем для 4 проводных гирлянд убрать комментарий в строке 208 и добавить в 209
// LEDS.addLeds<LED_TYPE, LED_DT, LED_CK, COLOR_ORDER >(leds, MAX_LEDS);
LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER >(leds, MAX_LEDS);
Если пины не напутали, то должно работать сразу
При первом запуске число светодиодов в гирлянде установлено в 20 шт
Поэтому, для тех кто не использует пульт надо в стоке 119 поставить нужное количество светодиодов,
#define INITLEN 20
а если вы уже запустили, то тогда меняем код в строке 225
NUM_LEDS = EEPROM.read(STRANDLEN);
На NUM_LEDS =100;
Где 100 это ваше количество светодиодов.
Для остальных, количество светодиодов можно настраивать с пульта
Я не ограничен в токе блока питания, если у вас блок питания слабее,
то в строке 211 меняем второе число на ваше
set_max_power_in_volts_and_milliamps(5, 3000);
где 3000 – максимальный ток блока питания в мА, его при необходимости меняем
Я записал видео эффекты (режим демонстрации)
И видео когда не меняя эффект, пультом переключал палитры.
Контроллер может работать и без пульта, по умолчанию запускается демо режим
Единственно надо установить количество светодиодов в строке 225
строку NUM_LEDS = EEPROM.read(STRANDLEN);
заменить на строку NUM_LEDS =100;
Где 100 это ваше количество светодиодов.
Итак встречайте второй вариант
https://yadi.sk/d/6A_AqYV419a0hg
Что сделано:
1. Появились настройки
Все что считаю важным, вынес в отдельное место. По комментариям разберетесь
2. Добавил три эффекта. (заменил 0 и 1 эффект, и добавил 39) Последний эффект огонь.
Что можно сделать:
Уменьшить количество светодиодов при работе с пультом (отвечает переменная MAX_LEDS)
Отключить лог (Отвечает переменная LOG_ON, сделать равным 0)
Максимальное количество светодиодов не ограничено 255, можно делать больше
https://yadi.sk/d/QA7cAOHN6V0wzw
Проверяйте, пишите в комментариях
Добавил свечи
Добавил замена черного цвета фоном
Добавил плавное перетекание одного эффекта другим используя эффект бенгальского огня
как тут на видео
Добавлена обработка долгого нажатия кнопок пульта
Ну и много чего еще
https://yadi.sk/d/effzA_UUCVSQAg
Проверяйте, пишите в комментариях.
Что еще надо сделать: это вылизать временные задержки. Но на это надо время.
https://yadi.sk/d/dL5-cMM_awGAAg
Может кому надо, скетч на базе 2 варианта под нану
Следующая модификация уже будет с заданными координатами светодиодов.
Часто стали спрашивать как настраивать пульт, хочу выделить отдельно этапы настройки
Начнем по порядку
1) проверить удалена библиотека RobotIRremote (смотреть в меню Arduino / libraries / RobotIRremote) если нет, удаляем
2) проверяем работу пульта: загружаем пример из библиотеки IRremote с названием IRrecvDemo и смотрим в мониторе коды клавиш, главное чтобы они повторялись, если выводится не понятное, то проверяйте подключение датчика, если он в железном корпусе то необходимо на корпус посадить минус. У кого то был просто не исправный датчик, или не на ту частоту был рассчитан и отличался от частоты несущей пульта
Как вариант пробуйте пультом от телевизора потыкать для проверки датчика.
3)Теперь надо запомнить коды с пульта, запускаем еще раз IRrecvDemo, нажимаем желаемую кнопку пульта и запоминаем код,
Так делаем со всеми кнопками пульта, которые будут использоваться в программе
4) Заполняем команды в программе, открываем файл commands.h. там будут строчки вида
То есть если ваши желаемые коды пульта для этих команд 0xAA8C2FB8 и 0xBB8C2FB8 то эти строчки будут такими
Не используемые команды в этом файле можно оставить как есть, либо числа заменить нулем
5) Ну и напоследок проверяем настройки программы должно быть так
Номер пина, куда подключен датчик пульта должен быть правильным как в IRrecvDemo
Также надо поставить правильно 1 в типе пульта, опять же берется из IRrecvDemo
Максимальное количество светодиодов выставляете какое вам надо
Все, должно работать
Проблемы с Новой библиотекой Пульта
За два года разработчик IRremote внес изменения в свою библиотеку, теперь она стала не совместима
Как временное решение устанавливаем версии библиотек проверенные FastLED и IRremote
2. Добавлены следующие устройства
TM1637_ON (индикатор от Гайвера),
До 4 Кнопок (Библиотека Гайвера),
До 2 Светодиодов
3, расширен набор команд, Добавлены команды для работы с кнопками работать стало удобнее.
4. Добавлен режим настройки, где свой набор команд.
https://yadi.sk/d/nPBxMYT-LkwtOw
https://mysku.club/blog/aliexpress/83072.html
всего 4 версии, плюс усеченная для atmega168
notamesh
notamesh2
notamesh3
notamesh4
Каждая из этий версий это переписывание всей логики работы. также может быть наращена библиотеками управления, (к основному имени добавляется название добавленного функционала) без замены логики работы при этомэти добавки отключаются в скетче для возврата к исходному варианту
notamesh4.1_(plus).zip — добавлен бегущий огонь
notamesh4.2_(Biblio).zip — Добавлены управление кнопками и светодиоды и возможность компилировать под серию ESP
notamesh4.2_(Gyver).zip — тоже самое но под проект гувера (он использовал в своей разработке мой проект в декабре 2019 года и там есть ошибки и мало возможностей)
notamesh4.2_(ESP32).zip — это версия 4.2, где убраны библиотеки не совместимые с контроллерами на базе ESP (чисто для ESP32 в этой теме не рассматривается)
notamesh4.3_(BLE).zip — это версия 4.2 для ESP плюс добавлено управление по BlueTooth (чисто для ESP32 в этой теме не рассматривается)
все ссылки от меня ведут на актуальную версию, ошибки я исправляю быстро
Если вам очень понравился проект, и хотите его развития, можете отблагодарить автора
— Ваши игрушки бракованные! — Что, не блестят? — Нет, не радуют!
Наверное каждому уже надоели скучные гирлянды с однотипными эффектами. Хочется что-то по серьезнее, с минимумом вложением и использованием головы (она и так болит от новогодней кутерьмы).
Здесь рассмотрим гирлянду на 100 светодиодов, с 1000 вариациями и ценой за контроллер 150 руб
Интересно? Следуйте далее…
Содержание
— Схема— Прошивки
— Примечание по прошивкам
— Прошивки для esp8566 и ESP32
— Для тех кто запутался в версиях
Интересные ссылки
— Описание, как настроить кнопки на нужные команды— Описание, как настроить аналоговые кнопки на нужные команды
— Еще одно описание, как настроить аналоговые кнопки на нужные команды
— Как настроить палитру (добавить, убрать)
Мои хотелки:
Использовать ленту на WS2811, и чтоб управлялось пультом. На Arduino, как правило, это не выполнимо, слабовато, ресурсов не хватает, лишнего ничего не прикрутишь.Я уже был готов собрать это на контроллерах ARM. (валяются у меня много платок контроллеров с LPC1754) но паять не охота, и переводить код с Arduino времени нет.
Да я знаю что можно делать на ESP8266, но не хочу… (желающие могут портировать скетч самостоятельно)
И вот мучительно рыская в интернете в поисках интересных эффектов под разные библиотеки, я случайно набрел на страничку FastLED-Demos, где Andrew Tuline выкладывает эффекты для библиотеки FastLED.
Меня заинтересовал раздел notamesh
Я сказал Вау… и понеслось…
Итак.
Для повторения схемы:Покупается гирлянда на WS2811 или WS2812 или им подобных (куплена наверно уже давно на прошлых распродажах).
Покупается модуль Arduino UNO, NANO или подобным на контроллере ATMega328
Берется модуль ИК (такой или такой )
Пульт от старого телевизора или видеомагнитофона, или плеера.
Блок питания 5 вольт и 3 ампера. Ну любой
У меня были 100 штук WS2812B я каждый светодиод закатал в прозрачную термоусадку, это дало свечение на 360 градусов.
Картинки
В закромах валялась платка на схеме NANO, блок питания, приемник ИК, и корпус от роутера все это соединил воедино.
Картинки
У меня получилось:
вход с ИК пин 8 (PB0, D8, физический пин 12),
выход на гирлянду пин 14 (PC0, A0, физический пин 23)
Вот схема:
Проверяйте распиновку (например, у ИК приемников ножки могут отличаться)
Вы можете выбрать другие ножки Arduino, я покажу, где менять в скетче.
Теперь о скетче
С момента публикации обзора выпущено много версий, для ардуино контроллеров на базе ATMega последняя версия скетча 4,2
Нулевой вариант скетча — это оригинальный скетч автора Andrew Tuline, вот ссылка
Автор использовал библиотеки FastLED (https://github.com/FastLED/FastLED) и IRLremote.
Первую я оставил, вторую заменил на IRremote (https://github.com/z3t0/Arduino-IRremote), теперь пульт работает с библиотекой FastLED.
Первый вариант скетча с этими библиотеками notamesh1.zip
Оригинальный скетч старался не переделывать (нет времени).
Второй вариант скетча notamesh2.zip
Подробности ниже в примечании
Третий вариант скетча notamesh3.zip
Подробности ниже в примечании
Четвертый вариант скетча notamesh4.zip
Подробности ниже в примечании
Дальше шли модификации 4 варианта скетча, шло добавление отключаемого функционала
Вариант скетча 4.1добавлены эффекты notamesh4.1_(plus).zip
Подробности ниже в примечании
Вариант скетча 4.2 Добавлены дополнительные библиотеки управления кнопками и светодиодами индикации notamesh4.2_(Biblio).zip
Подробности ниже в примечании
Вариант скетча 4.2 с настройками для проекта Гайвера У Алекса использован скетч 4.1, и в нем были ошибки notamesh4.2_(Gyver).zip
Подробности ниже в примечании
Вариант скетча 4.2 для контроллеров на базе ESP убраны не поддерживаемые библиотеки (аналоговые кнопки и пульт ИК)
Подробности, свежая версия и ссылки на эту и последующие модификации рассматриваются в обзоре Новогодняя гирлянда на ESP32, имеет более 1000 вариаций (122 эффекта и 33 палитры) (Продолжение на новом железе)
Урезанная версия скетча для контроллеров на базе ATMega168 Урезано все чтоб влезло в 168 notamesh_(for168).zip
Продолжаем
Скачиваем библиотеки FastLED и IRremote и ставим.Для установки библиотеки IRremote, по совету автора надо удалить Arduino / libraries / RobotIRremote
Берем пульт, загружаем пример из библиотеки IRremote с названием IRrecvDemo
В 11 строке int RECV_PIN = 11; 11 меняем на 8 (в моей схеме к этому пину подключен ИК приемник)
Загружаем скетч в Arduino.
Тыкаем на кнопки пульта и в режиме монитора порта будут появляться коды, запоминаем их.
Эти коды надо вставить в файлик commands.h,
Например:
для команды IR_A1 (увеличить яркость) у меня на пульте код клавиши 0xff4ab5
#define IR_A1 0xff4ab5 //N/P // Увеличение яркости A1
разберетесь я думаю.
Настройка моего скетча
У автора номера строк будут другими
В 75 строке выставляем пин приемника ИК int RECV_PIN = 8;
В 84 строке выставляем пин выхода на гирлянду #define LED_DT 14
Если у вас другие гирлянды то в строках 84- 87 выбирается ее тип.
И не забываем для 4 проводных гирлянд убрать комментарий в строке 208 и добавить в 209
// LEDS.addLeds<LED_TYPE, LED_DT, LED_CK, COLOR_ORDER >(leds, MAX_LEDS);
LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER >(leds, MAX_LEDS);
Если пины не напутали, то должно работать сразу
При первом запуске число светодиодов в гирлянде установлено в 20 шт
Поэтому, для тех кто не использует пульт надо в стоке 119 поставить нужное количество светодиодов,
#define INITLEN 20
а если вы уже запустили, то тогда меняем код в строке 225
NUM_LEDS = EEPROM.read(STRANDLEN);
На NUM_LEDS =100;
Где 100 это ваше количество светодиодов.
Для остальных, количество светодиодов можно настраивать с пульта
Я не ограничен в токе блока питания, если у вас блок питания слабее,
то в строке 211 меняем второе число на ваше
set_max_power_in_volts_and_milliamps(5, 3000);
где 3000 – максимальный ток блока питания в мА, его при необходимости меняем
Вроде все
Как будет время, добавлю эффектов и скетч сюда выложу.Я записал видео эффекты (режим демонстрации)
И видео когда не меняя эффект, пультом переключал палитры.
Ну как то так….
С Наступающим Новым Годом!!
Примечание по мере поступления:
Контроллер может работать и без пульта, по умолчанию запускается демо режим
Единственно надо установить количество светодиодов в строке 225
строку NUM_LEDS = EEPROM.read(STRANDLEN);
заменить на строку NUM_LEDS =100;
Где 100 это ваше количество светодиодов.
Второй вариант скетча
За неделю появилось много комментариев, большинство просят сделать работу без пультаИтак встречайте второй вариант
https://yadi.sk/d/6A_AqYV419a0hg
Что сделано:
1. Появились настройки
Посмотреть настройки
/////////////////////////////////////////////////////////////////////////////////
/// Настройка
/////////////////////////////////////////////////////////////////////////////////
#define KOL_LED 100 // Сколько светодиодов в гирлянде при первом включении
#define IR_ON 1 // Если равен 1 используется пульт
// если не равен 1 пульт не используется, работает в демо режиме
#define PIN_IR 8 // Номер пина, куда подключен датчик пульта,
#define LED_DT 14 // Номер пина куда подключена гирлянда
#define LED_CK 11 // Номер пина для подключения тактов, используется светодиодов WS2801 или APA102
#define POWER_V 5 // напряжение блока питания в Вольтах
#define POWER_I 5000 // Ток блока питания в милиАмперах
#define GLITER_ON 1 // Включить мерцание при запуске
#define DEMO_MODE 3 // Режим при включении
// 0 - последняя запущенная программа
// 1 - демо режим с последовательным перебором эффектов
// 2 - демо режим с случайным перебором эффектов
#define DEMO_TIME 60 // Время отображение эффекта в демо режиме в секундах
#define DIRECT_TIME 20 // Через сколько секунд менять направление если 0 - не меняем
#define PALETTE_TIME 30 // Через сколько секунд менять палитру если 0 - не меняем
#define LOG_ON 0 // Включить лог 1 - включить лог
Все что считаю важным, вынес в отдельное место. По комментариям разберетесь
2. Добавил три эффекта. (заменил 0 и 1 эффект, и добавил 39) Последний эффект огонь.
По зависанию
Заметил такую вещь, описанную в комментариях, что при нехватке памяти происходит зависание. Подтверждаю.Что можно сделать:
Уменьшить количество светодиодов при работе с пультом (отвечает переменная MAX_LEDS)
Отключить лог (Отвечает переменная LOG_ON, сделать равным 0)
Третий вариант скетча
Решил оптимизировать память, вроде неплохо получилось,Максимальное количество светодиодов не ограничено 255, можно делать больше
https://yadi.sk/d/QA7cAOHN6V0wzw
Проверяйте, пишите в комментариях
Четвертый вариант скетча
Переработал эффект огняДобавил свечи
Добавил замена черного цвета фоном
Добавил плавное перетекание одного эффекта другим используя эффект бенгальского огня
как тут на видео
Добавлена обработка долгого нажатия кнопок пульта
Ну и много чего еще
https://yadi.sk/d/effzA_UUCVSQAg
Проверяйте, пишите в комментариях.
Что еще надо сделать: это вылизать временные задержки. Но на это надо время.
Четвертый ПЛЮС вариант скетча
По просьбам сделал бегущий огонь, теперь у разработки 122 эффектов, есть возможность добавлять эффекты.https://yadi.sk/d/dL5-cMM_awGAAg
Может кому надо, скетч на базе 2 варианта под нану
ATMega168
https://yadi.sk/d/vfXTlhrgXgpZfQСледующая модификация уже будет с заданными координатами светодиодов.
Часто стали спрашивать как настраивать пульт, хочу выделить отдельно этапы настройки
Начнем по порядку
1) проверить удалена библиотека RobotIRremote (смотреть в меню Arduino / libraries / RobotIRremote) если нет, удаляем
2) проверяем работу пульта: загружаем пример из библиотеки IRremote с названием IRrecvDemo и смотрим в мониторе коды клавиш, главное чтобы они повторялись, если выводится не понятное, то проверяйте подключение датчика, если он в железном корпусе то необходимо на корпус посадить минус. У кого то был просто не исправный датчик, или не на ту частоту был рассчитан и отличался от частоты несущей пульта
Как вариант пробуйте пультом от телевизора потыкать для проверки датчика.
3)Теперь надо запомнить коды с пульта, запускаем еще раз IRrecvDemo, нажимаем желаемую кнопку пульта и запоминаем код,
Так делаем со всеми кнопками пульта, которые будут использоваться в программе
4) Заполняем команды в программе, открываем файл commands.h. там будут строчки вида
#define IR_Key_Previous_mode 0xff50af // Down // Предыдущий эффект. Отключает демонстрационный режим
#define IR_Key_Next_mode 0xff28d7 // Up // Следующий эффект. Отключает демонстрационный режим
Меняем числа на свои запомненные.То есть если ваши желаемые коды пульта для этих команд 0xAA8C2FB8 и 0xBB8C2FB8 то эти строчки будут такими
#define IR_Key_Previous_mode 0xAA8C2FB8 // Down // Предыдущий эффект. Отключает демонстрационный режим
#define IR_Key_Next_mode 0xBB8C2FB8 // Up // Следующий эффект. Отключает демонстрационный режим
по аналогии делаем и с остальными кодамиНе используемые команды в этом файле можно оставить как есть, либо числа заменить нулем
5) Ну и напоследок проверяем настройки программы должно быть так
Тут код программы
//////////////////////////////////////// Параметры пульта
////
//Настройка действия кнопке осуществляется в файле command.h
#define IR_ON 1 // Если равен 1 используется пульт
// если не равен 1 пульт не используется, работает в демо режиме
#define PIN_IR 8 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 231 // Максимальное количество светодиодов при работе с пультом должно быть больше
// или равно KOL_LED
// От размера этого числа зависит колличество используемой памяти
//Тип пульта на который будет реагировать устройство, ставим 1 у того который используется
//это уменьшит используемую память
//Чтобы узнать имя пульта запустите в примерах IRremote / IRrecvDump
#define IR_RC5 0 // пульт RC5,
#define IR_RC6 0 // пульт RC6,
#define IR_NEC 1 // пульт NEC,
#define IR_SONY 0 // пульт SONY,
#define IR_PANASONIC 0 // пульт PANASONIC,
#define IR_JVC 0 // пульт JVC,
#define IR_SAMSUNG 0 // пульт SAMSUNG,
#define IR_WHYNTER 0 // пульт WHYNTER,
#define IR_AIWA 0 // пульт AIWA_RC_T501,
#define IR_LG 0 // пульт LG,
#define IR_SANYO 0 // пульт SANYO,
#define IR_MITSUBISHI 0 // пульт MITSUBISHI,
#define IR_DENON 0 // пульт DENON
#define IR_REPEAT 1 //Включить повтор, при долгом нажатии на кнопку пульта будет повтор клавиши
Также надо поставить правильно 1 в типе пульта, опять же берется из IRrecvDemo
Максимальное количество светодиодов выставляете какое вам надо
Все, должно работать
Проблемы с Новой библиотекой Пульта
За два года разработчик IRremote внес изменения в свою библиотеку, теперь она стала не совместима
Как временное решение устанавливаем версии библиотек проверенные FastLED и IRremote
Четвертый вариант скетча с поддержкой библиотек Gyvera
1. Компилируется на ESP32 без ошибок и работает (кроме: TM1637_ON не совместима с ESP32, пульт не проверял)2. Добавлены следующие устройства
TM1637_ON (индикатор от Гайвера),
До 4 Кнопок (Библиотека Гайвера),
До 2 Светодиодов
3, расширен набор команд, Добавлены команды для работы с кнопками работать стало удобнее.
4. Добавлен режим настройки, где свой набор команд.
https://yadi.sk/d/nPBxMYT-LkwtOw
Ответвление темы в сторону ESP32
https://mysku.club/blog/aliexpress/83072.html
Для тех кто запутался в версиях
всего 4 версии, плюс усеченная для atmega168
notamesh
notamesh2
notamesh3
notamesh4
Каждая из этий версий это переписывание всей логики работы. также может быть наращена библиотеками управления, (к основному имени добавляется название добавленного функционала) без замены логики работы при этомэти добавки отключаются в скетче для возврата к исходному варианту
notamesh4.1_(plus).zip — добавлен бегущий огонь
notamesh4.2_(Biblio).zip — Добавлены управление кнопками и светодиоды и возможность компилировать под серию ESP
notamesh4.2_(Gyver).zip — тоже самое но под проект гувера (он использовал в своей разработке мой проект в декабре 2019 года и там есть ошибки и мало возможностей)
notamesh4.2_(ESP32).zip — это версия 4.2, где убраны библиотеки не совместимые с контроллерами на базе ESP (чисто для ESP32 в этой теме не рассматривается)
notamesh4.3_(BLE).zip — это версия 4.2 для ESP плюс добавлено управление по BlueTooth (чисто для ESP32 в этой теме не рассматривается)
все ссылки от меня ведут на актуальную версию, ошибки я исправляю быстро
Если вам очень понравился проект, и хотите его развития, можете отблагодарить автора
Самые обсуждаемые обзоры
+73 |
3628
145
|
+53 |
3820
69
|
+34 |
2876
55
|
youtu.be/a033JcsHJ8g
Контроллеры есть с управлением по BT(105-й вроде), но вроде там нет загрузки картинок, ещё есть с микрофоном от музыки(110-й). Управлять могут и другими гирляндами и лентами, не одновременно, а если у вас не WS2811, в приложении настраивается. С какими работает надо смотреть описание. Сам видео показать не могу, елку ещё не ставили, а про сами контролеры можно посмотреть в ютубе.
btf-lighting.aliexpress.com/store/1051119
Блок питания брал давно уже для других других разных целей, поэтому специально не покупал.
Кому срочно надо, то есть в России в наличии в некоторых магазинах, но обязательно надо уточнять, могут «надуть». И самое главное ценник сами понимаете что будет выше. У меня так живьём родня брала в Питере дабы не пролететь с гирляндой на этот НГ. Где конкретно не могу сказать, они сами бегали искали.
Это я их «соблазнил», когда они заезжали в гости, а я уже неделю как испытывал свои картинки на гирлянде намотанной на стремянку! :-)
Я о чём… Нет, за конструкцию плюс поставил.
Пожалуйста, прочтите правильно, тут нет критики. Но вот моя личная логика построения автоматизации заключается в том, чтобы свести к минимуму участие человека. Я считаю, что если я автоматизирую что-то, так это именно для того, чтобы человек в этом больше не принимал участие. Я про то, что сколько бы я ни делал «мигалок для ёлок», я пульт (или мобильниое управление) к ним никогда даже в мыслях не рассматривал :)
По мне, так лично мне в новогоднюю ночь есть чем заниматься за праздничным столом и помимо переключения режимов и палитры на ёлке :)
Но это дело, разумеется каждого, не смею навязывать своё мнение.
PS: Что касается меня, то, помимо опубликованных гирлянд в моих обзорах прошлых лет, в этом году повторяю конструкцию Стивена на ардуине-мега. Я писал об этом в одном комменте. Моё мнение не поменялось: его визуализация, для меня, на сегодня, — это эталонная отметка в художественности и эффектности на ёлке, на которую и надо равняться.
Пока не идеально, но стремимся…
Вчера она вышла с таможни во Внуково.
Есть шанс что таки дойдет до НГ :)
Тоже думал что в конце января придет
Иисус Христос, ЗАЧЕМ СТОЛЬКО ???????!!!
Лампочки притягивают.
об полна пол пошёл в другое играть.Добавлю в свои гирлянды кое что.
я думаю, достаточно пары кнопок для регулировки яркости, причём затолкать это в void loop, чтобы раз отрегулировать при запуске и забыть.
Так и эта гирлянда раз настроил и… радует
Как я понял, 2811 это отдельно RGB светик с платой, а на 2812 контроллер уже на самой пластине с кристаллом? А 2812b?
2811 это обычный светодиод и светит во все стороны, а 2812 — это SMD и светит только в одну сторону?
Кто юзал и те, и те, какой из них долговечнее в плане обрыва проводов?
2811 — это микросхема, к ней можно прицепить нак SMD светодиод или «с ножками»
2812 — тут только SMD, с буковкой b просто ног меньше
ну по поводу долговечности китайских проводов… не тут порвется, дак там протрется.
Я покупал 2812b (как в этой теме) пока ни разу не оторвались
а 12В и 5В определяется применяемыми микросхемами, есть на 12В есть на 5В
на 12В токи меньше
А вот WS2812b на 12 вольт уже цеплять НИЗЯ!!! Причина проста — цепи питания контроллера и светодиода заведены на ОДИН пин. И если вы туда сунете 12 Вольт — хана вашей WSке.
2812 и 2812b отличаются количеством ног и, соответственно, разводкой внутри корпуса. И там и там корпус 5050. Но у 2812 6 ног (по сути это тот же контроллер но совмещен со светиком), а у 2812b только 4 — 2 по питанию и 2 адресных (вход и выход).
В «традиционной» ленте светодиоды соединяют по 3 и уже потом подключают к цепи 12 В. То есть там надо погасить 12 — 3.2*3 = 2.4 В на три диода. Понятно, что результирующие потери получаются меньше, также меньше становится ток всей ленты, что требует проводов меньшего сечения. Но при этом эти три диода всегда будут гореть вместе. Для таких лент это не проблема, так как там вообще вся лента светится только одним цветом.
Я видел в продаже 12 В ленты с микросхемами (возможно, 2811), но там три рядом стоящие диоды всегда светят одинаковым цветом. Можно использовать их, но будет менее эффектно.
Поэтому, для адресных лент только 5 В.
WS2812 диоды с шестью ногами (+5v GND Din; +5v GND Dout)
WS2812B с четырьмя ногами (+5v GND Din Dout)
Благодарю.
Скетч можно сделать под себя, добавить и индикацию, примеры есть.
Места где надо выводить информацию на дисплей в программе начинаются со строк Serial.println(
Моя цель не похвастаться проектом, а побудить людей что-то сделать самим.
Начните хотя бы с типа дисплея, я подскажу.
Подсоединяем дисплей по схеме ну например такой
в Скетч добавляем следующее
Это где нибудь в начале допустим после строки
#include «commands.h» // The IR commands.
Где const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; это ваши пины, куда подключили дисплей
Далее
Этот код надо вставить внутрь функции void setup() {
Ну и теперь все должно работать
Вывод осуществляется командой
Где hello, world! это текст, вам надо заменить на свой
поесть в ROM
Контролер ардуина, всякие управления для него это дичь и излишество, сколько эффектов и палитр не знаю но за 10 минут не повторилось ни разу. Дальше не залипал, елка стоит, светится, дети рады.
Эти две ленты брал на 5 вольт. Точное расстояние не скажу, это видео прошлого года, сейчас не ставили еще елку, если достану придется собирать и елку, так что только по ссылке оценивать. Блок питания вроде на 5 или на 7 А. Брал 5 вольтовую чтоб не городить питание для ардуино нано. Ну и промышленные БП в наличии в магазине под боком. И да ленты хорошо стыкуются, больше 100 шт на такую елку не влезет.
Хотя ИМНО выше привели то же самое но лучше.
mysku.club/blog/discounts/66817.html
есть у меня три цвета rgb и белые, хочу сделать моргалку на ардуине. Моргать научился через мосфет, с этим нормально, но вот как сделать плавное включение и затухание, уже три дня пытаюсь найти… может что другое вместо мосфета купить? или плавное моргание нереально на таком сделать?
а то нагуглил в яндексе что надо некий TLC5940 шим контроллер надо брать
тут схем много как подключать как правило один провод общий для всех
яркость установлена до 50%
Таблица потребления.
в цикле loop меняем строку
Serial.println(results.value, HEX);
на
Serial.println(results.value);
будет выводится десятичное число
это число надо вставить в настройках вместо 0xfffffff
будет выглядеть так
Вот такие:
Самое похожее, что удалось найти — это бухта на 50м с доставкой федэксом за $50. Перебор.
https://aliexpress.com/item/item/50m-lot-3pin-20AWG-17pcs-0-14wires-transparent-cable-for-led-pixel-module-with-good-cold/1707323788.html
Есть проект на атмеге32, где я должен стыковаться с другим устройством на 2400 8N2.
Всю голову же сломал, не могу заставить слать 2 стоп-бита.
#define F_CPU 8000000UL
#define BAUD 2400L
#define UBRRL_value (F_CPU/(BAUD*16))-1
UBRRL = UBRRL_value;
UBRRH = (UBRRL_value >> 8);
UCSRB = (1<<TXEN)|(1<<RXEN);
UCSRC =(1<<URSEL)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0);
//UCSRC=0b10001110; — так тоже пробовал
//UCSRC = 0x8E; — и так пробовал
В итоге и в atmelstudio 7, и в протеусе 8.1 контроллер выставляет 2400, 8N1.
Как мне выставить 8N2?
и так правильно
UCSRC=0b10001110;
Значит, либо ктото переинициализирует еще в программе.
Либо попробуй передернуть
UCSRB=0x00;
UCSRB = (1<<TXEN)|(1<<RXEN);
Для страховки можно еще паузу между командами поставить в 1 милисек
Поделитесь хорошими скетчами с множеством эффектов для ардуино с WS2812., которые переключаются сами по себе без пульта. типа (бегущие огоньки, по одному, по два, вперед, назад, от средины и т, д.)
Очень нужно для утренников.
СПАСИБО.
paaev@meta.ua
Собрал схему на Arduino Nano один-в-один, пины те же. Скачал и подключил библиотеки. Запустил IRrecvDemo, записал коды кнопок пульта, прописал их в command.h (заменил своими кодами не все строки, т.к. у меня пульт маленький, кнопок немного).
Скетч notamesh1.uno вообще не правлю, все как в скачанном исходнике! Демо режим работает без вопросов, а как только нажимаю кнопку на пульте (любую — хоть прописанную в command.h, хоть нет) — всё, цикл встает. Вывод в ком-порт прекращается, диоды Rx и Tx не мигают, диоды на гирлянде замирают в одном состоянии. Прога зациклилась?
Предположил, что зацикливание идет в цикле в строке 268, но почему?! Закомментировал его, скетч зависать перестал, но работать тоже не хочет. В порт вместо команд сыпется мусор…
Не пойму, в чем причина, что надо исправить? При компиляции IDE ругается:
Это может быть причиной? Заранее благодарен за помощь!
Кстати, ругается ли IDE или просто информирует, не знаю, у меня с таким текстом часы работают, да и в других проектах вроде проблем не было.
Скетч заработал как надо! Теперь думаю, и зачем тут пульт? ))
Теперь надо дорабатывать скетч, чтобы с пульта сделать перебор только нужных эффектов. А то, некоторые слишком уж навязчивые ;)
Скажите, а 39-й эффект почему не доступен при включенном логе и управлении с пульта, — из-за нехватки памяти тоже?
Вторая версия скетча
Жена- «Божественно», я и сам пол ночи радуюсь как дитя.
Подскажите пожалуйста:
— как выбрать нужные эффекты,
— как уменьшить скорость эффектов,
— и хочется побольше эффектов на темном фоне.
А в остальном все очень и очень (КРАСОТИЩА).
Автору от всех, большой Respect.
Завтра несу в школу, будем готовится к Новому Году.
Эффекты перебираются командами
IR_D2 — предыдущий и
IR_D3 — следующий
или без пульта то переменная INITMODE
Скорость выбирается командами
IR_C2 -замедление и
IR_C3 -ускорение
К сожалению при смене эффекта скорость теряется
Но есть лазейка в функции void strobe_mode(uint8_t newMode, bool mc)
Есть case номер после него указывает номер эффекта, а в этой строке переменная thisdelay отвечает за скорость этого эффекта, это так называемая задержка, чем число меньше, тем эффект быстрее и наоборот, чем выше число, тем эффект медленне.
Поздравьте с Новым Годом школьников как следует!!!
Для настройки меняем:
здесь выставляем пины правильно, если собрана как на рисунке в теме то менять не надо
и здесь не забываем выбрать правильный тип светодиодов
Надо закоментировать не используемый и раскоментировать нужный
С этими настройками Уже будет работать.
Налетай 1
С новым Годом 2
Удачи Всем
Если есть у кого то что-то подобное -делитесь…
Давайте соберем здесь все интересные скетчи для 2812.
Ждем.
exit status 1
'one_color_all' was not declared in this scope
Подправил
#define MAX_LEDS 200 // Maximum number of LED's defined (at compile time).
надо поставить число 150
#define MAX_LEDS 150 // Maximum number of LED's defined (at compile time).
по идее должно работать
Кстати, подскажите сколько ресурсов пишет после компиляции
Лог компиляции показывает:
DATA: [===== ] 52.4% (used 1073 bytes from 2048 bytes)
PROGRAM: [======== ] 76.1% (used 23380 bytes from 30720 bytes)
Это при выключенном логировании и при вкл:
DATA: [======= ] 72.9% (used 1492 bytes from 2048 bytes)
PROGRAM: [======== ] 80.0% (used 24582 bytes from 30720 bytes)
Лог пишет в цикле:
---SETTING UP---
Initial del␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀␀
Слова ---SETUP COMPLETE--- не выводятся
Судя по логу компиляции должно все работать.
Причины могут как аппаратные так и программные.
Аппаратные
1 проверяйте питание,
2 проверяйте замыкания на плате (продуйте, может токопроводящий волосок висит),
3 с usb может идти сброс, там ножка на ресет заведена
Программные
1.Обновите библиотеки
2 обновите среду Ардуино
Может и модуль Nano может быть бракованым, как вариант проблема с ЕЕПРОМ, можно его убрать.
скетч скачало более 200 человек, вашу проблему я не встречал.
А нельзя никак сделать, чтоб был доступен с пульта 39 режим? Может, даже пожертвовав какими-то эффектами похожими что ли, чтоб памяти хватало?
Если в кратце по почистив библиотеку пульта. можно высвободить ресурсы
И еще вопрос, пока играл с эффектами и палитрами, то не понял, можно ли как-то остановить изменение цвета, чтоб, например, светилась вся гирлянда одним цветом и только мерцание сопроваждало бы этот режим. Хотел получить примерно такой эффект youtu.be/3Io4OeBP2GQ?t=183, но пока только переливается все. Подумал, что Остановка вращения палитры F1 Остановить перебор Палитр это делает, но вроде все равно переливаются разными цветами.
можно закоментировать
а в в конец функции void strobe_mode(uint8_t newMode, bool mc)
добавте строки в таком виде
Придется жертвовать частью эфектов, но я постараюсь…
Ориентировочно выйдет через неделю или раньше.
Не подскажете, хотел детям на улице елку оформить, она высокая, насчитал где — то под 370-400 светодиодов, такое уже тестировал кто — то с данным сетапом.
Почитав разные темы понял, что похоже у нано памяти не хватит на такое количество, на сколько реально можно ориентироваться, исходя из элементов с топика?
Ну и писалось про вариант с координатами, там еще будет больше данных, значит что — то будет совершенствоваться, на эту зиму есть смысл расчитывать? :)
С Уважением Дмитрий
Мега тянет более 500
На работе STM32 тянет более 2500 светодиодов
мой совет такой, если у вас нано. разбейте на 2 части и каждую часть подключите в паралель. То есть 1 светодиод и
например 201 подключите к контроллеру остальные цепочкой
Пересчитал конус, оказывается 600+ светодиодов будет, не подскажете на stm32 что и как делали?
Или в ближайшее время можно ожидать новую версию?
С уважением
Не коммерческая будет уже точно на ESP32. Разработчик FastLED ввел в нее аппаратную поддержку передатчика. Я только-только приступил к изучению и писанию кода под ESP32, могут вылезти подводные камни.
В некоммерческом виде будет весь текущий функционал, плюс расчет конуса, на ESP32 пульт заменит беспроводный интерфейс, код будет в среде ардуино, сроки пока не знаю, делаю в свободное время.
Будет готовый контроллер для лентяев.(прошей сам) с минимальной стоимостью и будет коммерческая прошивка с 2D матрицами (без FastLED)
Ардуино Nano. 28 светодиодов без пульта работает все отлично. Как только
подключаю пульт (#define IR_ON 1)
ошибка в while (!irrecv.isIdle());
Ir коды в COMMANDS_H ввел
#define MAX_LEDS 50 // Maximum number of LED's defined (at compile time).
Помогите.
Либо датчик приема с пульта сломан,
Либо наводки идут, для этого датчик закрывают в металический корпус и корпус подключают к общему проводу (в данном случае к минус питания)
Бывали случаи срабатывания, когда рядом с домом чтото светило (реально окна выходили на металлургический комбинат, а там зарево от выливания шлака на улицу) Решается задергиванием штор.
Совет:
Для начала закройте вход датчика ИК (если не заработает, то меняйте датчик, если заработает, то ищите кто излучает)
Главная фишка: здесь эфекты наслоены друг на друга и занимают минимум ресурсов.
Чувствую надо видео новое снимать, во 2 версии все намного интереснее стало.
Решил оптимизировать память, вроде неплохо получилось
Максимальное количество светодиодов не ограничено 255, можно делать больше
https://yadi.sk/d/QA7cAOHN6V0wzw
Проверяйте (вечером сам проверю), пишите в комментариях
Ну раз ресурсов много стало, в четвертом варианте будут переработаны и добавлены эффекты
Намного лучше. Все грузится.
На сигналы пульта реагирует быстрее.
Спасибо.
На всех пультах есть кнопки с цыфрами.
Как бы закрепить эффект за кнопочкой?
И с яркостью, мне кажется лучше было бы одним нажатим увеличить яркость, а не щелкать по кнопке…
Или это я уже слишком…
С нетерпением ждем 4.
кнопка 2-2ой эффект.
…
кнопки 34-34ый эффект
#define IR_A1 0xB78877 //N/P // Увеличить максимальную яркость
(было бы лучше чтобы просто при нажатии кнопки яркость плвно увеличивалась) а не тыкать
и соответственно при нажатии
#define IR_A2 0xB722DD //Repeat // Уменьшить максимальную яркость
In file included from C:\Users\Admin\Downloads\notamesh3\notamesh3\notamesh3.ino:102:0:
C:\Users\Admin\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.001
# pragma message «FastLED version 3.002.001»
Бонусом, добавил работу пульта при долгом нажатии клавиши
Кто скачивал 3 скетч, скачайте его снова
попробуй закоментировать:
237 строку #include «fire.h»
и 443 строку case 39: if(mc) {thisdelay=10; palchg=0; thisdir=1;gCurrentPalette = CRGBPalette16( CRGB::Black, CRGB::Blue, CRGB::Aqua, CRGB::White);} fire(); break;
и в 179 строке поменять 39 на 38 uint8_t maxMode = 38;
Если зависать не будет, то виноваты ресурсы
И ждем новый скетч, там раширенная клавиатура и эфект пламени не требовательный к памяти
я почти его закончил
За год может потеряться, батарейки нужны, произвольным пультом не заменишь (нужно перешивать)
Использовать пульт от телика — нужно прикрывать телик, чтобы на него не прошли команды которые хотел послать гирлянде.
У меня самсунг — на пульте задействованы все кнопки и высокая чувствительность — ловит из соседней комнаты на отраженке от стен.
Напрашиваются 3 механических кнопки (дополнительно, а не вместо пульта)
1 — старт/стоп демо режима (заморозка текущего эффекта)
2 — выбор следующего режима. Можно даже 2 кнопки (следующего / предыдущего), ибо пролистать 39 режимов по кругу достаточно утомительно.
3 — выбор яркости. 3-5 ступеней. Иначе в полной темноте может слепить / раздражать, а при включенном свете — плохо видно.
Кнопки можно не запаивать, но хорошо если бы это было реализовано в скетче.
Памяти это не много отъест, входов свободных достаточно, можно резисторным делителем через аналоговый вход.
Меняю код на свой выдает ошибку
Коды у меня правда не похожие на стоковые.
Пример: BD5DAC9D
Пуль от iptv приставки, может в нем дело?
Спасибо.
Спасибо.
То есть для вашего случая
0xBD5DAC9D
#define IR_A1 0xBD5DAC9D //N/P // Увеличение яркости A1
Еще вопросик. Когда нужно узнать имя пульта (IRrecvDump), то пульт который хочу прикрутить он определяется как Unknown encoding. А такого варианта нет. Нужно искать другой пульт? Спс.
если все нормально, то в настройках моего скетча можно выставить любой пульт, например NEC
Теоретически должно работать
и надо нажать очень много раз чтобы код который внес в файл проскочил и функция заработала, ну и бывает, что и на каждое нажатие приходит верный код.
Походу проще физические кнопки сделать…
1. Проверьте может шумит приемник ИК (если он в металлическом корпусе то корпус надо подключить к минусу.
2, Может частота пульта не соответствует частоте приемника ИК (бывает 38 и 36 кГц) Попробуй те их подобрать.
3. Поменять пульт тоже можно
Да вы можете перейти на аппаратные кнопки, либо использовать демо режим.
Я постараюсь добавить аппаратные кнопки.
ПС: из 200 человек скачавших скетч только у двоих есть проблема с пультом.
impetus.obninsk.ru/electro/flash.html
Спасибо
Будут проблемы спрашивайте, поможем
по поводу вашего сообщения выше с интересными эффектами, такое тоже можно сделать на ардуинке.
А когда примерно выйдет 4-я версия.
Спасибо большое за качественную сборку.
Сейчас дописываю. Вечером тестирую.
Там будет много вкусностей…
Удачи Вам.
Проверяем…
мега 2560 + 200-2812b + пульт nec + лог 0 + версия 3.1 = вис на 85
сейчас проверю новую версию
PS спасибо за огромную работу
KOL_LED 60
IR_ON 1
IR_MAX_LEDS 60
CHIPSET WS2812B
------[LOG ON]---------------------------
---SETTING UP---
20, 0, 0
Initial delay: 0ms delay.
Initial strand length: 0 LEDs
Mode: 85
1002
---SETUP COMPLETE---
Start SetMode
Start SetMode
Start SetMode
Start SetMode
------[LOG OFF]--------------------------
при IR_ON 0
------[LOG ON]--------------------------
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 60 LEDs
Mode: 0
1001
---SETUP COMPLETE---
Start SetMode
Mode: 23
30960
End SetMode
Start SetMode
Mode: 26
61040
End SetMode
------[LOG OFF]--------------------------
ЗЫ DEMO_MODE 2
Подправил скетч, теперь не будет режимов которых нет.
Скачайте четверку заново
Это эффект свечи
если поставить значение CANDLE_ON в 0
то
>>#define CANDLE_ON 1 // Включить Свечи при запуске
заменить 1 на 0
Все.
ошибка см картинку выше
если define CANDLE_ON 1-то загружается номально
1. Ошибка компиляции для 2 проводных светодиодов
2. Проблема с ЕЕПРОМ Веедены дополнительные проверки
Остальное не затронуто.
Скетч 4 обновлен, можно скачать
ошибка
а если
#define CHANGE_ON 1 // Включить смену эффектов через бенгальский огонь
то работает но надоедает
2.как минимум версия IDE
При #define CHANGE_ON 0 не объявляется переменная KolLed
148 #if CHANGE_ON == 1
149 uint8_t KolLed;
150 #endif
И это приводит к ошибке, потому что в строке
377 KolLed = NUM_LEDS;
Используется эта переменная.
1. Исправил ошибку при отключении бенгальскго огня
2. Смену плавную смену режимов можно оставить, а эффект бенгальского огня убрать
Остальное не затронуто.
Скетч 4 обновлен, можно скачать
Будут аналоговые кнопки. Схема может быть любая.
например любая из этих:
Это самый простой вариант…
С Наступающим Новым Годом!
Проблема была аналогичная вашей только с 30 диодами, работали только 30, в другом скетче с примеров библиотеки FastLED-master загорались с точностью до штуки, все 150. Провозился пол дня потом заработало. Такой вопрос, а меньше 100 светодиодов нормально устанавливается?
Я выявил это только когда повесил на елку всю гирлянду, до этого проверял все время скетчи на 100 светодиодах…
Я если честно не знаю в чем была проблема, может и не в этом, но она разрешилась.
Попробуй еще примеры по запускать из библиотеки FastLED, я с ними пробовал, проверял в них работу всей гирлянды.
качал библиотеку отсюда
Были проблемы пока не обновил библиотеку FastLED:
Скетч/Подключить библиотеку/Управление библиотеками, там выбрать тип Обновляемый и если в списке стоит FastLED обновить его нажав кнопку обновление.
Теперь по поводу сколько светодиодов работает.
Если включен пульт (IR_ON равен 1 ) то количество светодиодов берутся не из KOL_LED а из EEPROM
поменять можно будет командой с пульта IR_B2 и IR_B3 для 3 скетча или IR_Key_Length_Garland_plus и IR_Key_Length_Garland_minus для 4 скетча
Были проблемы пока не обновил библиотеку FastLED:
Скетч/Подключить библиотеку/Управление библиотеками, там выбрать тип Обновляемый и если в списке стоит FastLED обновить его нажав кнопку обновление.
Теперь по поводу сколько светодиодов работает.
Если включен пульт (IR_ON равен 1 ) то количество светодиодов берутся не из KOL_LED а из EEPROM
поменять можно будет командой с пульта IR_B2 и IR_B3 для 3 скетча или IR_Key_Length_Garland_plus и IR_Key_Length_Garland_minus для 4 скетча
Так должно быть?
Сказали бы конкретно на каком эффекте, я бы программно фофиксил.
Замечательные эффекты. и работа устройства.
Казалось бы больше нечего и не нужно, но кнопочки и резисторы потихоньку ищем…
Спасибо большое автору за проект и его поддержку.
#define COLOR_ORDER RGB //Очередность цвета светодиодов RGB или GRB
На что она влияет, на какие светодиоды рассчитана?
у меня WS2811
Можно проверить, либо загрузив пример FastLED Blink (там должен мигать красный), либо в моем скетче с пульта включить красный ( команда IR_Key_Solid_Red)
Если это не так, то поменять параметр
1. Добавлен эффект 40 Свечки (но не так как на видео, похоже, того скетча что на видео не нашел, поделитесь добавлю)
2. Добавлены эффекты плавной смены и плюс режим случайного перебора
3. Добавлена аналоговая клавиатура
4. Добавлены выбор режима как в телевизоре два варианта (кнопки 0-9 и +10 или кнопки 0-9)
5. Изменен режим свеча, можно выбрать шаг отображения.
6. выполнена оптимизация
7. исправлены мелкие ошибки и добавлены новые :)
Скетч 4 обновлен, можно скачать
Собрал на Pro Mini и установил в корпус, где уже была цветомузыка с вариантом от ЧипДип (точно не знаю чья разработка Люмазойд) и часами на esp с синхронизацией по NTP. Попоробовал даже цветомузыку на елке, но там билиберда, когда лента под шторами сверху на карнизе, то лучше смотрится.
А сама гирлянда зачетная получилась, столько эффектов. Еще и поддержка и модернизация автором. Может, она щас дапже самая крутая, как мне кажется, из тех, что встречал.
Большое года ждал паблик релиз на ардуино, правда выложено без исходников.
Но зато куча настроек через дисплей, собрал себе на 300 диодов, питание через каждые 100, родные были в восторге!
Так там можно было задавать нажатием одной кнопки колличество бегущих светодиодов.
1 нажатие — 1 светодиод
2 нажатия — 2 светодиода
— ну скажем хотябы до 5.
Было бы класно реализовать и в Вашем проекте, если это возможно, лучше всего с пульта.
Спасибо.
Раньше сам делал схемы и на триггерах и сдвиговых регистрах но теперь возможности куда шире. Я в те времена не пог предположить, что заставлю лампочку зажжется любым из 16 миллионов цветов, Теперь применимы термины волны, синусоиды, палитры.
Давайте так, если народ поддержит, то я добавлю эффекты из 80-90 годов.
Заранее благодарю всех.
Сделал бегущий огонь, в 4 плюс…
Поностальгируем.
KEY_ON 1
с выключенным пультом
вылетает с ошибкой
Относительно 96 строчки скетча У меня зарядка для мобильного 2-х амперная не тянула. Зависала на первом эффекте. Выставил 2000, всё-равно висла. Поставил 1000 и всё прекрасно заработало.
отключите лог (LOG_ON 0) и
свечки (CANDLE_KOL 0)
у меня получается
и то может зависать
Надо чтобы Глобальные переменные оставались около 500 или больше
Если не поможет придется чтото еще убирать
например пульт
Кстати, библиотека FastLed обновлена?
Скетч/Подключить библиотеку/Управление библиотеками, там выбрать тип Обновляемый и если в списке стоит FastLED обновить его нажав кнопку обновление
# pragma message «FastLED version 3.002.001»
Скетч использует 18340 байт (56%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 937 байт (45%) динамической памяти, оставляя 1111 байт для локальных переменных. Максимум: 2048 байт.
CHANGE_ON 1
CHANGE_SPARK 4
Вот лог:
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 100 LEDs
Mode: 0
1005
---SETUP COMPLETE---
Start SetMode
Mode: 36
60656
End SetMode
Start SetMode
Mode: 30
120595
End SetMode
Start SetMode
Mode: 12
180657
End SetMode
Start SetMode
Mode: 19
240650
End SetMode
Start SetMode
Mode: 38
256613
End SetMode
Start SetMode
Mode: 39
316594
End SetMode
Start SetMode
И long lastSecond; объявл в глобальный переменных.
И еще, не разобрался почему при mode 7 происходит стабильный перезапуск процессора.
1. Переписан демо режим по нормальному, зависаний быть не должно
2. Добавлено: можно создавать списки режимов для работы в демо режиме, Появились демо 3 и демо 4 для работы с этими списками
Скетч 4 обновлен, можно скачать
скинте ваши настройки
Надеюсь скетч 4 перезагрузили, в демо ошибка была
MY_MODE 2,7,9,8
И в этот раз зависло после 7 режима. Повторил — тоже зависло.
Далее выставил
CHANGE_SPARK 0
Т.е. уже не зависает, а после 7 режима опять нулевой и так по кругу
Автору спасибо огромное!
Год назад я тоже на beatsin зависоны ловил, вот и решил глянуть из-за чего.
ПыСы пару часов уже без зависона две гирлянды по 75 светиков на Arduino pro mini
Всех с наступающим Новым Годом!
скинте все настройки
у меня нет зависаний
FastLED обновлена?
сколько ресурсов после компиляции?
При KOL_LED=IR_MAX_LEDS
Если сделать так как выше написал — то все гуд!
1. Исправлена ошибка. при CHANGE_SPARK 4 эффекты случайно не менялись. Исправлено
2. Списки режимов теперь не расходуют оперативную память, можно список делать до 255 элементов.
Скетч 4 обновлен, можно скачать
С наступающим Новым Годом!!!
если у вас стоит COLOR_ORDER RGB поменяйте на COLOR_ORDER GRB
или наоборот
если у вас стоит COLOR_ORDER GRB поменяйте на COLOR_ORDER RGB
Если не используете кнопки Гайвера (появились недавно) то проверьте параметр SAVE_EEPROM он должен быть
либо SAVE_EEPROM 2 либо SAVE_EEPROM 0 чтобы COLOR_ORDER заработал
параметр SAVE_EEPROM 0 как раз и отключает хранение
Сможете вывести красный цвет и посмотреть реально он красный или зеленый?
если не знаете как подскажу
Я так понимаю, она должна светиться только при подаче управления?
Китаец прислал гирлянду с пробитыми чипами?
Как себя должна вести исправная лента?
ЗЫ С НГ!!! Это был тяжелый год © Слепаков
Отзывы нормальные.
По идее ws2812b — это та же 2811 без корпуса, интегрированнвя прямо в сборку с диодами? Хотя пишут что тайминги отличаются немного.
Может я управление не с той стороны подаю?
Нигде не описано.
Есть 2 разъема, один мама, там еще 2 провода питания, другой — папа, для следующей гирлянды.
Гирлянда без контроллера загорается белым (условно белым, светятся все кристаллы, цвет чуть розоватый), подаю управление — изменений нет.
Попробовал несколько библиотек — FastLed, Adafruit Neopixel
Компилировал их примеры
Похоже придется осциллограф доставать
проткните тонкой иглой провод, сигнальный, идущей ко второму светодиоду, и подайте управление
Извиняюсь за тупые вопросы:
тип светододов выбран правильно?
и пин управления с ардуино тоже?
Ардуина с несколькими битыми портами была, методом перебора нашел целый — демка пошла
Ща скомпилю Ваш проект и можно вешать на ёлку :)
Похоже нашел ошибку — некоторые эффекты считают что диодов не 50, как указано в 2-х местах в настройках, а 49
Последний диод может зависнуть на выходе из эффекта. Например бегут сине-зеленые волны, а он ярко-розовый с предыдущего эффекта.
Потом опять нормально, потом опять не хватает шага.
Поставить в настройках 51 диод?
Или это последний чип зависает (провода очень тонкие)? Хотя, тогда бы не развисал при смене эффектов.
В любом случае Спасибо и с Новым Годом!!!
Отладку не включал — шил со стационарного компа, а он в другой комнате
Старенький ноут не потянул новую IDE :(
Другие опции (отключение плавных переходов и прочие) не проверял по той же причине.
Питания с запасом — delta electronics 5v/2.5a на 50 диодов, в скетче выставлено 2000 ма.
Но когда работает — смотрится шикарно!
За совет спасибо. В следующем году попробую :)
1. Исправлена ошибка KOL_LED=IR_MAX_LEDS (зависание)
2. Исправлена ошибка в эффектах 2 5 9 12 14 18 26 ( последний светодиод теперь работает)
3. Исправлена ошибка перехода с 39 на 40 эффект (не всегда была)
4. исправлено еще чтото по мелочам
5. сделал список переливающихся эффектов (которые у меня оставлены по умолчанию)
Скетч 4 обновлен, можно скачать
Глобальные переменные должны оставлят больше 500 байт иначе могут быть зависания. чтобы уменьшить память можно поотключать не используемое. У вас отключение лога, как раз освободилонужную память
настройки не туда скинул, они где то ниже получились
и IR_MAX_LEDS 51
и должно все быть хорошо
Со временем переставите на 100 и 200
//////////////////////////////////////// Параметры пульта////
//Настройка действия кнопке осуществляется в файле command.h
#define IR_ON 1 // Если равен 1 используется пульт
// если не равен 1 пульт не используется, работает в демо режиме
#define PIN_IR 8 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 50 // Максимальное количество светодиодов при работе с пультом должно быть больше
// или равно KOL_LED
// От размера этого числа зависит колличество используемой памяти
//Тип пульта на который будет реагировать устройство, ставим 1 у того который используется
//это уменьшит используемую память
//Чтобы узнать имя пульта запустите в примерах IRremote / IRrecvDump
#define IR_RC5 0 // пульт RC5,
#define IR_RC6 0 // пульт RC6,
#define IR_NEC 1 // пульт NEC,
#define IR_SONY 0 // пульт SONY,
#define IR_PANASONIC 0 // пульт PANASONIC,
#define IR_JVC 0 // пульт JVC,
#define IR_SAMSUNG 0 // пульт SAMSUNG,
#define IR_WHYNTER 0 // пульт WHYNTER,
#define IR_AIWA 0 // пульт AIWA_RC_T501,
#define IR_LG 0 // пульт LG,
#define IR_SANYO 0 // пульт SANYO,
#define IR_MITSUBISHI 0 // пульт MITSUBISHI,
#define IR_DENON 0 // пульт DENON
#define IR_REPEAT 1 //Включить повтор, при долгом нажании на кнопку пульта будет повтор клавиши
//////////////////////////////////////// Параметры кнопок
////
//Настройка действия кнопке осуществляется в файле command.h
#define KEY_ON 0 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define PIN_KEY A3 // Номер пина, куда подключены кнопки
//Зачения смотреть в протоколе после строки Analog Key
#define KEY_0 10 // Значение соответствующее нажатой 0 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_1 70 // Значение соответствующее нажатой 1 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_2 140 // Значение соответствующее нажатой 2 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_3 280 // Значение соответствующее нажатой 3 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_4 360 // Значение соответствующее нажатой 4 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_5 520 // Значение соответствующее нажатой 5 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_6 700 // Значение соответствующее нажатой 6 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_7 900 // Значение соответствующее нажатой 7 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_DELTA 5 // погрешность значения кнопки, тоесть от -KEY_DELTA до +KEY_DELTA
//////////////////////////////////////// Параметры гирлянды
////
#define COLOR_ORDER RGB //Очередность цвета светодиодов RGB или GRB
#define CHIPSET WS2801 //Тип микросхемы светодиодов в гирлянде
#define LED_DT 14 // Номер пина куда подключена гирлянда
#define LED_CK 11 // Номер пина для подключения тактов, применяется для светодиодов WS2801 или APA102
//ЕСЛИ НЕ ИСПОЛЬЗУЕТСЯ ЗАКОМЕНТИРОВАТЬ
#define POWER_V 5 // напряжение блока питания в Вольтах
#define POWER_I 4000 // Ток блока питания в милиАмперах
//////////////////////////////////////// Параметры программы
////
#define GLITER_ON 0 // Включить блеск при запуске
#define CANDLE_KOL 0 // если больше 0 то будут включена эмитация свечей
// число задает через какое расстояние друг от друга располагать свечи
#define CANDLE_ON 0 // Если включена эмитация свечей то 1 = при запуске она будет включена
// 0 = при запуске она будет выключена
#define BACKGR_ON 1 // Включить заполнение черного цвета фоном
#define DEMO_MODE 2 // Режим при включении
// 0 — последняя запущенная программа
// 1 — демо режим с последовательным перебором эффектов
// 2 — демо режим с случайным перебором эффектов
// 3 — демо режим с последовательным перебором выбранных эффектов
// 4 — демо режим с случайным перебором выбранных эффектов
#define MY_MODE 0,1,2,4,5,9,10,11,14,16,17,18,19, \
21, 22, 28, 30, 32, 34, 36, 37, 38
//Выбранные эффекты пишутся номера через запятую,
// можно писать и одинаковые что актуально в демо 3
// Если закоментировать, то демо 3 и 4 отключаются
#define DEMO_TIME 40 // Время отображение эффекта в демо режиме в секундах
#define CHANGE_ON 1 // Включить плавную смену эффектов
#define CHANGE_SPARK 0 // Эффект смены 0 — без эффекта, 1 — искры (бенгальский огонь) 2 — яркий свет
// 3 — метеорит, 4 — случайный эффект (из 1-3)
#define CHANGE_TIME 7 // Время в секундах, за которое произойдет плавная смена эффектов
#define DIRECT_TIME 20 // Через сколько секунд менять направление если 0 — не меняем
#define PALETTE_TIME 30 // Через сколько секунд менять палитру если 0 — не меняем
#define LOG_ON 1 // Включить лог 1 — включить лог
Дело в том, что настройка GLITER_ON 0 не отключает эффект насовсем, а отключает его при запуске. Но с пульта командой
IR_Key_Glitter можно включать эффект заново
если вам надо его отключить окончательно то закоментируйте строку 487
#define GLITER_ON 1 // Включить блеск при запуске
Понял про мелькание. Блеск был включен. Но, почему только первые 43 светодиода.
Эффект мне нравится. Где его продлить на всю ленту? 300 светодиодов.
Спасибо!
У меня гирлянда меньше, вызуально ошибку пока не нашел.
Если раздражает установите CHANGE_ON 0
Обновил Скетч 4
По поводу цветной волны. Скорее всего, это своеобразная визуальная инициализация, т.к. она появляется только при старте ардуинки.
По поводу цветной волны. Это часть эффекта blendwave(), который глючит при количестве светодиодов более int8.
Изменил beatsin8 на beatsin16 в модуле blendwave.h и волна побежала по всей ленте.
Но теперь зависает на 21м режиме. :(
это функция fill_noise16 из библиотеки FastLED. либо там ошибка, либо нехватает памяти.
по ссылке
там есть состав функции
и в ней видно что идет выделение памяти
uint8_t V[num_leds];
uint8_t H[num_leds];
для 300 диодов это выделение 600 байт, у вас есть свободными после компиляции больше 600 байт?
Тут либо исключить эффекты 22 и 37, либо использовать ардуину с большим процессором например Arduino Mega 2560
попробуйте в файле noise16_pal.h
Все стереть и вставить это:
Если заработет отпишитесь.
если и после этого зависнет
значит гдето еще сосет память.
Надо либо исключить эффекты 22 и 37, либо использовать ардуину с большим процессором например Arduino Mega 2560
Исключил эффекты до лучших времен. (Может после праздников поковыряю)
Спасибо.
Вижу, что Вы взяли палитры из этого эффекта. А сам эффект не использовали?
#include «colorwave.h»
case 1: if(mc) {thisdelay=10;} colorwaves(leds, NUM_LEDS, gCurrentPalette); break;
С Рождеством!!!
Здесь на 1 эффект больше.
Это наблюдается если включен фон. На каких именно эффектах сейчас точно не могу сказать, готовимся принимать гостей. Как будет время, понесу ноут к елке, сниму лог.
Может у вас свежий скетч не установлен?
Это только где он должен светиться синим фоном.
Лог нужен, в каких режимах происходит?
Если что, у меня 150 светодиодов. IR_MAX_LEDS пробовал 150 и 151. Все равно.
А скетч от 03.01. Только commands.h скопировал из предыдущего с моим экземпляром пульта.
Мне достяточно хотябы номер режима в котором этот глюк).
и также, если возможно, проверить с какого режима был переход (тоесть это всегда происходит в этом режиме или когда переход с конретного на конкретный)
Initial delay: 0ms delay.
Initial strand length: 150 LEDs
Mode: 0
1001
DEMO MODE 1
---SETUP COMPLETE---
Start SetMode
Mode: 1
60415
End SetMode
Start SetMode
Mode: 2
120413
End SetMode
Start SetMode
Mode: 3
180445
End SetMode
Start SetMode
Mode: 4
240466
End SetMode
Start SetMode
Mode: 5
300492
End SetMode
Start SetMode
Mode: 6
360437
End SetMode
Start SetMode
Mode: 7
420454
End SetMode
Start SetMode
Mode: 8
480450
End SetMode
Start SetMode
Mode: 9
540455
End SetMode
Start SetMode
Mode: 10
600503
End SetMode
Start SetMode
Mode: 11
660479
End SetMode
Start SetMode
Mode: 12
720470
End SetMode
Start SetMode
Mode: 13
780444
End SetMode
Start SetMode
Mode: 14
840471
End SetMode
Start SetMode
Mode: 15
900514
End SetMode
Start SetMode
Mode: 16
960474
End SetMode
Start SetMode
Mode: 17
1020481
End SetMode
Start SetMode
Mode: 18
1080512
End SetMode
Start SetMode
Mode: 19
1140458
End SetMode
Start SetMode
Mode: 20
1200497
End SetMode
Start SetMode
Mode: 21
1260504
End SetMode
Start SetMode
Mode: 22
1320466
End SetMode
Start SetMode
Mode: 23
1380650
End SetMode
Start SetMode
Mode: 24
1440514
End SetMode
Start SetMode
Mode: 25
1500536
End SetMode
Start SetMode
Mode: 26
1560556
End SetMode
Start SetMode
Mode: 27
1620538
End SetMode
Start SetMode
Mode: 28
1680564
End SetMode
Start SetMode
Mode: 29
1740572
End SetMode
Start SetMode
Mode: 30
1800564
End SetMode
Start SetMode
Mode: 31
1860601
End SetMode
Start SetMode
Mode: 32
1920587
End SetMode
Start SetMode
Mode: 33
1980547
End SetMode
Start SetMode
Mode: 34
2040609
End SetMode
Start SetMode
Mode: 35
2100541
End SetMode
Start SetMode
Mode: 36
2160617
End SetMode
Start SetMode
Mode: 37
2220592
End SetMode
Start SetMode
Mode: 38
2280646
End SetMode
Start SetMode
Mode: 39
2340618
End SetMode
Start SetMode
Mode: 40
2400615
End SetMode
Start SetMode
Mode: 0
2460634
End SetMode
Start SetMode
Mode: 1
2520597
End SetMode
Start SetMode
Mode: 2
2580566
End SetMode
Успел проследить, что когда процесс пошел по второму кругу, то в режиме 2 опять тоже самое. Потом жена сказала, что я дурак. И я пошел писать отчет и спать. Спасибо за внимание :)
Я не пробовал уменьшать до минимума
если светодиодов меньше 10 то эффекты отключаются
лучше всего это сделать в функции setup
строка примерно 400
перед строками
поставить
NUM_LEDS = 149
1. Добавлен 41 эффект
2. Добавлена палитра
3. Добавлены изменения обсуждаемые здесь
Скетч 4 обновлен, можно скачать
const uint8_t my_mode_count = sizeof(my_mode) — 1;
Если не отнять то вызывается не существующий элемент массива my_mode.
1. Исправлены ошибки найденые maxx_1974
Скетч 4 обновлен, можно скачать
Кто знает, какую эпоксидку китайцы заливают внутрь кембриков, надетых на платки со светодиодами в гирляндах на WS2811? Очень прозрачная и твердая. Как раз такая нужна.
Но гирлянды таким образом не делал, у меня WS2812 с термоусадкой прозрачной
youtu.be/otUls5Yimjc
или так
youtu.be/akau2wIjMNw
Я купил 100 шт., но на елку 2.1м маловато, собирался докупить, но что-то пошло не так, теперь точно еще куплю. ССЫЛКА НА ГИРЛЯНДУ WS2811
Модель выложил на thingiverse.com
Да, заливка у модели не помню, 10 или 20%. Любым прозрачным пластиком, у меня был ПЕТГ.
Встало всё отлично! Даже, когда выяснилось, что в одном светике, в середине, не пропай — пролезла поверх усаженных.
PS: Спасибо автору за труд… очень симпатичная гирлянда получилась!
Правда чуть косячит: зависают изредка последние диоды (шт 5-10, по разному, систему не понял), лечу перезапуском… Esp, 2*50 диодов WS2812B, питание с 2-х концов, коньдюки на ленте и Esp повешены, посл. обновления 12 янв. установлены, пульта/кнопок нет
кстати попробуйте скетч отсюда… mysku.club/blog/aliexpress/58913.html
без каких то… автору данного труда мои респекты! но тот скетч как то мне ближе и переходы как то гармоничнее что-ли…
или я с этим не разобрался
тут как то иногда резко смена режимов происходит. хотя 4-тый вариант скетча заливал…
Ок… надо попробовать, пока ёлка стоит
у меня пульта нет. может подскажите свои настройки?
то есть за это время белый огонь пробежит всю гирлянду, для увеличения скорости уменьшить число
есть еще по смене эффектов
а вот про «пламя» — это не осознал и не проникся!
надо пробовать ускорить.
Спасибо!
ищем строку (строка 660)
case 39: if(mc) {thisdelay=10;} fire(); break;
В ней переменнаяthisdelay это задержка, чем меньше число, тем выше скорость эффекта
по аналогии можно настроить и другие эффекты
KOL_LED
Если используется
то установить
KOL_LED количество светодиодов
IR_MAX_LEDS больше на одну чем KOL_LED
и чтоб наверняка в функции setup()
вконце (строка 400 примерно) добавить строку
NUM_LEDS = KOL_LED;
О, пока меня тут отвлекали, люди уже и ответили.
И аналоговые кнопочки.
И дисплей )))
Для управления по WIFi на смартфон, интересно, но надо время.
Уже реализовано много команд, зачем дублировать
Аналоговые кнопки реализованы
смотри здесь в комментариях от 26 декабря
Дисплей не реализован но в комментариях от 12 декабря написано как подключить
мелкие изменения и поиск ошибок номер не меняли
Добавление эффектов не такое глобальное изменение.
Проверяйте правильность установки библиотек и их актуальные версии
C:\Program Files (x86)\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.001
# pragma message «FastLED version 3.002.001»
^
In file included from C:\Users\Александр\Downloads\Arduino Libreries\notamesh4\notamesh4.ino:320:0:
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\colorwave.h: In function 'void colorwaves()':
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\colorwave.h:32:13: warning: unused variable 'sat8' [-Wunused-variable]
uint8_t sat8 = beatsin88( 87, 220, 250);
^
In file included from C:\Users\Александр\Downloads\Arduino Libreries\notamesh4\notamesh4.ino:321:0:
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h: In function 'void getirl()':
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:784:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:794:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:804:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:814:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:824:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:834:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:844:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\8523~1\AppData\Local\Temp\arduino_build_590476\sketch\getirl.h:854:71: warning: statement has no effect [-Wunused-value]
demorun = 0; ledMode = 100; palchg==0;
^
C:\Users\Александр\Downloads\Arduino Libreries\notamesh4\notamesh4.ino: In function 'void setup()':
C:\Users\Александр\Downloads\Arduino Libreries\notamesh4\notamesh4.ino:359:7: warning: unused variable 'ranstart' [-Wunused-variable]
Подскажите, возможно какая-то из настроек выполнена неправильно. В Ардуино я начинающий, повторял пока-что несколько проектов.
Подкорректировал 4 скетч, предупреждения должны пропасть
C:\Program Files (x86)\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.001
# pragma message «FastLED version 3.002.001»
^
In file included from C:\Users\Александр\Downloads\Arduino Libraries\notamesh4\notamesh4.ino:320:0:
C:\Users\8523~1\AppData\Local\Temp\arduino_build_412086\sketch\colorwave.h: In function 'void colorwaves()':
C:\Users\8523~1\AppData\Local\Temp\arduino_build_412086\sketch\colorwave.h:32:13: warning: unused variable 'sat8' [-Wunused-variable]
uint8_t sat8 = beatsin88( 87, 220, 250);
^
C:\Users\Александр\Downloads\Arduino Libraries\notamesh4\notamesh4.ino: In function 'void setup()':
C:\Users\Александр\Downloads\Arduino Libraries\notamesh4\notamesh4.ino:359:7: warning: unused variable 'ranstart' [-Wunused-variable]
Информацию о версии не убрать
C:\Program Files (x86)\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.001
# pragma message «FastLED version 3.002.001»
^
Как приедет гирлянда, сразу же испробую! Жаль, что практически только перед самым праздником эту информацию увидел на Муське, ну да ладно, к следующему НГ будет готова, может еще и шторку в придачу сделаю. :-)
Собрал схему с кнопками, пульт не использую. Ардуино только изучаю, в скетче кнопки включил.
Но их назначение не понял. В схеме 6 кнопок, но на что они влияют?
Кто нибудь пользуется кнопками? Как узнать какая за что отвечает?
1. установить
где вместо A3 указать ваш номер входа куда подключены кнопки
Загрузить скетч
запустить монитор лога
и понажимать на кнопки
в логе появятся строки вида Analog Key: ###
где ### -число (код кнопки)
запомнить какая кнопка какой код имеет
2. заполнить значениями таблицу
где вместо 10, 70, 140, и т.д. заполнить ваши значения, которые соответствуют кодам нажатых клавиш. Не используемые коды ( в вашем случае KEY_6 и KEY_7 заполнить 0 (нулем)
далее открываем файл commands.h
там ищем какие команды нравятся (будете использовать)
в понравившейся строке команды меняем число вида 0x###### на KEY_#, где # — номер вашей клавиши
например:
Сброс настроить на клавишу 0, включить демо режим с последовательным переключением на клавишу 1, включить демо режим со случайным переключением на клавишу 2
Не используемые команды желательно закоментировать для экономии памяти, либо оставить как есть
Как то так, сам не пробовал, расскажите, что получилось
Попробовал я кнопки прицепить все настроилось и работает без проблем.
Схему и номиналы взял такие: (пригодиться может кому)
На мониторе порта все видно, что и как настроено и работает:
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 100 LEDs
Mode: 0
1001
DEMO MODE 3
---SETUP COMPLETE---
Analog Key: 1023
Analog Key: 91
Command: 0x5B
Brightness+ 255
Analog Key: 1023
Analog Key: 169
Command: 0xA8
Brightness- 127
Analog Key: 1022
Analog Key: 234
Command: 0xEA
Mesh delay: 0ms delay.
Demo Random On
Analog Key: 1023
Analog Key: 291
Command: 0x122
Solid_Black
Analog Key: 1023
Analog Key: 340
Command: 0x153
Analog Key: 1023
Mode: 39
15967
Analog Key: 382
C?
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 100 LEDs
Mode: 0
1004
DEMO MODE 3
---SETUP COMPLETE---
Analog Key: 1022
Все управление и настройки теперь в одном месте в главном файле notamesh4Biblio.ino
Команды в конце
Светодиоды для определения в каком режиме находишься
Первый отражает нажатия кнопки библиотеки GyverButton
Второй отображает вход в режим настройки
пруф:
Сопротивление ограничивает ток через светодиод, иначе светодиод сгорит. Но для данного устройства светодиод не нужен.
Ардуино Мега 2560 подойдёт для этого проекта? Лежит без дела.
У Вас скетчи работают или надо что то изменять?
Номер пина можно посмотреть тут: (фиолетовый цвет)
pic.mysku-st.ru/uploads/pictures/06/33/37/2019/02/13/04a023.jpg
Нашел один не приятный баг.
Скетч: notamesh4
Может про него писал кто нибудь, я не нашел.
Срабатывает он в любом режиме.
Не важно какой режим выбрать:
#define DEMO_MODE 0
Я в начале выбрал 1, и как то странно гирлянда подвисает не на долго и начинает с 0 режима.
Думаю Ардуинка что ли виснет, дай лог посмотрю.
В логе происходит что мы доходим до 7 эффекта он заканчивается и следует перезагрузка.
Думаю дай попробую режим 3 все эффекты отрабатываю и без перезагрузки и снова включается 0 эффект.
#define MY_MODE 0,1,7,2,4,5,9,10,11,14,16,17,18,19,21,22,28,30,32,34,36,37,38
Вставил в список выбранных эффектов 7 эффект и снова перезагрузка при его окончании.
Лог вот так выглядит:
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 100 LEDs
Mode: 0
1001
DEMO MODE 3
---SETUP COMPLETE---
Start SetMode
Mode: 1
60635
End SetMode
Start SetMode
Mode: 7
120629
End SetMode
Start SetModeMode:
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 100 LEDs
Mode: 0
1001
DEMO MODE 3
---SETUP COMPLETE---
Остальные эффекты прогнал до 40, такое же поведение у 31 эффекта тоже перезагружает.
Остальные эффекты не приводят к перезагрузке.
Посмотрите что можно сделать или совсем их может убрать или починить.
Кстати Дмитрий если вам не сложно напишите а сколько вообще эффектов есть у этого скейтча?
Заранее благодарен.
В последнем скетче 41 эффект и 33 палитры, на каждый эффект (кроме пламени и свечей) можно применить палитру
итого получается 39*33 = 1287 вариаций помимо этого можно включать блеск, свечи на каждый эффект.
Также есть эффекты перехода с эффекта на эффект…
В демонстрации можно убрать (оставить нужные) эффекты.
В новом варианте скетча эффектов перехода с эфекта на эффект будет очень много, также появится эффект плавного включения. Тамже должно появится подобие привязки к координатам (но об этом позже)
в режиме монитора выходит абра кадабра — кубики квадратики.
как получить код для кнопки???
не подскажите где косяк?
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 100 LEDs
Mode: 18
1001
DEMO MODE 3
---SETUP COMPLETE---
Analog Key: 1022
Analog Key: 1023
Analog Key: 1023
Analog Key: 1019
Analog Key: 0
Analog Key: 1022
Analog Key: 1023
Analog Key: 1022
Analog Key: 0
Analog Key: 1023
Analog Key: 1023
Analog Key: 1016
Analog Key: 1018
Analog Key: 1023
Analog Key: 1020
Analog Key: 1023
Analog Key: 12
Analog Key: 0
Analog Key: 0
Analog Key: 1000
Analog Key: 1020
Analog Key: 1009
Analog Key: 1023
Analog Key: 1020
Analog Key: 1015
Analog Key: 2
Analog Key: 0
Вы подключили кнопку, но даже ее не нажимая при включении выходит это?
Тогда не правильно настроен вход кнопки (кнопок)
подключать надо к синему входу (ANALOG xx)
и вход надо прописать в настройках в виде Ах, где х номер входа
#define PIN_KEY A3 // Номер пина, куда подключены кнопки
Кнопка подключена по приложенной схеме
но результат пока печальный.
Подключено к выходу А3
Если ничего не нажато, должно быть 1000-1023
Analog Key: 1022
при нажатии кнопки, должно быть примерно 0-100
Настройки тогда можно сделать такие
#define KEY_ON 1
#define PIN_KEY A3
#define KEY_0 50
#define KEY_DELTA 50
Для перебора режимов в файле commands.h вставить строку
#define IR_Key_Next_mode KEY_0
PS: для уверенного срабатывания можно резистор R6 убрать
PS1: проверьте, где то не очень хороший контакт, по логу
только для перебора режимов сделал так:
#define IR_Key_Next_mode 0x53
и еще. на 7 и 31 эффектах система зависает.
как эти эффекты удалить из скетча?
если удалить эти строки, получится?
#if IR_Key_Mode_7
case IR_Key_Mode_7: /////////////////////////////////////////////////////////////////////////// Эффект 7
SetMode (7); break;
#endif
или удалить это
case 7: if(mc) {thisdelay=10; numdots=2; thisfade=16; thisbeat=8; thisdiff=64;} juggle_pal(); break;
проще заменить один эффект на другой
например эту строку заменить
case 7: if(mc) {thisdelay=10; numdots=2; thisfade=16; thisbeat=8; thisdiff=64;} juggle_pal(); break;
на
case 7: if(mc) {thisdelay=50; thisdir=1; thisrot=1; thisdiff=1;} rainbow_march(); break;
и по аналогии с 31 строкой заменить строку
case 31: if(mc) {thisdelay=10; numdots=4; thisfade=32; thisbeat=12; thisdiff=20;} juggle_pal();break;
на
case 31: if(mc) {thisdelay=10;} serendipitous_pal(); break;
сделаем по ускоренному варианту.
Спасибо автору, все получилось работает, по этой схеме делал светильник для новорождённой племянницы,
Можно ли добавить выбор белого цвета с ИК пульта
Эта команда уже реализована
IR_Key_Solid_White
Автору респект!
И хочу напомнить, что он как-то оговорился (если мне память не изменяет) о том что подумает прикрутить управление к мобильнику.
Это было бы очень замечательно. Я так понимаю надо ESPшками запастись? :)
P.S. А то НГ не за горами, заодно и внуку обновлю гирлянду.
если прикрутить к AVR модуль wifi, то ресурсов не хватит (надо впихнуть протокол обмена) и придется усекать количество светодиодов.
У меня был интерес прикрутить пульт которому нужны прерывания и FastLED который вырубает прерывания. Плюс оптимизировать так чтобы работало на 300 светодиодов на самой распространенной компактной ардуине нано
Я даже и не предполагал такой вариант.
Значит будем делать проверенный вариант. А мозги сменить на гирлянде дело пяти минут ;)
Просто я могу припаять, прикрутить, залить по инструкции — а програмный код не мое к сожалению.
Спасибо за ответ.
1. Когда даю команду- "#define IR_Key_Solid_Black" (Установить цвет Черный (Выключает гирлянду)), если включена смена палитр, то лента выключается, а через заданное время смены палитр начинает включаться палитрами.
2. Как можно изменить палитры(цвет)?, хочется более насыщенных цветов.
3. на что влияют настройки "#define IR_Key_Delay_minus, #define IR_Key_Delay_plus", строки 104, 105.(commands.h,)
4. Можно ли убрать строки с 36 по 101, и что это даст.(commands.h),
Очень ждем Ваших доработок и обновлений.
Исправил Перечитайте скетч, сам проверить не могу.
Палитры хранятся в файле gradient_palettes.h, формат смотреть у FastLED, я его не менял. Создаете по аналогии с уникальным именем,. в конце имя прописываете в список.
Устанавливает длину гирлянды, то есть #define KOL_LED задает максимальное количество светодиодов при компиляции, а в готовом устройстве, без компиляции также можно менять количество светодиодов с пульта но не более KOL_LED
Можно, но ничего не даст, даже память не освободится
Спасибо за отзывчивость и оперативность.
Не используемые команды надо заполнить 0 (нулем) или удалять тогда память устройства освободится на эти команды
А что у вас за ошибки я могу долго гадать
Есть пожелание:- включить «искры (бенгальский огонь)» как отдельную функцию, типа «Включить/выключить сверкание».
Спасибо.
Вводные: в скече отключил дефолтный пульт, а в commands назначил все кнопки, которые мне нужны на пульт от sony. По количеству кнопок точно так же как там было по дефолту, только коды кнопок свои.
Также в скече убрал временные задержки смены режимов.
Дампером нажатия пульта считываются, ошибок процент минимальный, только если сильно мимо направить. Ситуаций когда кнопка нажата, а сигнал не поступил или обработался не так фактически нет.
Теперь о проблеме зависаний:
Nano 328р. Иногда реакция на команды пульта моментальная, несколько команд подряд с небольшой временной задержкой отрабатываются моментально. А иногда можно 10 раз на кнопку нажать — 0 реакции. Не скажу, что увидел закономерность, но чаще всего этот глюк можно поймать в режимах выбора цвета. Типа включил желтый и потом можно 15 раз нажать на кнопку. Сигнал до ардуино точно доходит (на приемнике мигает светодиод). Одновременно с этим на режимах с одним единственным цветом замечен глюк, что, например с полностью белого, на допустим, желтый гирлянда переключается не полностью, а половиной. Т.е. часть диодов начинает гореть желтым, а часть остается белым. Если затем проявить настойчивость и несколько раз нажать на пульте на, скажем зеленый, то она запросто вся переключится на зеленый полностью. Т.е. опять же без закономерностей.
Думал проблема в памяти или процессоре. Решил не разбираться с этим и сразу проверить на Mega 2560. В ней после заливки скеча осталась куча свободной памяти, но проблема осталась та же.
Что это может быть и как бороться? Пока решил отключить пульт и попробовать кнопками, буду изыскивать рабочий вариант.
Светодиодов 140
БП 5в 10а
а тудже пишете что .
Если мы говорим про ИК пульт то в нем команда долгого нажатия имеет другую команду.
Все проверяется запуском скетча из примеров IRremote с названием IRrecvDemo
Посмотреть что приходит при нажатии пульта.
Результат сюда, будем разбираться
Проведу сегодня эксперименты и дам знать + попробую на самой гирлянде поиграть параметром долгого нажатия и описать результаты.
Кстати найти пульт с Unknown encoding оказалось не так уж сложно :) Достаточно попробовать пульт от кондея, в моем случае тошиба. Хотел сначала на него прицепиться, т.к. зимой он самый ненужный в доме, но смутила эта ошибка, не стал.
При запуске демо, который я указал, видно какая кодировка пульта
Прокопался и выяснил вот что. Через IRrecvDemo кнопки определяются верно, как уже писал без пропусков:
Enabled IRin
D58
FFFFFFFF
CE9
FFFFFFFF
3EE
FFFFFFFF
25EE
1D0
AE9
E90
FFFFFFFF
6D25
FFFFFFFF
A50
A50
AE9
E90
FFFFFFFF
CE9
FFFFFFFF
D58
FFFFFFFF
Если в той же нано при тех же условиях заменить IRrecvDemo скечом для гирлянды начинается песня:
Initial delay: 0ms delay.
Initial strand length: 140 LEDs
Mode: 0
1001
DEMO MODE 1
---SETUP COMPLETE---
Command: 0xAA8C2FB8
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0x9F0B6C7F
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0x6D25
Solid_Violet
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0x9F0B6C7F
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0x446CEBEE
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0x9A6FC9AD
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0xEA321265
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0x9F0B6C7F
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Command: 0x6D25
Solid_Violet
Command: 0xFFFFFFFF
Command: 0xFFFFFFFF
Т.е. кнопка корректно декодируется с энного раза. Уточню, что в логе выше я жал все время на одну и ту же кнопку 0x6D25.
В двух примерах выше гирлянда отключена, т.е. чисто источник питания в виде USB порта ноута + нано + vc1838b. Запитывал еще и дополнительно через источник питания (5в 10а) — аналогично ведет себя.
Более того, если подключить гирлянду, к нано, то могут вообще начаться фантомные нажатия. В примере ниже я не жму никаких кнопок вообще
Initial delay: 0ms delay.
Initial strand length: 140 LEDs
Mode: 0
1001
DEMO MODE 1
---SETUP COMPLETE---
Command: 0xE7AFBAE3
Command: 0x16872075
Command: 0x43BDEAA2
Command: 0x8A1FDB05
Command: 0x4CB0FADC
Command: 0x65BDDD66
Command: 0x4BD03788
Command: 0x5AED50EF
Command: 0xA7E5F685
Command: 0x52D302CE
Command: 0x6A19A4D0
Command: 0xFE26BF4E
Command: 0x22E0734A
Command: 0xC40BD816
Command: 0xEA204C78
Command: 0xFCABFFBF
Command: 0x4CB0FADC
Command: 0xAB1C99E1
Command: 0x24AE7D4E
Command: 0xF9E6B4A2
Command: 0x24FECA5F
Все лишние пульты убирал, приборы выключал.
От схемы с аналоговыми кнопками гирлянда работает идеально.
Он определяется как Sony, но если проставить
картина останется прежней.
Во всем этом меня смущает то, что в IRrecvDemo никаких фантомных нажатий, кнопки декодируются корректно. Стоит залить скеч, не меняя схему — начинается описанное выше.
Напоминаю: Библиотека FastLED во время передачи вырубает прерывания, а для работы пульта они обязательны. отсюда и проблемы с пультом. Я применил решение которое делает не срабатывание пульта менее 20%, что достаточно для работы и не обременительно.
Можете попробовать проект автора он за год тоже вставил работу пульта, можно попробовать его.
Еще раз напоминаю, я хотель выжать максимум, на что способен Нано, здесь идеть жесточайшая экономия памяти с максимальными возможностями. 300 светодиодов, огромное количество эффектов работа с пульта и кнопок
Теперь по вашему логу
Если пульт с протоколом сони то его и надо ставить
код 0xFFFFFFFF это код повтора предыдущей команды, если непрерывно жать на кнопку пульта то идут эти команды. попробуйте нажимать на пульт не длительно а часто.
Да, ставил в какой-то из итераций тестов, разницы особо не увидел, но оставлю раз надо.
Осталось мне победить фантомные команды, когда пульт не нажат. Я так понимаю, что это уже сама лента создает помехи на линию питания при мигании, т.к. заметил вчера в полной темноте, что светодиод на vc1838b еле заметно мигает в такт мигания самой ленты.
Также минус от датчика надо отдельно провести до блока питания. ну и провода короче
Жду развития с нетерпением.
Удачи.
либо проблема с лентой, можно подключить второй светодиод
либо проблема с настройкой скетча, выбрать другой тип светодиодов
2. заменить один из эффектов на свой по аналогии или
3. Написать функцию в новом файле с расширением h
использовать MAX_LEDS и KolLed в функции, отвечающие за количество светодиодов
в файле notamesh4.ino в строке 667 добавить где thisdelay=10 задает задержку (влияет на скорость)
xxxxxx() — ваша функция
250 строке поменять 41 на 42 — задает сколько эффектов
Гирлянда на 150 светодиодов. Пульт не подключен
Это первая поделка на Arduino NANO. Полный ноль в этом.
У меня, после последнего обновления, перестала.
На пред идущей прошивке работает.
103 #define IR_Key_Save_Mode 0xFF10EF // Clear // Сохранить эффект как запускающийся первым ---то же не работает
ставлю загружаю в контроллер
выбираю например 22 режим с пульта (нажимаю 2 и затем 2) лог:
Сохраняю с пульта
Перезагружаю и стартует с 22 эффекта
Вы все правильно сделали
Надо копировать файл COMMANDS_H из версии в версию
Отстаю на пару релизов, а понимания какие файлы обновлять, чтобы не затереть свои правки, нет
тут либо сюда и я вставлю в код, либо мучаться
Сожалею, что не оправдал надежды в этом году
стало похоже на свечи.
Где можно поиграться со сверканием, блеском и свечками?
все в файле addings.h
хочется изменить длительность вспышек и количество.
В строке -52 if( random8() < chanceOfGlitter) {, меняя знак больше меньше,
меняется количество, но грубо.
Длительность не регулируется, либо менять код и хранить массив с координатами блесток
Количество блесток установлено так
Один шаг одна блестка (при этом она появляется с вероятностью 10 из 255
Вероятность задается в файле notamesh4.ino в строке 498 где 10 вероятность
По количеству, просто скопируйте эту строчку сколько надо раз
её зафиксировать.
Режим работы — 110 #define DEMO_MODE 1
Монитор порта пишет, что на некоторых программах смена палитр идет, а на некоторых нет.
0прогр.- нет
1-нет
2-есть
3-есть
4-нет, должна
5-есть
6-есть
7-есть
8-есть
9-есть
10-есть
11-есть
12-нет, должна
13-есть
14-есть
15-есть
16-нет, должна
17-есть
18-есть
19-нет
20-есть
21-нет
22-нет
23-есть
24-есть
25-есть
26-есть
27-есть
28-33 -есть
34-нет
35-есть
36-есть
37-нет
38-нет, должна
39-нет
40-нет
41-нет, должна
Получается в 5-ти программах нет авто смены палитр.
И без правки цветов тоже работает. В скетче строку «89 #define CHIPSET WS2811 //Тип микросхемы светодиодов в гирлянде» не менял.
либо проблема с ардуиной, можно попробовать сменить пин
либо проблема с лентой, можно подключить второй светодиод
либо проблема с настройкой скетча, выбрать другой тип светодиодов
Ленту менял (5 шт по 50)
В скетче выбирал 2811, 2812B
На контроллере T1000s, работают при выборе WS2811
Попробуйте библиотеку НЕО демку какую то, если и она даст сбой, то меняйте ардуинку, может в ней кварц неправильный
2. Так же это влияет на Демо режим №1 — появляются глюки в программах.
3. Не работает режим 103 #define IR_Key_Save_Mode, на мониторе команда проходит, а программа не сохраняется.
IR_Key_Save_Mode сохраняет только с какого режима запускать при старте
Проверил, работает
Обновил
(#define CHANGE_SPARK 1 // Эффект смены) от (#define GLITER_ON 0 // Включить блеск при запуске).
А то хочется что б запуск происходил с эффектом, но при этом не было блеска.
Обновил
1 можно отключить лог LOG_ON 0
2 отключить плавную смену эффектов CHANGE_ON 0
3 отключить работу с выбранными эффектами комментируем 4 можно отказаться от пультаIR_ON 0
Более сложно можно выкинуть не нужные эффекты
Что-то не так?
sketch\running_fire.h:6:127: warning: backslash and newline separated by space
#define PROG_RUN_FIRE 8, 8, 0b11100000, 0b01110000, 0b00111000, 0b00011100, 0b00001110, 0b00000111, 0b10000011, 0b11000001, \
In file included from D:\notamesh4\notamesh4.ino:160:0:
C:\Users\SERVER\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
# pragma message «FastLED version 3.003.002»
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from D:\notamesh4\notamesh4.ino:320:0:
sketch\running_fire.h: In function 'void running_fire()':
sketch\running_fire.h:11:36: warning: '__progmem__' attribute ignored [-Wattributes]
const PROGMEM uint8_t programm[]= { PROG_RUN_FIRE }; //массив программ
^
1 вариант переделать библиотеку FastLed (это к разработчику) найти строку вывода и продублировать на другой выход
2 вариант Создать Вторую копию массива LEDS (строка 357) с добавочным пином, но у вас памяти не хватит по второму варианту за подробностями к документации FastLed
проще подключите ко входу буферный элемент (транзистор или полевик или логический элемент или операционный усилитель) и подключите к нему светодиод
В библиотеке есть также ограничение на яркость это строки ну и чисто физически, если бок питания не тянет
uint8_t max_bright = 96;
и во вкладке «getirl.h»
меняю 35 строчку:
max_bright=min(max_bright*2,255);
на:
max_bright=min(max_bright*2,max_bright);
будет ли ограничиваться максимальная яркость при управлении с пульта?
Получается в этой строке max_bright всегда будет оставаться прежней т.к условие не выполняется
увеличиваться не будет, что соответствует будет ограничена
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 1 LEDs
Mode: 0
1001
Change palette off
DEMO MODE 3
---SETUP COMPLETE---
итак,, похоже не корректно читается еепром
Временное решение
в строке 367 поменяйте 1 на 0
я посмотрю код и исправлю скетч
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 450 LEDs
Mode: 100
1003
Change palette off
DEMO MODE 1
---SETUP COMPLETE---
Mode: 0
1160
Change palette off
End SetMode
Погоняю немного и отпишусь. Спасибо
Повторяю главный концепт этого проекта: максимальная экономия оперативной памяти.
IR_Key_Length_Garland_plus
IR_Key_Length_Garland_minus
и запоминаются в ЕЕПРОМ
самый последний вариант скетча 4, ссылка в обзоре? yadi.sk/d/effzA_UUCVSQAg?
Это так и должно быть.
Напоминаю: Библиотека FastLED во время передачи вырубает прерывания, а для работы пульта они обязательны. отсюда и проблемы с пультом. Я применил решение которое делает не срабатывание пульта менее 20%, что достаточно для работы и не обременительно.
Можете попробовать проект автора он за год тоже вставил работу пульта, можно попробовать его.
Еще раз напоминаю, я хотель выжать максимум, на что способен Нано, здесь идеть жесточайшая экономия памяти с максимальными возможностями. 300 светодиодов, огромное количество эффектов работа с пульта и кнопок
Исправлена ошибки переключение на больше 255 светодиодов и управление выбранных эффектов
проверяем
В 5 скетч, где будет что то подобное в виде матрицы добавлю
Эффекты примерно с 3:55
На окне уже второй год сетка. Подключил Ваш скетч к ней. Жду вечера, пойду на улицу смотреть как отыграет. Но боюсь ИК пульт не дотянется до 2 этажа и через улицу.
Спасибо.
ответ был посмотрю что там у гайвера, как будет время
Всем удачи в новом году, а мне время на развитие проекта.
Все вроде работает :) Считал все кнопки IRremote и прописал в скетч, при считывании кнопок иногда показывал просто цифры, или FFxxxx. (использую протокол NEC тот, что по умолчанию)
Но решил проверить пульт скетчем IRrecvDumpV2 (IRrecvDump писал то неизвестный, то NEC, то LG и т.п.), вот что выдало (чаще чем другое):
13:20:54.385 -> Encoding: NEC
13:20:54.385 -> Code: FF58A7 (32 bits)
13:20:54.419 -> Timing[67]:
13:20:54.419 -> +8900, -4450 + 550, — 600 + 550, — 550 + 550, — 550
13:20:54.519 -> + 550, — 550 + 550, — 600 + 500, — 600 + 550, — 550
13:20:54.586 -> + 550, — 550 + 550, -1700 + 550, -1650 + 550, -1700
13:20:54.657 -> + 500, -1700 + 550, -1650 + 600, -1650 + 550, -1650
13:20:54.733 -> + 600, -1650 + 550, — 550 + 550, -1700 + 550, — 550
13:20:54.800 -> + 550, -1650 + 550, -1700 + 550, — 550 + 550, — 550
13:20:54.900 -> + 550, — 600 + 500, -1700 + 550, — 600 + 500, -1700
13:20:54.967 -> + 550, — 550 + 550, — 550 + 550, -1700 + 500, -1700
13:20:55.033 -> + 550, -1700 + 550
13:20:55.033 -> unsigned int rawData[67] = {8900,4450, 550,600, 550,550, 550,550, 550,550, 550,600, 500,600, 550,550, 550,550, 550,1700, 550,1650, 550,1700, 500,1700, 550,1650, 600,1650, 550,1650, 600,1650, 550,550, 550,1700, 550,550, 550,1650, 550,1700, 550,550, 550,550, 550,600, 500,1700, 550,600, 500,1700, 550,550, 550,550, 550,1700, 500,1700, 550,1700, 550}; // NEC FF58A7
13:20:55.402 -> unsigned int data = 0xFF58A7;
Это можно как-то использовать для стабильности и точности работы пульта?
PS: вот еще интересное, вывод скетча IRremoteInfo:
13:28:57.068 -> IRremote Library Settings
13:28:57.068 -> =========================
13:28:57.068 -> RAWBUF: 101
13:28:57.068 -> Timer defined for use: Timer2
13:28:57.068 -> IR Tx Pin: 3
13:28:57.068 -> MCU Clock: 16000000
13:28:57.068 -> MCU Platform: ATmega328(P) / (Duemilanove, Diecimila, LilyPad, Mini, Micro, Fio, Nano, etc)
13:28:57.068 -> Mark Excess: 100 uSecs
13:28:57.104 -> Microseconds per tick: 50 uSecs
13:28:57.104 -> Measurement tolerance: 25%
13:28:57.104 -> Minimum Gap between IR Signals: 5000 uSecs
13:28:57.104 -> Arduino IDE version: 1.8.10
13:28:57.104 -> Debug Mode: OFF (Normal)
13:28:57.104 ->
13:28:57.104 -> IR PROTOCOLS SEND DECODE
13:28:57.104 -> ============= ======== ========
13:28:57.104 -> RC5: Enabled Enabled
13:28:57.104 -> RC6: Enabled Enabled
13:28:57.104 -> NEC: Enabled Enabled
13:28:57.104 -> SONY: Enabled Enabled
13:28:57.104 -> PANASONIC: Enabled Enabled
13:28:57.104 -> JVC: Enabled Enabled
13:28:57.137 -> SAMSUNG: Enabled Enabled
13:28:57.137 -> WHYNTER: Enabled Enabled
13:28:57.137 -> AIWA_RC_T501: Enabled Enabled
13:28:57.137 -> LG: Enabled Enabled
13:28:57.137 -> SANYO: Disabled Enabled
13:28:57.137 -> MITSUBISHI: Disabled Enabled
13:28:57.137 -> DISH: Enabled Disabled
13:28:57.137 -> SHARP: Enabled Disabled
13:28:57.137 -> DENON: Enabled Enabled
13:28:57.137 -> PRONTO: Enabled (Not Applicable)
по логом у вас пульт NEC
его и надо выбирать и это все по настройке, остальное там все настроено
я уже писал про стабильность работы пульта
И как удалить протоколы остальных пультов и все с ними связанное, чтобы места больше стало :)?
Ну если хотите удалить сами то они находятся тут C:\Arduino\libraries либо Мои документы\Arduino\libraries в папке IRremote тогда все вопросы к разработчику IRremote
Но я всегда не понимал один момент з пультом. Если я определю, что пульт у меня NEC, то достаточно включить соответствующую строку (поставить 1 ) и уже не надо считывать и записывать команды? Или всё-равно придётся считать коды для каждой кнопки и прописать их?
Значит если у вас пульт тоже SUPRA, то кодировать не надо, иначе придется.считывать.
В проекте команды пульта вынесены в отдельный файл и достаточно этот файл не затирать при каждом обновлении
Изменения для светодиодов больше 255.
Сам проверить не могу, пока не на чем.
Запустил последний вариант на 230 светодиодов с пультом и 15-ю кнопками одновременно. Памяти совсем не осталось. При этом пришлось отключить лог, свечи и MY_MODE. Как там Mega, еще не приехала? А то хотел еще прикрутить хотя бы 3-циферный дисплейчик для удобства пользования.
Мега не приехала, но ошибки найденные в теме Гувера, в моем скетче также исправлены. теперь должно работать на меге с большом количеством светодиодов
В честь этого события выкладываю новый скетч на 122 эффекта
Добавлен эффект бегущих огней
Проверяем… (у меня ардуинки нет сейчас до конца праздников)
Если выдает нехватку памяти на нано, отключайте что нибудь :)
Обновил
In file included from C:\Users\Alext\Desktop\Новая папка\notamesh4plus\notamesh4plus.ino:159:0:
C:\Users\Alext\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
# pragma message «FastLED version 3.003.002»
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Alext\Desktop\Новая папка\notamesh4plus\notamesh4plus.ino:326:0:
sketch\running_fire.h: In function 'void running_fire(uint8_t, uint8_t, uint8_t)':
sketch\running_fire.h:23:36: warning: '__progmem__' attribute ignored [-Wattributes]
const PROGMEM uint8_t programm[]= { PROG_RUN_FIRE }; //массив программ
^
Скетч использует 30666 байт (99%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1116 байт (54%) динамической памяти, оставляя 932 байт для локальных переменных. Максимум: 2048 байт.
Initial delay: 0ms delay.
Initial strand length: 230 LEDs
Mode: 0
1002
Change palette off
DEMO MODE 1
---SETUP COMPLETE---
Analog Key: 1023
Start SetMode
Mode: 1
120367
Change palette off
End SetMode
Command: 0xFFE01F
Previous mode
Mode: 0
147626
Change palette off
End SetMode
Command: 0xFFE01F
Previous mode
Mode: 122
170554
Change palette ON
End SetMode
Command: 0xFFE01F
Previous mode
Mode: 122
188375
Change palette ON
End SetMode
New Palette: 29
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 230 LEDs
Mode: 255
1002
Change palette off
DEMO MODE 1
---SETUP COMPLETE---
Mode: 0
1330
Change palette off
End SetMode
Command: 0xFFE01F
Previous mode
Mode: 122
18027
Change palette ON
End SetMode
Command: 0xFFE01F
Previous mode
Mode: 122
33019
Change palette ON
End SetMode
кнопку назад с пульта тоже подкорректировал
Скетч обновлен
Кстати эффекты бегущего огня можно добавлять. интересные шлем сюда я добавлю
Можно прикрепить удобный пульт на базе например iot mqtt panel с бесплатным брокером например cloudmqtt. Без проблем вносятся недостающие эффекты из данной темы.
Мне интересна нано, как синклер спектрум, из минимума сделать максимум
ссылка
default: if (mode>=42 && mode <122) {
uint8_t mode_x = mode — 42;
if(mc) {thisdelay=10;} running_fire(mode_x >> 3,(mode_x >> 1) % 3,mode_x % 1);
}
иначе я оставлю только 43, 45, 47 и 49
const PROGMEM uint8_t programm[]= { PROG_RUN_FIRE }; //массив программ
изменить на:
const uint8_t programm[]= { PROG_RUN_FIRE }; //массив программ
это не повлияет на работу скетча, а то при компиляции ругается на PROGMEM
In file included from C:\Users\Alext\Desktop\Новая папка (2)\notamesh4plus\notamesh4plus.ino:280:0:
sketch\running_fire.h: In function 'void running_fire(uint8_t, uint8_t, uint8_t)':
sketch\running_fire.h:23:36: warning: '__progmem__' attribute ignored [-Wattributes]
const PROGMEM uint8_t programm[]= { PROG_RUN_FIRE }; //массив программ
на работу не повлияет.
Обновил скетч 4+
Изменения мои: 170 диодов, и коды кнопок.
Включаю, смеша эффектов (то что по умолчанию), через минут 30, примерно, а может и меньше гирлянда зависает на белых огнях — вся светиться белым и все, на кнопки не реагирует. Только выключение и включение.
//const PROGMEM uint8_t programm[]= { PROG_RUN_FIRE }; //массив программ(закомментируйте эту строку)
void running_fire(uint8_t prog, uint8_t effect, uint8_t clear)
{ //Бегущая строка
//prog = номер программы
//effect = номер эффекта
const uint8_t programm[]= { PROG_RUN_FIRE }; //массив программ (вставьте эту строку только без
//аттрибута PROGMEM)
const uint16_t programm_count = sizeof( programm ); //размер программы
const uint8_t speed = 100; // скорость программы (1-255)
static uint8_t tek_prog = 255; // текущая программа
static uint8_t tek_effect = 255; // текущий эффект
static uint8_t tek_clear = 255; // текущий эффект очистки
static uint16_t tek_index_prog = 0; // текущий указатель на программу
static uint8_t tek_step = 0; // текущий шаг
static uint8_t tek_step2 = 0; // текущий шаг
по заключительному варианту plus, у меня пока все нормально, 100 светодиодов, работает два часа, пульт IR использую.
отрывок моего варианта настроек, перемешал в MY_MODE оригинальные эффекты с бегущими огнями, и указал MY_MODE режим при включении. мне кажется так интересней стало смотреться, по крайней мере на ёлочке
#define IR_ON 0 // Если равен 1 используется пульт
#define PIN_IR 2 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 150
#define BLACKSTART 1 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
#define GLITER_ON 1 // Включить блеск 0 — блеск отключен, 1- блеск включен
#define CANDLE_KOL 3 // если больше 0 то будут включена эмитация свечей
#define CANDLE_ON 0 // Если включена эмитация свечей то 1 = при запуске она будет включена
#define CANDLE_40 1 // Управление 40 эффектом (свечи) 1 = при запуске она будет включена по варианту efimova1969
#define BACKGR_ON 1 // Включить заполнение черного цвета фоном
#define DEMO_MODE 1
#define MY_MODE 0,1,2,4,5,9,10,11,14,16,17,18,19, \
21, 22, 28, 30, 32, 34, 36, 37, 38
#define DEMO_TIME 60 // Время отображение эффекта в демо режиме в секундах
#define CHANGE_ON 1 // Включить плавную смену эффектов
#define CHANGE_SPARK 1 // Эффект смены 0 — без эффекта, 1 — искры (бенгальский огонь) 2 — яркий свет
#define CHANGE_TIME 7 // Время в секундах, за которое произойдет плавная смена эффектов
#define DIRECT_TIME 20 // Через сколько секунд менять направление если 0 — не меняем
#define PALETTE_TIME 10 // Через сколько секунд менять палитру если 0 — не меняем
#define LOG_ON 0
Не зависает, а проходит какое то количество эффектов, потом заливается белым и меняется белый на белое и так раз 15-20 потом, эффекты продолжаются.
Обновляемся.
Теперь есть переменная раньше она была равна 200 теперь 100, если будет зависать делаем 50
Но чем больше это число, тем целостнее изображение 22 и 37 режимах
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 230 LEDs
Mode: 255
1002
Change palette off
DEMO MODE 1
---SETUP COMPLETE---
Analog Key: 1022
Mode: 0
1335
Change palette off
End SetMode
Command: 0xFFD827
Command: 0xFFD827
Mode: 44
14644
Change palette ON
End SetMode
Command: 0xFF827D
Candle 1
Command: 0xFF827D
Candle 0
Command: 0xFF827D
Candle 1 Висим
Иногда сразу:
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 230 LEDs
Mode: 255
1002
Change palette off
DEMO MODE 1
---SETUP COMPLETE---
Analog Key: 1023
Mode: 0
1335
Change palette off
End SetMode
Start SetMode
Mode: 1
60305
Change palette off
End SetMode
Start SetMode
Mode: 2
120286
Change palette ON
Command: 0xFF827D
Candle 1 Висим
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 230 LEDs
Mode: 255
1002
Change palette off
DEMO MODE 1
---SETUP COMPLETE---
Analog Key: 1023
Mode: 0
1335
Change palette off
End SetMode
Command: 0xFF827D
Candl⸮⸮u
Command: 0xFF827D
Candle 0
Command: 0xFF827D
Candle 1
Command: 0xB2AD722A //и погнали:
Command: 0x436⸮⸮lF4
Command: 0x56CCE8C
Command: 0xD97B1161
Command: 0x2B22066A
Command: 0xCF053A8B
Command: 0x1BAD6EE3
Command: 0x55BAD5E5
Command: 0x8D1B01A6
Command: 0xD9523B66
Command: 0x35C6388F
Command: 0x308454⸮⸮⸮
Command: 0xE99D42F4
Command: 0xFF23FE60
Command: 0x86CECF5
Command: 0x4249D4C1 //это не я, это оно само
Command: 0xCF15C904
Command: 0x9FEE0108
Command: 0xB3F⸮⸮8F4
Command: 0x601809E6
Command: 0xD6732890
Command: 0xFA8681A2
⸮Command: 0xC6224A9B
Command: 0x257EEC80
Command: 0xD00D79C1
Command: 0x8FF13497
Command: 0xAF7D02A2
Command: 0x2A99015
Command: 0xB5312⸮??
Command: 0xAC5B566D
Command: 0x78A85AD4
Command: 0xF2811D75
Command: 0xC0CF7297
Command: 0x55BAD5E5
Command: 0xAA17C69F
Command: 0x6D8B6371
Command: 0x6961F91F
Command: 0x77163C89
Command: 0xE5EC476⸮⸮0Command: 0x2B49F1F3
Command: 0x23B6F151
Command: 0x503CFFB7
Command: 0x8DB8AD05
Command: 0x43D752BC
Command: 0xA71FC041
Command: 0x289⸮y95B
Command: 0x920D13D3
Command: 0x762F67D
Command: 0x487B804E
Command: 0x3C318647
Command: 0xF1352F55
Command: 0x66B3C49A
Command: 0x2D1A0057
Command: 0x80ED3487
Command: 0x2DD50602
Command: 0xC0AFE⸮⸮⸮
Command: 0x835E9ECD
Command: 0x26945D7D
Command: 0x6E804DDF
Command: 0x8EE00E6B
Command: 0x1EAFB824
Command: 0x27571C6
Command: 0x6D1⸮1079
Command: 0xE90E6B1D
Command: 0x2EB05FDA
Command: 0x68FF3761⸮⸮Command: 0xF861E6FF
Command: 0x6C61AD0B
Command: 0x331DCD9F
Command: 0x65B9A6C
Command: 0xAD33F01C
Command: 0xBA90F6DA
Command: 0x1268⸮⸮⸮3
Command: 0x512CBA9
Command: 0xFEB84C32 //и т.д.
Ну или, что чаще, просто виснет.
зависаний не вижу
а библиотека пульта работает на прерываниях, ей зависания не помеха
#define IR_ON 1 // Если равен 1 используется пульт
#define PIN_IR 53 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 231 // Максимальное количество светодиодов при работе с
— #define IR_NEC 1 // пульт NEC,
—
#define IR_REPEAT 1 //Включить повтор, при долгом нажании на кнопку пульта будет повтор
#define KEY_ON 1 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define PIN_KEY A3 // Номер пина, куда подключены кнопки
— #define KEY_DELTA 7 // погрешность значения кнопки, тоесть от -KEY_DELTA до
#define COLOR_ORDER GRB //Очередность цвета светодиодов RGB или GRB
#define CHIPSET WS2812B //Тип микросхемы светодиодов в гирлянде
#define LED_DT 54 // Номер пина куда подключена гирлянда
//#define LED_CK 11 // Номер пина для подключения тактов, применяется для светодиодов
#define POWER_V 5 // напряжение блока питания в Вольтах
#define POWER_I 25000 // Ток блока питания в милиАмперах
#define BLACKSTART 1 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1-
#define GLITER_ON 1 // Включить блеск 0 — блеск отключен, 1- блеск включен
#define CANDLE_KOL 20 // если больше 0 то будут включена эмитация свечей
#define CANDLE_ON 0 // Если включена эмитация свечей то 1 = при запуске она будет
#define CANDLE_40 1 // Управление 40 эффектом (свечи) 1 = при запуске она будет
#define BACKGR_ON 1 // Включить заполнение черного цвета фоном
#define DEMO_MODE 1 // Режим при включении
#define MY_MODE 0,1,2,4,5,9,10,11,14,16,17,18,19, \
21, 22, 28, 30, 32, 34, 36, 37, 38
#define DEMO_TIME 60 // Время отображение эффекта в демо режиме в секундах
#define CHANGE_ON 1 // Включить плавную смену эффектов
#define CHANGE_SPARK 4 // Эффект смены 0 — без эффекта, 1 — искры (бенгальский огонь) 2 —
#define CHANGE_TIME 7 // Время в секундах, за которое произойдет плавная смена эффектов
#define DIRECT_TIME 20 // Через сколько секунд менять направление если 0 — не меняем
#define PALETTE_TIME 30 // Через сколько секунд менять палитру если 0 — не меняем
#define LOG_ON 1 // Включить лог 1 — включить лог
Фотоприемник 38 кГц, как и пульт. Помех не ловит, что подтверждается монитором порта и осциллографом. Выбран из 5 типов разных. Остальные же команды обрабатываются корректно.
В том логе, что выше, это не с фотоприемника такой мусор лезет, это ардуина виснет и вот это вот все в порт выдает.
Завтра еще попробую переназначить кнопку на пульте. Может ей не нравится именно эта команда, которая сейчас?
"#define PIN_IR 53 // Номер пина, куда подключен датчик пульта,"
может из-за этого у вас глюки?
а пины это дело ардуины, значит на его плате есть
#define POWER_I 2000 // Ток блока питания в милиАмперах
Зависало на 22 и 37 эффектах, исправил. обновляемся
К Mege подключено 960 светодиодов, без пульта (4+). Всё вроде работает кроме первого эффекта, цветная волна бегает примерно до первых 250 диодов. Можно как то поправить?
Подтверждаю, как бы волна до 255 светодиода, остальные однотонно закрашиваются.
Пока разборку отложу но исправлю позже.
А у вас как ощущение от цветов, нет такого, что много пурпура и фиолета?
В проекте что мне дали ссылку, палитры одинаковые как у меня, у меня даже на одну больше (bhw1_28_g)
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 230 LEDs
Mode: 255
1002
Change palette off
DEMO MODE 1
---SETUP COMPLETE---
Start SetMode
Start SetMode
Start SetMode и т.д.
Настройки те же, что я приводил 10 января 2020, 01:14. Заработал только когда уменьшил KOL_LED до 100 (можно 200 или 300, но не, к примеру, 230, 96 или 158). Теперь можно с пульта изменить ленту до любых размеров, будет работать до выключения питания. При этом CHANGE_TIME применяется только к каждым 100 светодиодам. Т.е. за 7 (ну или сколько там себе сделал) секунд идет смена эффекта для первых 100, за следующих 7 сек. для следующих. и т.д. Теперь не имеет значения какова длина гирлянды. Если она не кратна 100, то все равно после включения будет фон с блеском.
И попутно вопрос с записью KOL_LED в ЕЕПРОМ при прошивке. Почему длину гирлянды можно изменить только с пульта?
Длину гирлянды можно менять если есть пульт то командами IR_Key_Length_Garland_plus и IR_Key_Length_Garland_minus
иначе за длину отвечает Кнопки исключены связи с тем, что кнопок мало.
Кнопки я как раз нужные дорисовал, но я не это хотел узнать. Почему когда загружаю скетч, в котором прописано, пусть будет, #define KOL_LED 230, а до этого я с пульта настроил длину 99 светодиодов, то эти же 99 и остаются? Т.е. будет
---SETTING UP---
Initial delay: 0ms delay.
Initial strand length: 99 LEDs
а не
Initial strand length: 230 LEDs
С цифрой 2 и 0 эта длина при инициации будет уже приоритетна.
Если строка 375 не менялась (#if IR_ON == 1)
Логика такая: Если включен пульт, то длинна берется из еепром
если пульт не включен то длинна берется из переменной KOL_LED
Если поменяли в строке 375 один на 2, то длинна берется из переменной KOL_LED
Если поменяли в строке 375 один на 0, то Если включен пульт, то длинна берется из переменной KOL_LED,
если пульт не включен то длинна берется из еепром
drive.google.com/file/d/1qtCalhcOkO7aj11fMmWKFhY6fzMwftrr/view?usp=drivesdk
Я рассчитывал, что гирлянда должна на елке быть не меньше 10 витков, тогда хоть видно что огонь.
При установке настройки «Включить плавную смену эффектов» в 0. Выдаёт ошибку. Версия 4. Но возможно пофиксили, качал до НГ.
PS (подскажите как прятать под спойлер? вроде выбираю его, но когда сообщение опубликовано, спойлер не открывается).
Выключаю «Включить плавную смену эффектов» выстави 0.
Ошибка
значит в этой версии светодиоды светят чаще на полную мощность.
Я могу следить косвенно по нагреву блока питания. Нагрев не поменялся.
Могу рекомендовать 2 варианта
Либо в строке 98 уменьшить ток до 500 (ну или 1000) Либо уменьшить яркость в стоке 218 поставить 150
в строках с 42 по 46 поменять 5 на 10 или 20 либо просто между плюсом и минусом поставить сопротивление 100-200 ом (только оно будет греться)
yadi.sk/d/vfXTlhrgXgpZfQ
#define GLITER_ON 1
…
#ifdef GLITER_ON
Разумеется
#define GLITER_ON 0
в таком варианте мерцание не отключает.
У себя поправил.
На Гитхабе не обитаете?
Пока не обитаю
Также часть эффектов не использует палитру, исключите их в выбранных эффектах
1 установить режим 0
2 установить нужный цвет строка 427 (для примера цвет белый)
3 отключить плавную смену эффектов (если последний пункт хочется оставить тогда в 430 строке менять на строку
Не подскажете что сделал не так. Сам не могу разобраться.Скетч 4 -ой версии
Без фрагмента вашего commands.h могу только предполагать
notamesh4 работает нормально.
Судя по всему Arduino-IRremote под ESP работать не будет. Попытка подменить приводит к множественным ошибкам, типа:
Помогите допилить ваш скетч под ESP или ткните носом, если уже обсуждалось.
Это мой первый опыт с дуинами. Сорри, если туплю.
Т.к. я на этот проект выделяю только крупицы свободного времени. мне хотелось их применить в рост в высоту (доделать 5 версию скетча), а на рост в шир (переход на другие платформы) на STM32L1 переведен, на остальные планируется, но вот когда это произойдет, это вопрос вопросов.
PS: и мое мнение, пока это AVR (8 битный контроллер) это проект — хобби (без коммерческой составляющей, хотя уже находятся люди которые получают прибыль с него), при переносе на 32 битную платформу начнутся копии копий…
Идеальным было бы управление/настройка через браузер (или даже) через смартфон. Обновление по воздуху (OTA), также много удобнее, плясок с ноутом под елкой. Не хватает, имхо, функции будильника (нехай сама утром и вечером включается и перед сном выключается).
Все это и многое другое реализовать на уно/нано практически невозможно. Да и смысл за них держаться, если тот же esp, при тех же размерах и схожей цене предлагает куда больше возможностей. Да и просто развязать себе руки, перестав выкраивать каждый байт из 30кб — уже повод сменить платформу.
Все вышесказанное сугубо моё имхо и хотелки. Вам же респект за труд и поддержку. С уважением!
лишние эффекты убрать и очередность можно установить «выбранные эффекты»
В 5 скетче можно будет удалять эффекты их прошивки
Управление да возможно удобнее, но это в планах,(уже куплено и лежат на попробовать ESP-12e и ESP32 и ждут своего времени)
Но есть люди у которых нана на 168 меге, и просят… и заррработал скетч
В notamesh4plus.ino
В getirl.h
для ESP8266
У кого есть сабж на руках — проверьте/покритикуйте. У меня платы нет. Опыта тоже:)
Ну не все так печально. Я поглядываю иногда и коплю железки и светики ;)
«У кого есть сабж на руках»
Было пару штук, но использовал.
Сегодня по случаю попалась в магазине, как чувствовал взял.
Только мне пульт и на… не нужен. Интересней чарез ВайВай. И надо гирлянды подлатать — китаец коцанные прислал.
На днях попробую выделить время :)
Получается, без пульта ни как.
Просьба откликнуться тем кто делал с кнопками.Не совсем понимаю, вернее совсем не понимаю:) В скетче описываются 10 кнопок
(четвертый плюс) на схеме выше 5 или 6 кнопок. Хотелось бы уточнить схему на 10 кнопок и описание что переключает каждая кнопка
схема кнопок без пульта (мы про это говорим?)
Кнопок можно ставить много ограничено только разрешением АЦП теоретические 20 шт не проблема, по аналогии делаем по нижней схеме, сопротивления можно уменьшать.
настройка такая:
Включаем лог ( если нехватка памяти, уменьшить кол-во светодиодов)
и по логу смотреть какой код приходит по нажатию каждой клавиши и записать их в скетч, главное чтобы код был уникальным.
далее открываем файл commands.h
и в нем прописываем команды назначаемые на ваши кнопки следующим образом (для примера)
было: как надо сделать: то есть меняем коды вида 0xff6a95 на коды вида KEY_Х не используемые коды можно оставить как есть либо заменить на 0
например так
Собрал гирлянду — почти все работает.Огромное спасибо за эту красоту!
Вот только хотелось-бы управлять этой красотой.
Не получается подключить пульт. При работе с библиотеками IRremote на мониторе ероглифы не понять ничего.
Использовал IRtest_2.0 и другой скеч найденый в интернете — каждый выдает свой код.
Результат один — дирлянда не управляется.
Использую Ваш скеч 4+
Что изменено — кол-во светодиодов 200, коды кнопок от своего пульта и все
При включении гирлянда запускается в демо режиме на пульт нет реакции
что интересно — Ваш скеч 4+ без изменений при запуске — демо режим
А должен с черного экрана
Может что-то в настройках нужно еще поменять кроме своих кнопок и кол-во светодиодов?
Мои кнопки 8-ми значные пульт LG и другой
Буду очень признателен
Гирлянда получилась метров 10 для теста намотал на прозрачной бутыле из под воды (15л.)
В демо режиме внуки и я в востоге. Внуки уже представляют какя у них будет класная ёлка
Еще-бы управлять этой красотой
Заранее спасибо!
Начнем по порядку
1) проверить удалена библиотека RobotIRremote (смотреть в меню Arduino / libraries / RobotIRremote) если нет, удаляем
2) проверяем работу пульта: загружаем пример из библиотеки IRremote с названием IRrecvDemo и смотрим в мониторе коды клавиш, главное чтобы они повторялись, если выводится не понятное, то проверяйте подключение датчика, если он в железном корпусе то необходимо на корпус посадить минус. У кого то был просто не исправный датчик, или не на ту частоту был рассчитан и отличался от частоты несущей пульта
Как вариант пробуйте пультом от телевизора потыкать для проверки датчика.
С IRrecvDemo разобрался все работает чётко коды печатаются ясно
только они у меня 8-ми значные и от телека тоже
У меня почему-то не включается на пульт
По описанию при включении должен дыть черный экран то-биш ничего не светится а пультом уже включаеш чего хочется
А у меня при включении сразу демо идет и на тульп нет реакции хтя коды пульта установленыи и в настройках
пульт установлен. Получается так, что программа не включается для работы с пульта по каким-то причинам
Значит в настройках еще что-то надо установить
Что я делаю — меняю кол-во светодиодов (своё 200) и коды своего пульпа и все
может нужно что-то ещё?
Спасибо!
Отлично, пол дела сделано.
Теперь надо запомнить коды с пульта (пусть будут восмизначные)
Запускаем еще раз IRrecvDemo, нажимаем желаемую кнопку пульта и запоминаем код,
Так делаем со всеми кнопками пульта, которые будут использоваться в программе
Теперь открываем файл commands.h. там будут строчки вида Меняем восмизначные числа на свои запомненные.
То есть если ваши желаемые коды пульта для этих команд 0xAA8C2FB8 и 0xBB8C2FB8 то эти строчки будут такими по аналогии делаем и с остальными кодами
Не используемые команды в этом файле можно оставить как есть, либо восмизначные числа заменить нулем
Также надо поставить правильно 1 в типе пульта, опять же берется из IRrecvDemo
Максимальное количество светодиодов выставляете какое вам надо
Все, должно работать
Все что Вы написали выше — все проделано в точности
только имя пульта не проверял по IRrecvDump но на самом пульте написано что он LG
и в настройках установлено LG стоит 1
Сам не пойму почему " лыжи не едут "
Первоначально ардуинка была прошита на DEMO
#define IR_ON 1 // Если равен 1 используется пульт (был установлен 0 после установки кода вернул на 1)
для теста потом нашел пульт перепрошил ардуинку
для получения кода. Запомнил код в подменю commands.h. вставил свой код снова прошил — при запуске DEMO
Вы мне скажите когда у Вас если работает с пульта при запуске (подачи питания) черный экран (ничего не светит)?
или запускается с эффекта?
Будет понятней где копать
В программе все установлено по Вашей копии только кол-во светодиодов моё — 200
Спасибо!
Я скопировал код настройки сюда:
DEMO_MODE задает режим при включении 1 включает перебор эффектов, если стоит 0 то запустится последний эффект, который запомнен с пульта и переключение автоматически не будет
В том — то и дело стоит 1 в строке
#define BLACKSTART 1 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
а запускается с эффекта и далее DEMO причем при каждом включении запускается с одного и того-же эффекта на пульт не реагирует
Попробую снести arduino-1.8.13-windows и установить заново и перепрошиться заново
Может дело в библиотеках IRremote
На момент написания скетча какую версию IRremote Вы применили — IRremote-2.2.3.zip
IRremote-2.0.1.zip
IRremote-1.0.0.zip
Потому что при переустановке arduino-1.8.13 и установке библиотеки IRremote-2.5.0 (последняя)
и при компиляции выскочила ошибка на IRremote поко я не добавил версии 2.2.3 и 2.0.1.
Я скачал свежую 2.6.0, постараюсь переделать а пока ставьте ту что скинул
Огромное спасибо что тратите на меня своё время
Установил Вашу библиотеку ничего не изменилось
Прошил Ваш скеч 4+ без каких либо изменений при включении DEMO режим
Такое мнение что программа не подключает пульт и вообще не слушается
В настройках указано начинать с черного экрана а она включает DEMO и не включает пульт
прошил другую ардуинку — результат тот же DEMO
Сделайте так, у далите файл IRremote.h и будет вам счастье, минус этого всего вырастет размер прошивки
После этого должна работать любая версия IRremote
Я не программист. Если я удалю IRremote.h из скеч 4+ то выскочит ошибка и ничего не прошьётся
или IRremote.h надо удалять в другом месте.
Я думаю копать надо здесь — почему не включается на черный экран а потом IRremote.h
И еще может это влияет при прошивке ругается на FAST LED в программе версия 3.3.3 ( последняя)
а в скетче более ранняя
После прошивки ( скеч 4+) и включении монитора и установки скорости 57600
монитор высвечивает код кнопки и её действие — значит программа пульт видит
А когда подключиш гирлянду и блок питания — включается демо и нет реакции на пульт
Блок питания 5в-3а при работе гирлянды 5 вольт не просаживается
dmitrybik от всей души благодарен за вашу помощь и оперативность
Тысяча извинений за отобранное Ваше время, респект и уважение за программу
ТЕМА СНЯТА
Пульт работает и работал сразу. Только на кнопку нужно нажимать от 10 до раз так 25 — 30
Все включается и переключается! Я доволен.
Спасибо Вам за красоту такую! Творческих успехов и здоровья!
Будем рады новым Вашим деяниям!
18:16:11.020 -> Initial delay: 0ms delay.
18:16:11.020 -> Initial strand length: 100 LEDs
18:16:11.067 -> Mode: 255
18:16:11.067 -> 1001
18:16:11.067 -> Change palette off
18:16:11.067 -> DEMO MODE 1
18:16:11.067 -> ---SETUP COMPLETE---
18:16:13.568 -> End SetMode
18:17:09.287 -> Start SetMode
18:17:11.753 -> End SetMode
18:18:08.441 -> Start SetMode
18:18:10.976 -> End SetMode
18:19:07.873 -> Start SetMode
18:19:10.449 -> End SetMode
18:20:07.257 -> Start SetMode
18:20:09.876 -> End SetMode
18:21:06.730 -> Start SetMode
18:21:09.292 -> End SetMode
18:22:18.061 -> Initial delay: 0ms delay.
18:22:18.061 -> Initial strand length: 101 LEDs
18:22:18.094 -> Mode: 255
18:22:18.094 -> 1001
18:22:18.094 -> Change palette off
18:22:18.094 -> DEMO MODE 1
18:22:18.094 -> ---SETUP COMPLETE---
18:22:18.529 -> Mode: 0
18:22:18.529 -> 1467
18:22:18.529 -> Change palette off
18:22:23.075 -> End SetMode
18:23:16.172 -> Start SetMode
18:23:16.571 -> Mode: 1
18:23:16.571 -> 60409
18:23:16.571 -> Change palette off
18:23:21.147 -> End SetMode
18:24:15.315 -> Start SetMode
18:24:15.716 -> Mode: 2
18:24:15.716 -> 120411
18:24:15.716 -> Change palette ON
18:24:20.394 -> End SetMode
18:24:35.103 -> New Palette: 18
18:24:54.884 -> New Palette: 19
18:25:14.713 -> Start SetMode
18:25:14.713 -> New Palette: 23
18:25:15.115 -> Mode: 3
18:25:15.115 -> 180426
18:25:15.115 -> Change palette ON
18:25:19.830 -> End SetMode
18:25:34.447 -> New Palette: 24
18:25:54.229 -> New Palette: 25
18:26:14.006 -> Start SetMode
18:26:14.006 -> New Palette: 12
18:26:14.407 -> Mode: 4
18:26:14.407 -> 240422
18:26:14.407 -> Change palette ON
18:26:19.102 -> End SetMode
//////////////////////////////////////// Параметры пульта
////
//Настройка действия кнопке осуществляется в файле command.h
#define IR_ON 0 // Если равен 1 используется пульт
// если не равен 1 пульт не используется, работает в демо режиме
#define PIN_IR 8 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 231 // Максимальное количество светодиодов при работе с пультом должно быть больше
// или равно KOL_LED
// От размера этого числа зависит колличество используемой памяти
//Тип пульта на который будет реагировать устройство, ставим 1 у того который используется
//это уменьшит используемую память
//Чтобы узнать имя пульта запустите в примерах IRremote / IRrecvDump
#define IR_RC5 0 // пульт RC5,
#define IR_RC6 0 // пульт RC6,
#define IR_NEC 0 // пульт NEC,
#define IR_SONY 0 // пульт SONY,
#define IR_PANASONIC 0 // пульт PANASONIC,
#define IR_JVC 0 // пульт JVC,
#define IR_SAMSUNG 0 // пульт SAMSUNG,
#define IR_WHYNTER 0 // пульт WHYNTER,
#define IR_AIWA 0 // пульт AIWA_RC_T501,
#define IR_LG 0 // пульт LG,
#define IR_SANYO 0 // пульт SANYO,
#define IR_MITSUBISHI 0 // пульт MITSUBISHI,
#define IR_DENON 0 // пульт DENON
#define IR_REPEAT 0 //Включить повтор, при долгом нажании на кнопку пульта будет повтор клавиши
//////////////////////////////////////// Параметры кнопок
////
//Настройка действия кнопке осуществляется в файле command.h
#define KEY_ON 0 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define PIN_KEY A3 // Номер пина, куда подключены кнопки
//Зачения смотреть в протоколе после строки Analog Key
#define KEY_0 10 // Значение соответствующее нажатой 0 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_1 70 // Значение соответствующее нажатой 1 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_2 140 // Значение соответствующее нажатой 2 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_3 280 // Значение соответствующее нажатой 3 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_4 360 // Значение соответствующее нажатой 4 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_5 520 // Значение соответствующее нажатой 5 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_6 700 // Значение соответствующее нажатой 6 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_7 900 // Значение соответствующее нажатой 7 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_DELTA 5 // погрешность значения кнопки, тоесть от -KEY_DELTA до +KEY_DELTA
//////////////////////////////////////// Параметры гирлянды
////
#define COLOR_ORDER GRB //Очередность цвета светодиодов RGB или GRB
#define CHIPSET WS2812B //Тип микросхемы светодиодов в гирлянде
#define LED_DT 6 // Номер пина куда подключена гирлянда
//#define LED_CK 11 // Номер пина для подключения тактов, применяется для светодиодов WS2801 или APA102
//ЕСЛИ НЕ ИСПОЛЬЗУЕТСЯ ЗАКОМЕНТИРОВАТЬ
#define POWER_V 5 // напряжение блока питания в Вольтах
#define POWER_I 3000 // Ток блока питания в милиАмперах
//////////////////////////////////////// Параметры программы
////
#define BLACKSTART 1 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
#define GLITER_ON 1 // Включить блеск 0 — блеск отключен, 1- блеск включен
#define CANDLE_KOL 10 // если больше 0 то будут включена эмитация свечей
// число задает через какое расстояние друг от друга располагать свечи
#define CANDLE_ON 0 // Если включена эмитация свечей то 1 = при запуске она будет включена
// 0 = при запуске она будет выключена
#define CANDLE_40 1 // Управление 40 эффектом (свечи) 1 = при запуске она будет включена по варианту efimova1969
// иначе при запуске она будет включена по моему варианту
#define BACKGR_ON 0 // Включить заполнение черного цвета фоном
#define DEMO_MODE 1 // Режим при включении
// 0 — последняя запущенная программа
// 1 — демо режим с последовательным перебором эффектов
// 2 — демо режим с случайным перебором эффектов
// 3 — демо режим с последовательным перебором выбранных эффектов
// 4 — демо режим с случайным перебором выбранных эффектов
#define MY_MODE 0,1,2,4,5,9,10,11,14,16,17,18,19, \
21, 22, 28, 30, 32, 34, 36, 37, 38
//Выбранные эффекты пишутся номера через запятую,
// можно писать и одинаковые что актуально в демо 3
// Если закоментировать, то демо 3 и 4 отключаются
#define DEMO_TIME 60 // Время отображение эффекта в демо режиме в секундах
#define CHANGE_ON 1 // Включить плавную смену эффектов
#define CHANGE_SPARK 4 // Эффект смены 0 — без эффекта, 1 — искры (бенгальский огонь) 2 — яркий свет
// 3 — метеорит, 4 — случайный эффект (из 1-3)
#define CHANGE_TIME 5 // Время в секундах, за которое произойдет плавная смена эффектов
#define DIRECT_TIME 30 // Через сколько секунд менять направление если 0 — не меняем
#define PALETTE_TIME 20 // Через сколько секунд менять палитру если 0 — не меняем
#define DEV_NOISE16 100 // если Зависает на 22 и 37 режимах, то уменьшаем число
#define RUNNING_FIRE 1 // Включить эффекты бегущего огня
#define LOG_ON 1 // Включить лог 1 — включить лог
Осмелюсь спросить о пятой версии скетча.
Мы увидим его в этом году? Очень ждем.
Удачи и здоровья!
Пятая версия в корне отличается от прошлых версий, тут будет переход от одномерного массива на двухмерный (на 2D), то есть все эффекты будут другие,
За основу должна быть положена концепция, что если елку намотать гирляндой, то получится конус, и можно исходя из количества светодиодов в низу и количества оборотов вычислить примерное расположение каждого светодиода в виде развертки. конуса.
Много математики, мало свободного времени.
Не каждый захочет гирлянду на елку накручивать по конусу, есть и другие варианты.
На данный момент идет разработка коммерческой версии 2D елки, на ней отработаю эффекты и можно будет говорить о выходе 5 версии для всех,
Както так.
P.S. ваш проект есть ещё где-нибудь для отслеживания новых версий?
У самого дома елка больше двух метров, нижние ветки диаметром 1,5 метра, темно-зеленая, 150 светодиодов было достаточно. Не забудьте через каждые 100 светодиодов подключать питание.
Внучка вместо телевизора залипала на елке.
На работе елку я даже не разбирал, стоит для тестов.
Скетч 4 уже самодостаточный для елки.
Т.к. основная задача прокормить семью, гирляндами занимаюсь в свободное время.
Разработка управления матрицей тоже идет (2D) На данный момент дома на окне стоит сторонняя разработка, видео окна
Проект пока тут, думаю выложить все проекты с гирляндами на своем сайте, ссылку кину сюда как выложу
Сейчас делаю свой такой же но на другой базе
Этот провод прозрачный и не мешает смотреть через окно.
Экспериментально проверено, с китайскими проводами питание подключать через каждые 100 светодиодов
Я кстати всегда яркость убавляю, а то ночью «вырви глаз», на соседнем доме отсвечивает
если есть возможность я бы сверху питание тоже бы соединил воедино, в линию,
можно туда на верх питание не подводить
Правильно ли я понимаю, что можно мне упросить, кинуть провод мгтф 0,35 на питание (если найду такой), сделать его змейкой. Но через 6 столбиков (96светиков), подсвети ещё одно питание из того же 0,35мм? и потом ещё через 6 столбов подвести.
А не делать как у меня сейчас, что к каждому столбику своё питание подходит от общей «толстой» шины?
Низ 0,35, между лентами 0,14
Платформа по видимому будет другая. Все это изобилие на Nano не влезет.
Я думаю что 90% гирлянду мотают конусом. А это получается главным условием 5 скечча.
Очень интересо. Будем ждать. В этой теме его можно будет найти?
Успехов и здоровья!
4 плюс закрыт для скачивания
Я в Arduino новичок.
Куплено на AliExpress: Модуль NANO на ATMega328, гирлянда WS2812B 4х50=200светодиодов.
По Вашему примеру каждый светодиод закатал в прозрачную термоусадку.
Предистория:
В апреле:
скачал скетч 4+, библиотеки FastLED и Irremote. Установил. Собрал. Скомпилировал, не сразу (так как я новичок), но заработало! Понравилось!
Захотел управлять с пульта. Не проходила проверка Ошибка: отсутствие IRremoteInt. Долго искал, но нашел. Проверил, скомпилировал, пульт заработал, но на одну кнопку пульта на мониторе выскакивало много разных кодов. Выбрал те, которые наиболее часто повторялись. Но гирлянда на пульт или не реагировала, или реагировала с большим опозданием или выдавала не то, что я программировал.
В октябре:
Чтоб заработал пульт, принял решение скачать последнии версии скетч 4+, и библиотеки.
Во время скачивания Ардуино предложил мне обновить и другие библиотеки. Новое должно было быть лучше старого.
Но:
1. Слетели предыдущие библиотеки. (Установил новые и cкетч)
2. В гирлянде появились белые моргающие светодиоды (один и тотже), которые жили своей жизнью и не зависили от эффектов (на всех эффектах не исследовал).
3. Когда ставил 1 на пульт, то при проверке и компеляции появлялась надпись:
4. «Ошибка компиляции для платы Arduino Nano» и «Не используется: C:\Users\Igor\Documents\Arduino\libraries\FastLed-3.2.9» Когда я повторно хотел проверить, то вконце вместо 9 появился 0 FastLed-3.2.0
5. Пульт не видит.
Что посоветуете?
Я в ступоре и не знаю, что дальше делать???
За два года разработчик IRremote внес изменения в свою библиотеку, теперь она стала не совместима
Как временное решение устанавливаем версии библиотек проверенные FastLED и IRremote Будет время постараюсь адаптировать
Спасибо за Ваше внимание к людям!
Спасибо, что дарите радость людям!
Спасибо, что дарите красоту, праздничное настроение на протяжении всего года!
Спасибо что стараетесь помочь всем, кто нуждается в Вашей помощи!
Спасибо за Ваше терпение, независимо от знаний, подготовки, образования Ваших собеседников!
Счастья и здоровья Вам и Вашим близким!
По поводу нерабочих библиотек IRremote, при компиляции не хватает двух файлов
IRremoteInt.h
IRremoteBoardDefs.h
Они перенесены в папку private, в папке с исходниками.
Простое копирование этих файлов в папку с исходниками, достаточно для компиляции и работы, или добавить путь до файлов.
Обновил библиотеки, но не могу удалить «RobotIRremote».
В «Arduino / libraries / RobotIRremote» его не видно, однако в списке (там, где устанавливают библиотеки) Arduino IDE он есть.
У меня некорректно работает пульт.
Возможно это из-за RobotIRremot.
Где он «Спрятался»?
Помогите, пожалуйста, пошагово удалить «RobotIRremote».
Спасибо.
Добавил в ваш проект Светодиодный LED дисплей на базе драйвера TM1637, чтобы видеть номер текущего эффекта.
Может кому пригодится. Библиотеку взял у Гайвера, вот, что вставил:
…
uint8_t Protocol = 0; // Temporary variables to save latest IR input
uint32_t Command = 0;
// Вывод номера режима — #define CLK 2
#define DIO 3
#include «GyverTM1637.h»
GyverTM1637 disp(CLK, DIO);
// Общие переменные — uint8_t allfreq = 32; // Меняет частоту. Переменная для эффектов one_sin_pal и two_sin.
uint8_t bgclr = 0; // Общий цвет фона. Переменная для эффектов matrix_pal и one_sin_pal.
uint8_t bgbri = 0; // Общая фоновая яркость. Переменная для эффектов matrix_pal и one_sin_pal.
bool glitter = GLITER_ON; // Флаг включения блеска
bool background = BACKGR_ON; // Флаг включения заполнения фона
…
…
if (StepMode>=NUM_LEDS)
{ ledMode = newMode;
StepMode = MAX_LEDS;
disp.displayByte(0, _P); // 0 ячейка, буква P
#if LOG_ON == 1
Serial.println(F(«End SetMode»));
#endif
}
nblendPaletteTowardPalette(gCurrentPalette, gTargetPalette, NUM_LEDS);
…
…
//-------------------OTHER ROUTINES----------------------------------------------------------
void strobe_mode(uint8_t mode, bool mc){ // mc stands for 'Mode Change', where mc = 0 is strobe the routine, while mc = 1 is change the routine
if(mc) {
fill_solid(leds,NUM_LEDS,CRGB(0,0,0)); // Clean up the array for the first time through. Don't show display though, so you may have a smooth transition.
disp.clear();
disp.brightness(7); // яркость, 0 — 7 (минимум — максимум)
disp.displayInt(mode);
…
Вот что получилось:
Буква Р добавляется, после команды End SetMode.
Еще изменил управление яркостью, на более плавное.
…
void getirl() { // This is the IR function that gets the value and selects/performs command.
if (Protocol) {
#if LOG_ON == 1
Serial.print(F(«Command: 0x»));Serial.println(Command,HEX);
#endif
switch(Command) {
#if IR_Key_Brightness_plus
case IR_Key_Brightness_plus: ////////////////////////////////////////////////////////////////////////// Увеличить максимальную яркость
if (max_bright< 255) max_bright=max_bright +10;
LEDS.setBrightness(max_bright);
#if LOG_ON == 1
Serial.print(F(«Brightness+ „)); Serial.println(max_bright);
#endif
break;
#endif
#if IR_Key_Brightness_minus
case IR_Key_Brightness_minus: ///////////////////////////////////////////////////////////////////////// Уменьшить максимальную яркость
if (max_bright>10) max_bright=max_bright -10;
LEDS.setBrightness(max_bright);
#if LOG_ON == 1
Serial.print(F(“Brightness- „)); Serial.println(max_bright);
#endif
break;
#endif
…
Может получилось криворуко, но я не силен в программировании, не судите строго, только начал разбирать коды.
Пробовал подключать вывод информации на OLED 0.96“ I2C/SPI, но катастрофически не хватает памяти. Делал на Меге ради интереса, но не хочу ее в этом проекте использовать.
Можно попробовать с другими библиотеками (я пробовал с Adafruit_GFX.h и Adafruit_SSD1306.h ) ASOLED или iarduino_OLED_txt или SSD1306Ascii, они без экранного буфера, чисто текстовые.
Не знаю, пока работает, если что-то сделал криво помогите исправить.
Спасибо и удачи в делах.
Кстати интересные светодиоды, я их где то на алике видел, скиньте фото одного светодиода поближе, они паяются или залиты?
yadi.sk/d/RovmmrLr8Odf7A
yadi.sk/d/L1xL2cWkXaBAlA
yadi.sk/d/0zmScnljVEJE3g
Поскольку кнопками я не собираюсь пользоваться — убрал, чтобы нее мешали (может где-то и осталось, побоялся лезть в EEPROM).
Почему-то не компилируются 8-ми значные коды пульта в последних 4-х строках, выдает ошибку.
Насчет светодиодов, они упоминаются у Гайвера. Они залиты прозрачным компаундом и светят ярче (миниатюрнее), но недостатком являются тонкие провода. На два куска по 50 светодиодов не хватает напряжения, приходится запитывать с обеих сторон. Пробовал поставить три куска с питанием с обеих сторон, все равно не хватает. Так что если делать длинную гирлянду придется дополнительно тянуть питание, в результате пропадет весь смак в незаметных проводах.
Вид с задней стороны:
Вид с лицевой стороны:
А брал я их здесь AliExpress BTF-LIGHTING- Store.
в файле command в конце не правильно написано число там должно 4 или 8 знаков, правильно писать так
Единственно не понятно, почему-то оранжевый и желтый цвет уходят в зеленый спектр на этих светодиодах (при том на обычной адресной ленте все цвета в норме). Может быть китайцы поставили туда чип SK6812, но по нему информации очень мало.
Пришлось поменять Yellow на DarkOrange — стало по естественней. В связи с эти возникает вопрос: можно ли в solid = CRGB::DarkOrange; объявить цвет напрямую HEX кодом?
В библиотеке FastLed версии 3.3.3 они есть. Цветовая гамма не изменилась. Но улучшилась стабильность работы. Раньше на Solid_White мигали последние 10-12 светодиодов (хотя запитаны с двух сторон), сейчас такого нет. Единственно при использовании FastLed 3.3.3 расходуется больше памяти.
Еще хотелось бы узнать, за что отвечает параметр: Initial delay: 0ms delay.
В начале статьи есть видео первых эффектов, видео эффекта огня тут последний скетч частично можно посмотреть тут
Включаем лог, чтоб смотреть номер эффекта и с пульта переключаем, вперед назад,
первые сорок они одного вида, после сорока там бегущий огонь, который можно программировать как охота.
Как закольцевать 4+ программу?
Что добавить в скетч?
Спасибо!
Она итак не останавливается и повторяется.
Если нужны только отдельные эффекты то выбираем DEMO_MODE 3 или 4
и в MY_MODE через запятую указываем эффекты, которые надо повторять в цикле
P.S. пока писать комментарий обнаружил, что стал повторяться один и тот же режим,
примерно через 40 мин. после включения.
Сегодня запустил гирлянду по последнему скетчу и библиотекам.
Работает.
Гирлянда 4х50=200.
НО: не хватает индикации текущего эффекта.
Возможно ли использовать LED дисплей на базе драйвера TM1637, который применил avtopilot1 (см комментарий от 10.10.20)?
Я новичок в программировании. Это мой первый проект на Arduino. Поэтому пока пользуюсь готовыми версиями.
Если не трудно, дополните, пожалуйста, скетч notamesh4plus, который вы выложили 21.09.20 (https://yadi.sk/d/dL5-cMM_awGAAg), LED дисплеем на базе драйвера TM1637 и в полной обновленной версии буду скетч ждать (ловить) в комментариях.
До Нового Года осталось мало времени. У нас в супермаркетах уже появились шоколадные Деды Морозы.
Спасибо.
Проверку пульта лучше делать с включенным логом
Хорошо добавлю TM1637
Адресные светодиоды закатал в термоусадку по вашей рекомендации:
Кнопки и так есть в этом проекте
Скоро будет этот проект на ESP32, развитие этого проекта перейдет туда, там есть куда стремится. И это будет другая тема
https://aliexpress.ru/item/item/32802431728.html
Схема и скечь будет на оба варианта один, у людей будет выбор либо делать самим либо купить готовый в корпусе…
С завтрашнего дня начинаю перевод скетча под ESP32
Выставим 10-15 устройств внешний вид такой внутри так
Это пока мой тестовый образец, на рабочем может не быть SD разъема (я его еще не проверил как работает) и провод один.
Отправка будет почтой России
Остальное зависит от руководства
Цену пока не знаю.
Дмитрий приветствую Вас!
После добавления TM1637 NANO потянет 250 светодиодов?
https://yadi.sk/d/nPBxMYT-LkwtOw
Добавлена работа с кнопками и индикатором от Алекса Гувера
Скетч причесан, настройки в одном месте, с описанием, думаю теперь все просто настраивать
Дмитрий доброго времени суток!
Схема включения индикатора как у Гувера?
Индикатор подключается к пинам как предложил avtopilot1 10 октября (к 2 и 3)
Кнопка 1 подключена к пину как у Гувера в его гирлянде (тоже к 2 пину)
Для работы поменяйте настройки пинов как у вас, т.к пины пересекаются
это я не понял, схем у Гувера много где используется индикатор
Проверьте, у меня нет этой схемы чтобы проверить
alexgyver.ru/christmaslights/
C:\Program Files (x86)\Arduino\libraries\notamesh4Gyver\_main.ino:27:100: fatal error: GyverButton.h: No such file or directory
#include «GyverButton.h» // библиотека GyverButton
^
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino Nano.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
вот, что пишет
Скачайте по ссылке: github.com/AlexGyver/GyverLibs/releases/download/GyverButton/GyverButton.zip
Распакуйте содержимое архива, т.е. папку GyverButton, и поместите её со всем содержимым по адресу: C:\Program Files (x86)\Arduino\libraries
Я не понимаю логики смены палитр с пульта (автосмена выключена). Палитра вроде бы меняется, но проходит один цикл, и после этого изменения откатываются. При этом случайные цвета меняются на другие случайные. Можно ли как-то сделать, чтобы это работало как, например, в механических клавиатурах: выбираешь желаемый режим мигания светодиодов (их здесь вроде бы 40), и, при заданном режиме, кнопками переключаешь палитры? В том числе, простые однотонные (дитё просит розовую елочку :) ). Может это уже как-то реализовано, и я просто не разобрался где это включить?
По командам перебора палитр Command_Palette_Previous или Command_Palette_Next происходит останов автоматического перебора палитр
для восстановления автоматического перебора надо запустить команду Command_Palette_Auto
для установки нужной палитры, достаточно выполнить поиск палитры командой Command_Palette_Next
Выбрал 4 режим. Там переливающийся градиент из синего+желтого+красного (что-то вроде этого). 3 раза нажал кнопку смены палитры, 3 раза появлялись другие цвета, но через несколько секунд возвращались на изначальные синий+желтый+красный.
Спасибо еще раз за потраченное время и замечательный проект.
Change palette OFF
Я добавляю команду в самом начале функции setup:
но это совершенно никак на цвет не влияет, проверял с разными значениями. Может Вы можете подсказать, что я делаю не так?
В поиске находится только способ корректировки в момент инициализации
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, UM_LEDS).setCorrection(TypicalLEDStrip);
В нашем случае могу предположить прописать ее в этих строках
Официально выходить новый скетч с дополнительными библиотеками notamesh4Biblio.zip
1. Компилируется на ESP32 без ошибок и работает (кроме: TM1637_ON не совместима с ESP32, пульт не проверял)
2. Добавлены следующие устройства
TM1637_ON (индикатор от Гайвера),
До 4 Кнопок (Библиотека Гайвера),
До 2 Светодиодов
3, расширен набор команд, Добавлены команды для работы с кнопками работать стало удобнее.
4. Добавлен режим настройки, где свой набор команд.
5, исправлены ошибки
Начинаю создавать новую тему на муське про ESP32 с использованием данного скетча, все развитие темы перейдет туда.
Тоже прошу ссылку на новую тему — очень прошу
Скоро Новый год, хочу добавить еще сотню диодов.
Вопрос — можно просто прошить ардуинку последней прошивкой notamesh4Biblio, изменив количество диодов, или какие-то изменения необходимы еще?
Просто как-то подзабылось все уже за год, с октября по новой все изучаю.
Купил ESP, жду, когда придет, но просто уже не успею собрать, очевидно…
Для последнего варианта настройки те же, но их стало больше и они перекочевали в главный файл.
Если пульт не используете то надо поставить правильно несколько параметров порты и тип гирлянды и должно работать
если есть пульт, то надо скопировать коды клавиш со старого на новый, ну или настроить заново, по инструкции в шапке.
Сейчас пробую уже подключить и прошить.
Пульт куда-то дел, найду позже.
Пока нашел вторую платку, без пульта, с кнопкой и с прошивкой notamesh4Gyver.
Вопрос по кнопке, можно ли ее использовать параллельно с пультом.
В новой прошивке указано:
#define BTN1_PIN 34 // Номер пина, куда подключена кнопка 1,
в прошивке notamesh4Gyver:
#define BTN1_PIN 3 // Номер пина, куда подключена кнопка 1 (так и подключено)
Кнопка живет своей жизнью.
По однократному нажатию может выключить, а может и нет. Также и с включением. Переключение эффектов (2х-3х кратное нажатие) и изменение яркости (удержание) не работает.
двухцветного светодиода, именно в такой конфигурации стартует проект на ESP32 ( 4 кнопки и 2 светодиода) и пойдет развитие в сторону Wifi, SD card.
Также будет адаптация под ESP8266 (4 кнопки и 2 светодиода) макетку я сейчас делаю…
Будет время подправлю notamesh4Gyver.( там есть ошибки, т.к. строился на тестовом выходе notamesh4Biblio
По поводу пинов, я же не знаю куда на этой плате кнопка подключена
Вот адаптированный вариант под ESP8266 хотелось бы успеть до Нового года опробовать, тем более все комплектующие под руками…
Про пульсацию я имел ввиду эффект показанный на этом видео вот ссылка youtu.be/ifYAJ5LyKDE?t=428
От начала гирлянды бежит ярко-белый огонек, оставляя за собой гаснущий след (градация белый-желтый-оранжевый-красный), такой «бикфордов шнур», по достижении конца гирлянды следует взрыв — белая вспышка всей гирлянды с переходом в произвольный эффект — падающая волна, радуга, да хоть что…
Но поскольку могу только повторить паяльником, да простой правкой прошивки под свое железо, идея остается идеей…
Надеюсь до НГ найти где-то хаб с большим количеством готовых эффектов, и научиться их вручную добавлять в этот проект.
Если надо что то, добавлю, только опишите
Единственное, был бы Вам очень сильно благодарен, если бы Вы помогли с включением/выключением гирлянды. Скорее всего это уже есть, но, к своему стыду, я не нашел. Как сделать, чтобы на одну и ту же кнопку пульта гирлянда включалась и выключалась? Например на IR_Key_Solid_Black. Если при этом еще будет включаться на последнем эффекте и палитре — вообще идеально, но совершенно не обязательно.
Команда в новом скетче Корректность работы проверю в ближайшее время
Если надо помочь с настройкой то спрашивайте
Человек просил добавить эффект, будет время добавлю
с веб управлением и веб приложением
вот ето проект, но я не знаю как скачат его, я вижу вкладки и не знаю как использовать
Ser_Go задал вопрос я ответил Где здесь ваш вопрос и этот Я не понимаю как вам ответить на ваш вопрос.
я прошью.
считаю ето наилучшим проектом.где ест все что мне нужно и даже больше.и веб
говорю твоя гирлянда говно, есть с веб управленем, даже тут вам человек показывал еффекты. нескольких у вас точно нет. говорит гирлянда не умный дом, может быть и говном.
поставил ваш скетч.какое то переливание сплошное быстрое.
еще такой прикол… вы мне как делали мегу, там под 2812.дж р б
у меня 2811.сменил на жрб и огонь еффект синий а не красный))
по ходу дальше гдето изменено что ли… в скетче.
Разработчики как правило молчат.есть проект выложенный на гитхабе.
готов заплатить за преобразование его в скетч.
Для проекта notamesh4ESP32 цвет задается при помощи кнопок или
при установленной EXTEND_FLAG 0 задается также как в проекте notamesh4Biblio
ищу пока под свои.нашел проект который компилируется в непонятной проге
второй по блютусу или включается тиристором с подачей питания на вход ардуино, третий говорит у меня есть веб, еффекты в виде кодов будут, скрипты…
-аааа!
вы стараетесь, пишете новые еффекты и добавляете функции, а все лучшее уже есть
в веб версиях есть авто перебор еффектов.но они такие краткие что там не видно где какая функция.
естьконтролер от итайцев.там хоть 200 еффектов, но все надоели и фуфло.а обовлять они 2 года не спешат.
кстати прошивки Гайвера часто ругаюся на кирилицу или библиотеки.ваши ложаться без руганий.я уже все по очереди пробую, посмотрев перед етим что там есть.веб, еффекты, кнопки.на отсуствие… лутуса.Демо ищу.
я не понимать если в прошивке есть строки где задаются точка доступа и пароль,
зачем заходить в примеры и там прописывать… что то у меня не вяжется.
говорите что должны работать 11 вместо 12х.библиотека под 12е написана.
не поможете вы-найду прошивку с веб с еффектами поблескивания и бегущих красивых огней, а то все ети какая то фигня.или мутные 11 диоды.12е лучше светят.может потому такое впечатление плохое о переливании цветов…
Зачем светофору веб интерфейс, включили и он работает
Контроллеру елки также, подали питание и он работает,
Если не нравится проект не используйте, выберите другой или напишите сами как вам надо,
Eсли есть деньги найдите программиста он вам напишет, напишите в яндексе программисты фрилансеры
Я уже больше трех раз говорил, чужие проекты я не переделываю
В моем проекте будет веб управление, но вы же своими вопросами не даете это сделать, я постоянно вынужден вам отвечать одно и тоже
Если вам не нравится мой проект не используйте, все просто
Вы уже повторяетесь и пишете вопросы по нескольку раз одно и тоже, я просто перестану отвечать.
вам трудно дописать в свой веб или такие еффекты которых нету в вашем проекте.
веб потому что там например из 55 еффектов 10 супер клевые.а у вас их намного больше, и включен либо весь перебор, либо нечего перебирать ибо таковых нет.
целиком логично взять проект получше чем тот что 2 года тому.
но вы еще меня тут забаните, больше ничего, молчу.
Для вашего сведенья я на ESP32 перешел меньше месяца, все в этой теме мне ставят в вину что нет веб, я за этот месяц успел только исправить ошибки.
ВЫ теперь мне настойчиво говорите его бросить и делать другой проект, я считаю это трата моего личного времени впустую.
Я буду развивать свой проект как считаю нужным…
Я устану и просто удалю эти две темы, я банить никого не буду, И поймите я никому ничего не должен,
Ну и трудолюбию, само собой. Многие уже давно бы забросили. Что-то подсказывает мне, что вы на НГ будете смотреть на эти переливающиеся огоньки с немного другими чувствами, нежели мы :)
Еще раз огромное спасибо и низкий поклон за этот замечательный проект.
ссылка
22.10.20 Вы, Дмитрий, выложили скетч для желающих протестировать.
Я протестировал.
Сначала фотоотчет, потом комментарий:
в скетче 5 выставлено
мигает белым с остатком зеленого.поставлю 6
вопрос: поставил без резистора на порту, быстро мерцает.ето потому может быть или не хватает питания?
и кстати 2812 прописаны в скетче, а диоды 2811 не работают хоть застрели.
уже взял другую ардуину.прошивка от мега168 пошла.иду notamesh4 поставлю.
вайфая там нет, кнопки нет, елка на улице.бужет перебор еффектов.
хотелось бы вместе с теми что у вас в скетче з 3мя кнопками.кажется вы мне часть давали чтоб еффект добавить
Если контроллер работает от 5 В (нано, уно, мега) то должно работать без резистора
Если контроллер работает от 3.3В то надо ставить преобразователь из 3,3 вольт в 5 вольт
Я считаю резистор вредным, он ток уменьшает
Из опыта, если начинает мигать гирлянда самопроизвольно от соприкосновения руки, то это говорит что пин неправильно указан, или оборвался провод от пина.
Я вот все слышу про елку на улице, а контроллер, блок питания и гирлянда защищены от влаги? может поэтому и не работает
и тот с ютуба.называется «готовимся к новому году.мегакрутая гирлянда».
опыт есть, скетч шьется… что еще неправильно…
без резистора Гайвер говорил что можно выход сжечь.но их там несколько))
с резистором на 220м 300 2811 перебор еффектов прекратился.красный цвет и все.
Не дело в том что на улице, если не работает то сразу, а не перестает работать.Вемос коннектится, ето видно по вебсервере.типа кнопки тыкаешь в веб а диоды не светсяся.зараза!!!
вот попробую потом 2812. мне кажется что заведется.
сампроизвольно у меня не работает… что 5 амер что 7, нотамеш4 чуть ли не хаотично моргает, броуновское движение.очень быстро проходят еффекты и часто мигает.хм…
попробую старые версии. те еффекты что вы мне выбрали для мега 128 наилучше.
поставлю версию постарее. вообще у меня начало гирлянды сверху.но не думаю что оно так могло повлиять на все еффекты.
я вижу ваши скетчи отличаются пояснениями и детальной настройкой.
вот хотелось бы тот с веб включит демо, и хз где ето. скетчи очень компактные, хм…
я на улице втулил 15 амерный по 5 в блок о компа.со временем решил заменить на 5-6а.но пока так.
Ставьте преобразователь с 3,3 на 5 вольт и будет счастье ставить надо как можно ближе к контроллеру.
если WS2812FX написана правильно и тайминги соблюдены, то должны работать что 2812 так и 2811, главное преобразователь уровней
Гайвер говорил про короткие провода и если случайно закоротить, а зачем вам коротить?
другой проект же работает.
почему то ваши еффекты слишком быстро отображаются.получается какой то хаос.
убедился что мой вемос ардуина программируется но не работает.
возник вопрос могу ли я сам добавлять и запрещать ефекты?
вот насколько я шарю, у вас 40 еффектов написано, вижу окк 20ти.
их просто закомментировать? запретить
новые добавить ето вкладку и там дописать?))
Можно поставить 2 транзистора, или один по схеме, я обычно ставлю логический элемент например такой SN74LVC1G08DBVR ну либо купить китайский модуль, их много
Мои проекты можно настраивать. Время отображения эффекта настраивается тут можно поставить время 240 секунд
Эффекты можно выбирать тут при этом демо режим надо выбирать или 3 или 4 #define DEMO_MODE
Смотреть питание + зашунтировать поближе к ленте электролитами+керамика.
А какое расстояние от контроллера до первого светодиода? Может дело в длиной сигнальной линии?
Думаю преобразователь логики из 3,3 в 5 вольт решит ситуацию
В даташите, к слову, об этом есть внятная рекомендация
Это само собой, я же о резисторе.
Иногда, просто чтобы запустить ленту, достаточно перепаять первый светодиод поближе к esp, он «поймает» сигнал, а дальше пойдет уже «правильного» уровня. Это если ничего под рукой нет и нужно проверить — влияет ли емкость сигнального провода или нет.
Во первых нет сопротивления на выходе на этой плате, как по даташиту
Во вторых, зачем ставить после контроллера, если сопротивление стоит у светодиода, опять же по даташиту нет сопротивления у контроллера.
С перепайкой поближе как вариант, все же, преобразователя уровня из 3,3 в 5 вольт
На передачу больше влияет нормальные уровни напряжения, чем согласование линии.
Хотя вы и правы, когда плохо работает на длинных линиях можно поиграться с сопротивлением, но это все пассивные элементы, они вносят свои искажения, я привык применять активные, мне проще 485 интерфейс кинуть и не думать, будет работать завтра или нет
Отсюда и танцуем.
PS: в тру-варианте, т.е. коммерческом и/или массовом, который должен работать всегда и везде, желательно ставить и согласование уровней и защитное сопротивление. Потому что мы не имеем представление, какая у нас будет лента и на какую длину мы работаем. Тот случай, когда кашу маслом не испортишь.
Вообще это мы даже не там смотрим, надо открывать даташит на контроллер — зная нагрузочную способность пина, зная примерную емкость нагрузки, частоту/скважность, прикинуть будем мы в параметрах или нет. И ставить это сопротивление нужно как можно ближе к пину контроллера, перед светодиодом оно нам уже не поможет )
Убедили, буду ставить сопротивление, но преобразователи уровня тоже ставить надо, с двумя сопротивлениями сильно затухает сигнал. много раз спотыкался на этом.
Безусловно, я категорически за. Возможно, хватить только преобразователя (по факту достаточно простого повторителя, все равно сигнал идет в одну сторону).
2. У меня все телевизоры SONY, чтобы одновременно с елкой не переключались телеканалы, купил пульт от Самсунга.
3. Купил TM1637
4. Скетч скачал, все собрал, проверил:
5. Ошибка компиляции – нехватка памяти.
6. Отключил ЛОГ — ииии – ЗАРАБОТАЛО!
7. На индикаторе от 0 до 122 вариантов
НО!:
Пульт как не работал, так и не работает корректно. Срабатывает не сразу, с многих нажатий.
Вы как-то писали, что из-за нехватки памяти невозможно прописать корректную работу пульта.
Я уже купил MEGA 2560.
Вопрос к ВАМ:
1 Поможет это для корректной работы пульта?
2 Можете ли Вы дописать скетч от 22.10.20 с учетом MEGA 2560 и для корректной работы пульта?
Хочется добиться работы гирлянды и закончить этот проект.
PS: сегодня 11.11.20 я на Aliexpress купил ESP32 для нового проекта. Но сначала хочу довести этот проект до логического конца.
Спасибо
Я это описывал тут
и потом тут
Вы пишете: «я хотел выжать максимум, на что способен Нано здесь идет жесточайшая экономия памяти с максимальными возможностями»
Вопрос:
Так как я докупил MEGA 2560, у которого больше памяти,:
1. Поможет это для корректной работы пульта?
2 Можете ли Вы дописать скетч от 22.10.20 с учетом MEGA 2560 и для корректной работы пульта?
Хочется добиться работы гирлянды и закончить этот проект.
попробуйте вставить строку в любое место notamesh4Biblio.ino
если не поможет, можно добавить еще эту строчку
Или попробуйте поставить старую библиотеку пульта
я ничего сделать не смогу, библиотеки написаны не мной и постоянно корректируются разработчиками
Если нет, то дописывать скетч не нужно.
Спасибо.
Спасибо.
IRremote подключается к таймеру и считает тики приходящие с пульта
FastLED в момент отправки FastLED.show(); Таймер отключается (отключаются прерывания)
Поэтому если нажата кнопка пульта и в этот момент идет отправка, то данные о нажатой кнопки пульта теряются.
Я в скетче применил проверку, если идет подсчет тиков (нажата кнопка пульта, то отправка откладывается
while (!irrecv.isIdle());
Пульт стал вести себя более предсказуемо
Если светодиодов много, то время на передачу увеличивается. и вероятность попадания нажатия кнопки в момент отправки тоже увеличиваются.
Что делать.
1. Ничего не делать, просто если не сработало на пульте нажать еще раз
2. Отказаться от пульта или отказаться от этого проекта
3. Ждать пока разработчик библиотеки FastLED исправит ситуацию, перейдет на аппаратную передачу данных
ест опыт 2 лампы Гайвера и гирлянды 2.
ардуино вемос д1 мини шьется, не работают.диоды 2811.
ругается что есть лишние библиотеки, но ето ничего.веб работает.то есть программировал гирлянду с управлением по вайфаю.веб есть, диоды не светят. думал может выход спалил.менял на 2й.не помогло.
3 проекта так не работаеют.диоды проверял на работоспособность.
Проверьте пайку, проверьте разъемы, тут проходило, что китайцы поставили разъемы наоборот, выход и вход местами
Если есть какой то готовый проект, подключайте к нему 2811 работает там где работает 2812, только цвет переставлен (красный и зеленый)
как бы проблема в ардуино.или несовместимость где то или плата такая не рабочая.
толком проверю когда опять придут заказанные 2812.
помнил что может быть что 4й выход ето 5 например… подставлял.диоды бы засветились сразу при втыке.а может и нет.
сейчас пошел проверять на модуле свтодиодном.вроде 2812.тоже нет.но замигали вместе.
2811 вместо 12 взаимозаменяемы, должны работать?
Значит не правильно настроен скетч под вашу плату, проверьте номер пина
гирлянды на ws2811 и ws2812 взаимозаменяемы, только у них цвета красный и зеленый поменяны местами
поскольку прежний опыт есть успешный,4 платы 3 проекта.
то могу предположить что пин 5й по факту 6й например.
но ету версию проверял.не хочет
д1 вемос самый дешевый.может брак какой то.компилируется нормально.
вариантов ошибиться платой всего 2.думаю 2 подходящие.wemos d1 и d1 mini.
вот как то бы проверить выдает ли ардуина на выходе.
спасибо за внимание.
Это я хотел сделать для реализации: Есть гирлянда WS2812 из 200 лампочек (50х4), эту гирлянду повесить на елку по принципу «серпантин», и чтобы загоралось сперва верхнее (первое) кольцо (лампочки 1-5), затем второе кольцо (лампочки 6-23), далее третье кольцо (лампочки 24-54) и т.д.
Или также гирлянда-серпантин. Сперва загоралось первое кольцо — полностью (лампочки 1-5), затем во втором кольце загорались только те лампочки, которые расположены под лампочками первого кольца (лампочки 9, 13, 16, 19, 22) и т.д. Чтобы получился эффект бегущего огонька по прямой сверху вниз.
Такие эффекты можно прописать только после повешивания гирлянды на елку. И для каждой елки будет индивидуальный скетч.
Скажите, пожалуйста, можно это реализовать или нет? Если да, то КАК?
Это будет реализовано в проекте на ESP32
Создается дополнительно массив итоговой, который будет выводится
В цикле переносится согласно матрицы соответствия, данные из массива расчета в массив итоговой при каждой прорисовке
в нано памяти не хватит
Файл addings.h
заменить последнюю строкуleds[i].b +=CRGB(5,5,5); на эту leds[i] =CRGB(255,255,255);
2811 не хотели работать вместо 2812. библиотеки написаны пож дж р б.ето как минимум.и под 2812.
уже отчаялся и думал искать скетч под 2811 диоды.
но сделал все как надо и пошло.гирлянда на веб управлении ето не кнопки.еффекты натомеш лучше, есть автоперебор.
поскольку моя гирлянда на улице, вывел 2 провода для подключения ардиуно в комнате.метров 7-10))
по дата проводу пошли наводки.часть гирлянды то светится частично то мигает.
прошивка скомпилировалась и работает не по тому порту выходу что программировалась.хм…
Если к текущему проекту сделали веб интерфейс, то я рад за вас
Если хотите обсуждать свой проект, создайте тему и пишите туда, вам ответят и там подскажут,
Остальные параметры для задания эффектов для вершины гирлянды (например можно сделать звезду, снежинку, Черепушку, голову Д.Мороза и т.д)
TOP_LENGTH — задает сколько светодиодов используется в вершине, если 0 то отключено и память не расходует
TOP_COLOR — задает основной цвет, вокруг которого будут все эффекты CRGB::Red -красный, CRGB::Blue — синий Цвета можно брать отсюда готовые
TOP_EFFECT — задает эффект
TOP_DELAY — задает время паузы между следующим состоянием в миллисекундах, Чем меньше число, тем быстрее эффект.
TOP_FADING — задает скорость затухания цвета до черного. Чем больше число, тем быстрее цвет станет черным
параметрами TOP_DELAY и TOP_FADING можно поиграться и найти очень интересные эффекты
До этого дела с ARDUINO вообще не имел. Вот и хотелось бы найти инструкцию для дураков, чтобы поэтапно что установить и куда нажать.
А то в этой инструкции написано добавьте скетчи, а как это сделать, что куда нажимать не понятно.
Буду использовать на уличной елке, соответсвенно кнопки и пульта не надо, достаточно чтобы при подачи питания включался режим авто и прогонялись все подряд режимы.
Может есть готовая прошивка со всеми настройками?
Заранее спасибо.
Вопросов на самом деле больше, чем вы написали
где то 82 строка
Максимум что можно это демо пример библиотеки FastLED на 50 светодиодов
минимум это ATMEGA168A в шапке есть скетч.
Вот все что поддерживается
Для 3,3 вольтовых надо на контроллер подавать не 12 вольт а 5 вольт, стабилизатор может не выдержать
пока юзаю Гайверовскую версию, с кнопкой, на неделе начнем ковырять 4+
датчик у меня «для тупых», распаяный на пате с обвязкой и индикацией
так вот индикация указывает на наличие сигнала, когда его нет (не на всех режимах, закономерность отследить не было времени), после чего ардуина вообще отказывается отзываться на пульт до перезагрузки
куда копать? питаю телефонный БП, 50 диодов, по напряжению есть просадка, хотя тока должно быть с запасом (ток ограничиваю в прошивке) может добавить конденсаторы для сглаживания? электролит и керамику для надежности… или вообще разворачиваться в стороу нормального БП
сорян, если обсудалось, но вроде всю тему просмотрел
во первых вы подаете стабильное напряжение,
Во вторых можно посмотреть лог
спасибо за подсказку, вопрос снят)
Все управление и настройки теперь в одном месте в главном файле notamesh4Biblio.ino
Команды в конце
со строки 270
Читайте комментарии там все показано как делать
Загружайте демо от IRremote и сотрите, там много диагностических скетчей
Один из вариантов, который нравится:
1) Либо Устанавливаете как надо и нажимаете кнопку с командой
Setup_Command_Setup_Mode_Off ( Выход из режима настройки)
2) либо Закомментируйте 317 строку файла _main.ino Теперь настройки Очередность Цветов, включения блеска, заполнения фона и включения свечей берется из настроек
3) либо просто отключить запись в EEPROM для этого SAVE_EEPROM сделать равным 0
Как сделать чтобы в эффекте огонь не менялось направление? А то получается задаем верхушку елки, но через некоторое время меняется направление и верхушка становится снизу.
направление само меняется и огонь получается вверх ногами.
1) направление огня теперь правильно отрабатывает
2) ввел параметр SAVE_EEPROM 2 (это когда не используется вход в режим настройки)
3) исправил мелкие ошибки
Скечь доступен по старой ссылке https://yadi.sk/d/nPBxMYT-LkwtOw
Все скетчи в одном месте по ссылке https://yadi.sk/d/wn_vaw2hgcQ5Yg?w=1
без скобочек (х) и без даты текущая версия скетча, скобочки или дата это предыдущие версии
Например:
notamesh168.zip -текущая версия
notamesh168 (1).zip — прошлая версия
notamesh4Biblio.zip — текущая версия
notamesh4Biblio_<дата>.zip прошлые версии, где дата, момент перехода
Спасибо заранее за ответ и за замечательный проект.
Скачиваете скетч, туда бросаете свой notamesh4Biblio.ino и все, все настройки готовы
Я все изменения по файлу notamesh4Biblio.ino публикую новым комментарием, достаточно прочитать, и подкорректировать если надо
Подскажите пожалуйста сигнальный провод на диоды 2812 подойдет по сечению как от шлейфа IDE?
По питанию понял, что желательно не менее 0,14 и отдельно на каждые 100 диодов, а на сигнальный пойдет тонкий?
выдает ошибку, как починить?
(я не разбираюсь в програмировании)
Эффект огонь, у меня сине-голубой, как только включаю, вся гирлянда загорается красным цветом и первый эффект начинается заполнение снизу вверх синим цветом. Я так понимаю, что из за несоответствия цветов я вижу эффекты не так как Вы их задумывали.
Скачал последний скетч
ничего не менял (там стоит SAVE_EEPROM 2 и COLOR_ORDER RGB)
загрузил в NANO
на верху гирлянды мигает красным (у меня подключены светодиоды WS2811)
Поменял COLOR_ORDER на GRB
Загрузил в NANO
на верху гирлянды мигает зеленым
Поверьте.
Если у вас светодиоды будут подключены к D5 и D6, то настройка такая
с чем может быть связано? питание?
Непонятки какие-то…
Елка далековато стоит от компа, попробую на ноут ArduinoIDE поставить, посмотреть логи…
Прошу прощения за невнимательность, но не могу найти, на каком этапе появилось ЛЕД1 и ЛЕД2. Ведь гирлянда одна!
Дайте ссылку на схему. Или на дату, где началось обсуждение.
Спасибо
Выход на гирлянду один, гирлянд может быть несколько (на ESP32 может работать до 80 гирлянд по 50 светодиодов в каждой) Вы можете подсоединить несколько гирлянд последовательно по цепочке столько сколько хватит памяти в устройстве.
Светодиоды LED1 и LED2 введены для индикации, не каждому удобно к елке подключать лог.
На данный момент LED1 завязан на кнопки Gyvera, LED2 показывает вход в режим настройки
Пользователь может самостоятельно их переназначить
Схему подключения Индикаторных светодиодов можно взять в интернете
Встроенные палитры показались слишком синюшными. Сделал свой набор палитр, поярче («С блек-джеком и шлюхами» © Бендер). Файл с палитрами: yadi.sk/d/mHxFDeoQUTsLKQ. Картинки палитр: yadi.sk/i/HbXSb1EWzSjS-A
попробовал подменить файл что был у автора файлом данным вами… кардинальных изменений не заметил, показалось более «белым»(бесцветным) свечение.
#include «gradient_palettes.h»
на
#include «gradient_palettes2.h»
примерно в 242 строке.
Я заменил файл в папке, и мне показалась палитра белой. но я все эффекты не перебирал, просмотрел штук 5
ага, спасибо за картинки, теперь явно видно преобладание светлых тонов. предыдущая палитра НА КАРТИНКЕ была более темной, а вживую диоды светились «цветом», на новой палитре более желто-белое, что вживую дает свечение диодов белым цветом, и желтым не отличимым от белого.
Это мое мнение, но предыдущая градация цветов мне больше нравится… я-б немного изменил — зеленого добавил. (в палитру автора)
Сравнил сейчас картинки палитр: да, в моём наборе палитр больше белого, чем в изначальном наборе. Будет время ещё поэкспериментирую с палитрами. Еще бы разобраться как используются палитры: по времени изменяется цвет по палитре, по местоположению диода, по яркости или еще как…
И ещё в других проектах ( обычно) не более 10. Так и тут можно выбрать самые крутые и их зациклить. И будет всё тоже самое. ИМХО конечно
Надеюсь, что в следующем году можно будет собрать прошивку со своим набором эффектов.
#define MY_MODE 0,1,2,4,5,9,10,11,14,16,17,18,19, \
запишите их порядковый номер через запятую
и в строчке поставте
#define DEMO_MODE 3 // Режим при включении
// 3 — демо режим с последовательным перебором выбранных эффектов
Я сейчас добавлю новое и все скажут не компилируется
Да в планах есть добавление эффектов, но сейчас я сосредоточен прикручиванием bluetooth к esp32.
Я добавлю настройку по выбору палитр, плюс сделаю (уже сделал) режим вывода градиента, чтобы смотреть на палитры, включение будет с пульта
Или в том варианте что Вы даете в начале с управлением кнопкой там столько же эффектов?
далее четвертый плюс обновился в четвертый библио с добавлением библиотек Гайвера
Если вам надо именно четвертый плюс он у гайвера в проекте елки
Я вам рекомендую взять четвертую библио с настройками под одну кнопку
Скиньте лог нажатий, сюда
#define LOG_ON 1 // Включить лог 1 — включить лог
то лог пишется? но как его вытащить я не знаю(
09:57:22.758 -> ---SETTING UP---
09:57:23.732 -> Initial delay: 0ms delay.
09:57:23.732 -> Initial strand length: 150 LEDs
09:57:23.732 -> EXTEND Setup
09:57:23.732 -> GRB LEDS
09:57:23.732 -> Glitter On
09:57:23.732 -> Background On
09:57:23.732 -> Candle Off
09:57:23.732 -> Mode: 255
09:57:23.732 -> 1006
09:57:23.732 -> Change palette off
09:57:23.781 -> DEMO MODE 1
09:57:23.781 -> ---SETUP COMPLETE---
09:57:24.205 -> Mode: 0
09:57:24.205 -> 1450
09:57:24.205 -> Change palette off
09:57:30.829 -> End SetMode
09:58:21.760 -> Start SetMode
09:58:22.136 -> Mode: 1
09:58:22.136 -> 60393
09:58:22.136 -> Change palette off
09:58:28.914 -> End SetMode
09:59:20.213 -> Start SetMode
09:59:20.614 -> Mode: 2
09:59:20.614 -> 120397
09:59:20.614 -> Change palette ON
09:59:27.510 -> End SetMode
09:59:49.820 -> New Palette: 23
10:00:19.513 -> New Palette: 24
10:00:19.513 -> Start SetMode
10:00:19.890 -> Mode: 3
10:00:19.890 -> 180409
10:00:19.890 -> Change palette ON
10:00:26.653 -> End SetMode
10:00:48.081 ->
10:00:48.081 -> ---SETTING UP---
10:00:49.092 -> Initial delay: 0ms delay.
10:00:49.092 -> Initial strand length: 150 LEDs
10:00:49.092 -> EXTEND Setup
10:00:49.092 -> GRB LEDS
10:00:49.092 -> Glitter On
10:00:49.092 -> Background On
10:00:49.092 -> Candle Off
10:00:49.092 -> Mode: 255
10:00:49.092 -> 1006
10:00:49.092 -> Change palette off
10:00:49.092 -> DEMO MODE 1
10:00:49.092 -> ---SETUP COMPLETE---
10:00:49.521 -> Mode: 0
10:00:49.521 -> 1450
10:00:49.521 -> Change palette off
10:00:56.158 -> End SetMode
10:01:06.821 ->
10:01:06.821 -> ---SETTING UP---
10:01:07.807 -> Initial delay: 0ms delay.
10:01:07.807 -> Initial strand length: 150 LEDs
10:01:07.807 -> EXTEND Setup
10:01:07.807 -> GRB LEDS
10:01:07.807 -> Glitter On
10:01:07.807 -> Background On
10:01:07.807 -> Candle Off
10:01:07.807 -> Mode: 255
10:01:07.807 -> 1006
10:01:07.807 -> Change palette off
10:01:07.853 -> DEMO MODE 1
10:01:07.853 -> ---SETUP COMPLETE---
10:01:08.261 -> Mode: 0
10:01:08.261 -> 1450
10:01:08.261 -> Change palette off
10:01:14.884 -> End SetMode
10:01:24.913 ->
10:01:24.913 -> ---SETTING UP---
10:01:25.917 -> Initial delay: 0ms delay.
10:01:25.917 -> Initial strand length: 150 LEDs
10:01:25.917 -> EXTEND Setup
10:01:25.917 -> GRB LEDS
10:01:25.917 -> Glitter On
10:01:25.964 -> Background On
10:01:25.964 -> Candle Off
10:01:25.964 -> Mode: 255
10:01:25.964 -> 1006
10:01:25.964 -> Change palette off
10:01:25.964 -> DEMO MODE 1
10:01:25.964 -> ---SETUP COMPLETE---
10:01:26.391 -> Mode: 0
10:01:26.391 -> 1450
10:01:26.391 -> Change palette off
10:01:35.473 ->
10:01:35.473 -> ---SETTING UP---
10:01:36.488 -> Initial delay: 0ms delay.
10:01:36.488 -> Initial strand length: 150 LEDs
10:01:36.488 -> EXTEND Setup
10:01:36.488 -> GRB LEDS
10:01:36.488 -> Glitter On
10:01:36.488 -> Background On
10:01:36.488 -> Candle Off
10:01:36.488 -> Mode: 255
10:01:36.488 -> 1006
10:01:36.488 -> Change palette off
10:01:36.488 -> DEMO MODE 1
10:01:36.534 -> ---SETUP COMPLETE---
10:01:36.958 -> Mode: 0
10:01:36.958 -> 1450
10:01:36.958 -> Change palette off
10:01:43.580 -> End SetMode
10:02:34.515 -> Start SetMode
10:02:34.845 -> Mode: 1
10:02:34.845 -> 60393
10:02:34.845 -> Change palette off
10:02:41.658 -> End SetMode
10:03:32.963 -> Start SetMode
10:03:33.330 -> Mode: 2
10:03:33.330 -> 120407
10:03:33.330 -> Change palette ON
10:03:40.192 -> End SetMode
10:04:02.590 -> New Palette: 13
10:04:32.185 -> Start SetMode
10:04:32.185 -> New Palette: 7
10:04:32.586 -> Mode: 3
10:04:32.586 -> 180415
10:04:32.586 -> Change palette ON
10:04:39.403 -> End SetMode
10:05:01.673 -> New Palette: 8
10:05:31.172 -> New Palette: 9
10:05:31.219 -> Start SetMode
10:05:31.583 -> Mode: 4
10:05:31.583 -> 240411
10:05:31.583 -> Change palette ON
10:05:38.633 -> End SetMode
10:06:00.446 -> New Palette: 31
10:06:29.654 -> New Palette: 32
10:06:29.654 -> Start SetMode
10:06:30.031 -> Mode: 5
10:06:30.031 -> 300423
10:06:30.078 -> Change palette ON
10:06:37.084 -> End SetMode
10:06:59.170 -> New Palette: 22
10:07:28.638 -> New Palette: 23
10:07:28.638 -> Start SetMode
10:07:29.059 -> Mode: 6
10:07:29.059 -> 360420
10:07:29.059 -> Change palette ON
10:07:35.838 -> End SetMode
10:07:58.122 -> New Palette: 29
10:08:27.605 -> New Palette: 30
10:08:27.653 -> Start SetMode
10:08:28.031 -> Mode: 7
10:08:28.031 -> 420425
10:08:28.031 -> Change palette ON
10:08:34.880 -> End SetMode
Можете скинуть, как вы подключили кнопку физически, к какому контакту и как?
В скетче вот так
#define BTN1_PIN 3 // Номер пина, куда подключена кнопка 1
это ж и есть этот пин, или нет?(
Я вдохновился палитрами lantari, и решил попробовать сделать свой набор. Разобрался как это сделать, но столкнулся со странной проблемой: палитры без коррекции выглядят намного светлей, чем должны, а палитры, взятые с cpt-city, и которые используются в этом проекте, т.е. с коррекцией FastLED «converted for FastLED with gammas (2.6, 2.2, 2.5)» у меня на гирлянде становятся практически белыми. Гирлянда, кстати, точно такая же как у вас, на WS2811.
Цвета, где хотя бы один из каналов на максимуме (например, 255,0,0 — красный, 0,255,0 — зеленый, 255,255,0 — желтый) выглядят правильно, там коррекция по сути ничего не делает.
Но берём, например, самый насыщенный розовый — 255,0,128. Без изменений на гирлянде он выглядит как очень светлый розовый. Если сделать корректировку, близкую к той, что используется в проекте (gamma 2.2), мы получаем значения (255,0,186), и на моей гирлянде это практически белый цвет. Причем, что самое интересное, почти белым он выглядит только когда используется в палитре, а если вывести его просто как solid цвет, то всё отображается правильно. Чтобы получить искомый цвет палитры, мне приходится сделать корректировку в обратную сторону (например, gamma 0.3), тогда цвет будет (255,0,26), и вот тогда на гирлянде это действительно выглядит как насыщенный розовый, близко к тому цвету, что я вижу на мониторе. Еще раз перепроверил на оранжевом (255,128,0). Без коррекции это чистый желтый, с гаммой 2.2 (255, 186, 0) уже салатовый, с гаммой 0.3 (255, 26, 0) действительно выглядит как оранжевый.
Если у вас есть догадки, из-за чего это может быть, подскажите пожалуйста. Переделывать каждую палитру в фотошопе боюсь до НГ не успеть :) Вряд ли это могут быть проблемы с питанием, т.к. вывод сплошных цветов не через палитры даёт правильные цвета, о чём я писал выше.
Можно ли это поправить? Спасибо большое заранее.
На вкладке main с 383 строки идёт 4 варианта инициализации гирлянды. Найдите ваш, в зависимости от типа диодов и RGB или GRB очерёдности. Например, у меня 2811 RGB, это 386 строчка, там код:
прямо после скобки добавляем код, и получается:
3 числа в скобках — это яркость красного, зелёного и синего светодиодов. В вашем случае второе число нужно уменьшить, значение подбирайте опытным путём :) Например (255,150,255). Палитры править точно не нужно.
палитры стали нереально сочными!
доработка обязательная к испольнению)
Берете последний скетч заходите в настройку (файл notamesh4Biblio.ino)
И отключаете периферию указываете правильно пин и все если ресурсов контроллера хватает, то должно работать
А потом спокойно добавляете периферию если оно надо
Есть уточнение по кнопке. Перемычку «А» замкнул, так как на других скетчах без этого не прошивалось и не работала гирлянда. Может в ней дело…
Дмитрий спасибо за проделанную работу! Главный праздник прошел и можно заняться
работой над ошибкамидальнейшим усовершенствованием. У меня маленькая елочка и на ней поместилось всего 68 диодов и то 10 из них в звезде. ESP-32 отлично справилась со своей задачей и восторгу собравшихся не было предела. Но я считаю ЕСП-эшка избыточна для 68 диодов, хотя управлять с телефона гирляндой это Дорогой Понт.Arduino Nano с одной кнопкой и на случай показухи IR -пульт я думаю самое то.
Короче! взял notamesh4Biblio.ino, прописал «свои ноги» как нарисовано у Гайвера включил и настроил Ir и GyverButton, пришлось отключить Лог и залил в Nano. Все работает кроме кнопки. Проверьте пожалуйста.
Как говорит мой друг — Если с пятого раза не получается, надо читать инструкцию.
1) без всего DEMO_MODE 3, PALETTE_TIME 30, SAVE_EEPROM 0, MY_MODE Х где Х выбранный эффект
2) с пульта или с кнопки просто выбрать эффект (Command_Next_mode) и все если палитра не переключается то командаCommand_Palette_Auto ее включает
Не понимаю почему вы не можете включить
Я забегался, поэтому и не отвечал.Вопросов много.
Если это ошибка я исправлю
Вы ведь в курсе, что не все эффекты имеют палитры (то есть переключение палитр не возможно)
4 режим, палитры менять можно. Дважды нажал кнопку автосмены палитр, сижу любуюсь на 30 палитру уже минут 5, не меняется :)
Исправлены проблемы с палитрой
В начале страницы есть 9 ссылок на разные прошивки…
всего 4 версии, плюс усеченная для atmega168
notamesh
notamesh2
notamesh3
notamesh4
notamesh168
Каждая из этий версий это переписывание всей логики работы
Каждая из этих версий может может быть наращена библиотеками управления, (к основному имени добавляется название добавленного функционала) без замены логики работы при этом эти добавки отключаются в скетче
для возврата к исходному варианту
notamesh4plus — добавлен бегущий огонь
notamesh4biblio — Добавлены управление кнопками и светодиоды и возможность компилировать под серию ESP
notamesh4gyver — тоже самое но под проект гувера (он использовал в своей разработке мой проект в декабре 2019 года и там есть ошибки и мало возможностей)
notamesh4BLE — это библио плюс управление по BlueTooth (чисто для ESP32)
вам зачем версии, все ссылки ведут на актуальную версию, ошибки я исправляю быстро
Я решил скачать исправленный архив. но что качать?
скачал 4 архива
notamesh4Biblio
notamesh4plus
notamesh4
notamesh4BLE
Исправления вижу в файле "_main" в архиве notamesh4Biblio. значит остальные архивы не правленые? и там файла "_main" вовсе нет.
Вот я и говорю что запутался.
Нужны ли старые версии?
Перейти на нумерацию версий проекта как предложил уважаемый Lahmandey?
голосуем
1 — оставить как есть
2 — за то, что убрать старые версии из упоминания (почистить обзор) оставить только notamesh, notamesh2, notamesh3, notamesh4 и notamesh168 (notamesh4Biblio будет notamesh4)
3 — Вести нумерацию (notamesh4plus будет notamesh4.1, notamesh4Biblio -> notamesh4.2 notamesh4BLE -> notamesh4.3)
но обзор почистить нужно.
По поводу голосования, опять же, это чисто моё мнение, но 3 вариант не очень удачный, т.к. многие будут качать без раздумий версию 4.3, считая её самой актуальной.
Думаю, стоит оставить текущее разделение, но добавить нумерацию версий.
Но вообще, ничего удобней гитхаба пока не придумано. Там не только удобно следить за обновлениями, там еще можно публиковать список изменений. Если ты год не следил за развитием проекта, сейчас узнать обо всех нововведениях ты можешь только прочитав все комментарии.
И надо WiKi.
Сообщество поможет. Я считаю что те, кто скачал и поставил морально обязаны черкнуть хоть пару абзацев. А это наиболее нудная часть работы. Готов поучаствовать. Если/когда сам разберусь)
А про GitHub и речи нет. Тут без вариантов. Размещать и даже не думать!
1.диодная лента на окне. WS2812 (ардуино)
2.купленная на али проводная лента на елке. WS2812 (есп32)
3.купленная на али проводная ламповая(диодная) на крыше дома. WS2811 (ардуино)
все 3 гирлянды работают по 3-5 часов без перерыва и проблем.
Ну или аппаратный глюк ардуинки.
Но у меня 6 гирлянд и все ведут себя примерно одинаково
упоминается в 2 файлах _main.ino в функцииsetup() влиять не может, не главный цикл
и в файле getirl.h где отработка команд с пульта, но тут все в логах отражается
команды
Command_Start_Stop,
Command_Start,
Command_Stop
Command_Brightness_minus_R
Command_Brightness_minus
Command_Brightness_plus_R
Command_Brightness_plus
13:54:27.140 -> Mode: 38
13:54:27.140 -> 1900686
13:54:27.140 -> Change palette ON
13:54:27.140 -> New Palette: 15
13:54:27.140 -> Brightness: 135
13:54:37.891 -> Brightness: 75
13:54:37.891 -> End SetMode
13:55:16.016 -> New Palette: 16
13:55:16.016 -> Brightness: 75
13:55:16.204 -> Start SetMode
13:55:16.577 -> Mode: 39
13:55:16.577 -> 1950550
13:55:16.577 -> Change palette off
13:55:24.608 -> Brightness: 75
13:55:24.608 -> End SetMode
13:56:06.046 -> Start SetMode
На 38 эффекте что-то установило Brightness: 135, затем Brightness: 75… Дальше ещё какое-то время работало и через мин 10-15 ушло в чёрный. Но лог не успел записать так как переделывал программу и расставил Serial Print чтобы найти виновника. 38 эффект — это noise8_pal.h.
Это точно не IR так как там SerialPrint показал бы срабатывание. Остаётся два варианта или «GyverButton.h» или noise8_pal.h.
Во первых нет команды вывести лог "Brightness:" в моем скетче она выглядит Brightness+ или Brightness-
Во вторых в 39 эффекте (noise8_pal.h) нет управления яркостью
Если вы установили скетч с форума Гайвера то ищите ошибки там, у него, в его скетче полно ошибок
Поставьте нормальный скетч, настройте и будет вам счастье
Если делали по схеме гайвера, попробуйте поставить сопротивление от 1 до 10 кОм между питанием и ножкой кнопки,
так будет правильнее,
Вы кнопки используете (кроме пульта)?
Попробуйте скетч отсюда, там все выведено в лог и легко найти проблему
Программно отключил кнопку через #define USE_BTN 0 и уже 30 мин работает!!! Вероятно таки глюки библиотеки GyverButton.h :(
Спасибо ещё раз за помощь!
Муска странную ссылку дала
Вы что то переделали сами
Вы точно описали поведение моей гирлянды, 200 светодиодов, БП 5А, ограничение в скетче 3А.
Позже тоже отключу кнопку, все равно управляем только с пульта.
Но факт такой — до монтажа на елку гирлянда была намотана на «испытательный стенд» — пластовую трубу d110 мм, испытывалась около 2-х месяцев, ни одного подобного сбоя не было…
У меня следующее электромеханическое объяснение: возможно из-за наводок от сигнального кабеля гирлянды. Там высокая частота и может вызывать «дребезг» если провода расположены рядом. Но это лишь гипотеза.
Хотя контроллер должен подтягивать сопротивление сам, но если их в внутри контроллера нет, или они слишком большие, то появляется шум
Обкатывал на монтажной плате, после запихивания в коробочку и монтажа на елку начались безобразия с угасанием и пропаданием…
Со
СтарымНовым Годом!Звезду брал в FixPrice, аккуратно раскрыл ее, потрошки
выкинулубрал в загашник, вставил в звезду 6 конечных диодов.Спасибо всем за советы и помощь!
Главное, чтобы радовало и приносило счастье
Управление с пульта работает нормально.
Скетч от 21.10.2020г.
Спасибо, Дмитрий!!!
Я на базе своего сайта решил сделать цикл статей, форум и FAQ по этому проекту, тут уже превышен лимит по объему и искать невозможно и неудобно все. Все запутались.
А получается — нельзя прописать одну и ту же команду и для пульта и для кнопки. Будет работать только
та которая прописана первойодна, не важно для чего прописана первой — для пульта или кнопки. Можно это как то победить?Посмотрите как сделана команда Setup_Command_Setup_Mode_Off
давайте для примера добавим еще одну команду на на примере Command_Stop Как сейчас:
еще раз добавить три строки
#if Command_Stop1
case xxxxxxx:
#endif
где xxxx новая команда (после нее должна стоять символ двоеточие)
Достаточно режима ДЕМО. Порекомендуйте версию и что в ней нужно исправить. Сам в этом разбираюсь плохо.
Демо режим работает автоматом везде, можно ничего не припаивать из периферии, кроме выхода на гирлянду.
для AVR последний скетч
для ESP последний скетч
отличаются только периферией, в демо режиме они одинаковые
Настройки выставляются в заголовочном файле, если будут проблемы пишите
Ставится легко, Заходите в папку с установленной arduino IDE, в ней есть папка libraries, в папку положить разархивированный архив (в моем случае это C:\Arduino\libraries\FastLED-master)
(для спокойствия, если оставите, IDE при компиляции будет говорить что обнаружил два экземпляра)
//#def/ine IR_REPEAT 1
вопрос: кнопки и команды также закоментировать или они уже не будут вызываться?
И что означают эти команды: #define LED1_PIN 26
#define LED2_PIN 25
Вывод лога тоже можно отключить, поставив «0»
это подключение двухцветного светодиода для индикации «служебных режимов», таких как Включение режима настройки,
Можно проверить на эффекте огня 39
либо временно поменяйте в файле _main.ino
найдите строки в функции void setup() это примерно 410 строка поменяйте вторую строку на solid = CRGB::Red это при старте теперь должен быть красный цвет, если он будет зеленый, то RGB не правильно стоит, надо GRB
Бьюсь уже месяц! эти гады переписали библиотеку IRremote теперь не могу подружить ни один пульт с гирляндой. В декабре 20-го сделал, только голову сломал какие коды пульта подставлять в скетч. Вариант — запустить из примеров IRrecvDemo и из него переписать — не работает, у кого работает по шагам с примерами в студию пожалуйста! Спасло ситуацию включение в IRremote.h функции DEBUG, только так удалось отследить какие команды декодирует скетч, так вот они оказались вообще третьим набором кодов, не похожие на первые два из примеров IRremote и IRLremote. К сожалению все наработки пропали вместе с компьютером.
Только что загрузил в ардуину скетч Цветомузыки Гайвера, там библиотека IRLremote и коды кнопок отличаются от IRremote от того же пульта! Так с IRLremote библиотекой нормально пульт работает! Значит всё-таки проблема в обновлении IRremote. Подскажите, у кого работает, а лучше скиньте весь проект с библиотеками ( lomnik@yandex.ru ). Задолбался уже!
Конкретно с примером пожалуйста какой код вы видите в скетче примера IRremote и какой реально вписываете в скетч с гирляндой и как это у вас работает? яф перепробовал 10 пультов, НИФИГА НЕ РАБОТАЕТ!
ПОМОГИТЕ!
Ссылка на старую есть в теме искать по словам Проблемы с Новой библиотекой Пульта
Вот кусок кода с командами под простенький пульт как у Гайвера в цветомузыке
///Все команды которые обрабатывает скетч брать из файла GetIrl.h
// 0х + код кнопки на пульте из примера IRremoteDEMO (старая библиотека)
#define Command_Brightness_plus_R 0xFF6897 // * Яркость по кругу 18 ступеней
#define Command_Start_Stop 0xFFB04F // # Старт/стоп (отключите автоповтор)
#define Command_Glitter 0xFF38C7 // OK Включить/выключить сверкание
#define Command_Previous_mode_Demo 0xFF4AB5 // Dwn Предыдущий эффект+Демо
#define Command_Next_mode_Demo 0xFF18E7 // Up Следующий эффект+Демо
#define Command_Speed_minus 0xFF10EF // Lft Медленнее
#define Command_Speed_plus 0xFF5AA5 // Rgt Быстрее
#define Command_SetMode_0 0xFF9867 // 0 Начать с 0-го эффекта
#define Command_SetMode_1 0xFFA25D // 0 Начать с 10-го эффекта
#define Command_SetMode_2 0xFF629D // 0 Начать с 20-го эффекта
#define Command_SetMode_3 0xFFE21D // 0 Начать с 30-го эффекта
#define Command_SetMode_4 0xFF22DD // 0 Начать с 40-го эффекта
#define Command_SetMode_5 0xFF02FD // 0 Начать с 50-го эффекта
#define Command_SetMode_6 0xFFC23D // 0 Начать с 60-го эффекта
#define Command_SetMode_7 0xFFE01F // 0 Начать с 70-го эффекта
#define Command_SetMode_8 0xFFA857 // 0 Начать с 80-го эффекта
#define Command_SetMode_9 0xFF906F // 0 Начать с 90-го эффекта
Спасибо большое.
Суть эффекта: вспыхивает белый на всю яркость на 3 секуды, включается блеск, общая яркость плавно падает до ноля, а блеск остаётся, затем блеск становится радужным и плавный переход на десятый эффект «радуга», далее в демо режим или другой выбранный.
А то вкл-выкл какой-то бестолковый.
Этот эффект тоже можно сделать отключаемым как «Свечи»
СПАСИБО ЗА ПОМОЩЬ! дочку порадую! )))
Наконец то заработало). Свои пять копеечек к теме «Проблемы с Новой библиотекой Пульта».
Наконец то взялся за этот проект, время позволило. Возможно и сам где то чего напутал но всё по шагам делал, благо всё расписано достаточно доходчиво. Но всё же.
Пульт не реагировал ну никак. С библиотекой была непонятка но решилась довольно просто. В мониторе порта во время запуска при работающей в демо режиме гирлянде выскакивали крякообразы. И подбирая по очереди значение скорости (бод) добился появления команд в правильном формате и соответственно текст выполняемой команды. Может кому и поможет. Удачи!!!
А вопрос в следующем. Отстраниться от пульта (думаю вообще не использовать)и через блутуз с телефона в случае нужды контролировать гирлянду.
Соответственно два вектора действий. первый апк под андроид и второй переделки с самим скетчем. Если у кого есть наработки буду благодарен. Спасибо. Хотелось бы эту красоту осветить)))
Поскольку, в такой сложный (по моим меркам) скетч лазить и ковырять рано ещё нашёл свой путь к Голгофе))). В итоге один ретранслятор который принимает сигналы по bluetooth от андроида и ретранслирует его в виде NEC кода.
Логично, что ларчик проще открывается и в дальнейшем буду думать над тем что было предложено выше, однако там не ардуинка коих у меня имеется штук десять с которыми хотелось бы как то поиграть.
Вот схема.
Программа для андроида сделана на 2MIT ну и скетч на сколько позволили знания.
Это основной экран МЕНЮ.
Примечательно что RESTART появляется когда связь по bluetooth активирована.
Кому интересна переделанная версия скетча под это приложение, и само приложение пожалуйста… поделюсь.
Arduino: 1.8.9 (Windows 10), Плата:«Arduino Nano, ATmega328P (Old Bootloader)»
In file included from C:\Arduino\notamesh4plus\notamesh4plus.ino:325:0:
rainbow_beat.h:1:0: error: unterminated #ifndef
#ifndef RAINBOW_BEAT_H
^
In file included from C:\Arduino\notamesh4plus\notamesh4plus.ino:329:0:
blendwave.h:1:0: error: unterminated #ifndef
#ifndef BLENDWARE_H
^
In file included from C:\Arduino\notamesh4plus\notamesh4plus.ino:330:0:
fire.h:1:0: error: unterminated #ifndef
#ifndef FIRE_H
^
In file included from C:\Arduino\notamesh4plus\notamesh4plus.ino:331:0:
candles.h:1:0: error: unterminated #ifndef
#ifndef CANDLES_H
^
Несколько библиотек найдено для «FastLED.h»
Используется: C:\Program Files (x86)\Arduino\libraries\FastLED-master
Не используется: C:\Program Files (x86)\Arduino\libraries\FastLED-3.2.9
exit status 1
unterminated #ifndef
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
По библиотеке понял, а все остальное нет.
Arduino: 1.8.15 (Windows 10), Плата:«Arduino Nano, ATmega328P (Old Bootloader)»
In file included from C:\Arduino\notamesh4plus\notamesh4plus.ino:332:0:
colorwave.h:78:2: error: #endif without #if
#endif
^~~~~
Несколько библиотек найдено для «FastLED.h»
Используется: C:\Program Files (x86)\Arduino\libraries\FastLED-master
Не используется: C:\Program Files (x86)\Arduino\libraries\FastLED-3.2.9
exit status 1
#endif without #if
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
запустил IDE Arduino: 1.8.13 (Windows 10),
выбрана Плата:«Arduino Nano, ATmega328P
Скетч не менял, все откомпилировалось
Версия «FastLED version 3.004.000»
скачайте по ссылке и попробуйте откомпилировать
Причина, файл в формате UTF-8 и в начале есть служебный символ (его не видно) и При компиляции идет сбой
Самое простое решение, удалить первый символ в файле и записать его заново (в моем случае символ «решетка»)
и так сделать во всех файлах, где ошибка
я обновил 4 plus
Отключается в 115 строке файла notamesh4plus.ino 1 заменить на 0
Когда в скетче notamesh4plus в строке 33 #define IR_ON 0 стоит 0, то есть работа без пульта, скетч прекрасно компилируется.
но если поставлю 1 ( использование пульта) получаю вот это Error compiling for the Arduino Nano board.
Что не так?
Вы наверное не все сюда вывели из того что было в логе.
могу только гадать, ошибка связана с библиотекой пульта
In file included from C:\Users\Dimitri\Documents\Arduino\Girljanda\notamesh4plus\notamesh4plus.ino:166:0:
C:\Users\Dimitri\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.009
# pragma message «FastLED version 3.002.009»
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Dimitri\Documents\Arduino\Girljanda\notamesh4plus\IRremote.h:24:0,
from C:\Users\Dimitri\Documents\Arduino\Girljanda\notamesh4plus\notamesh4plus.ino:169:
C:\Users\Dimitri\Documents\Arduino\libraries\IRremote/IRremoteInt.h:206:23: error: 'RAWBUF' was not declared in this scope
unsigned int rawbuf[RAWBUF]; // raw data
^~~~~~
exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.
Замените ее на библиотеку, что закреплена в шапке этой темы
Компиляцию проверил на notamesh4.2_(Biblio): Версия Arduino IDE 1.8.15
Эту библиотеку я уже установил. Однако в списке библиотек в среде Ардуино заметил, что присутствует наличие Робота. Удалил его отовсюду. Но он, зараза, таки сидит в списке. Как от него избавиться — ума не приложу. Весь комп через «поиск» прошерстил — нету! А в списке — есть!
Вы должны заменить номера пинов на свои, куда вы подключили кнопки, пины любые можно и аналоговые, подробно тут (можно без буквы или с буквой A) вот первоисточник как подключать кнопки
И еще, если будите подключать по способу Гайвера, не забудьте поставить
А вот с кнопками Гайвера — беда! Уверенно и адекватно работает только 1-я. Остальные — никак. Но до меня таки дошло, что если в логе посмотреть какая команда высвечивается, то… Открывается обширное поле для творчества.
Фуф! Хорошо, что я сейчас занялся этим делом! До Нового года должен успеть! :)
С кнопками есть одна беда, которую Гайвер не озвучивает.
По всем канонам электроники, если вы кнопку закорачиваете на землю то должны поставить подтягивающий резистор к питанию, и наоборот, если кнопку коротите на питание, должны поставить подтягивающие сопротивления к земле.
Внутри контроллера есть внутри маленькие сопротивления, и как бы драйвер Гайвера их включает, но… иногда этих сопротивлений может не быть, а иногда на длинных проводах, кнопка, может срабатывать самопроизвольно,
Если паять сопротивления никах, попробуйте заменить пин.
Но это дело мне нравится! Благодаря интернету и таким людям, как Вы, есть возможность учится, и делать что-то своими руками!
Всё, останавливаюсь на этом варианте — 4 гайверовские кнопки и дисплей. Работает как и дОлжно! Конечно, надо бы ещё скетч под себя «причисать» — объяснить кнопками, что я от них хочу. Но без фанатизма! Например, выполнять глубокую настройку через кнопки делать не буду. Это ж неудобно! Да и… Через полгода я забуду, как это делается! А писать подробную инструкцию… А оно надо?! Чем проще — тем лучше! По крайней мере для меня. Включил — заработало! Кнопками выбрал режим и алга! А если что, так USB порт всегда доступен!
Если нужны подсказки, то все же рекомендую esp32 и телефон, там подсказки отображаются.
Скоро доделаю и будет все хорошо
Ну а если серьёзно, то вариант с ESP32 мне нравится больше. Просто у меня «не пошло» (от слова «идти»). Да, кстати, дисплей TM1632 наотрез отказался работать с ESP… Или наоборот… Но, опять же, это не критично!
Так что… Ждём'с!
Что за наезды? Вам же сказали: Мы все ждем, но налегать не надо.
Наезды? А вот с этого места, пожалуйста, поточнее! В чём усматривается наезд? По крайне мере, с моей стороны его нет! А вот Вы, похоже, пытаетесь это сделать. Либо у Вас проблемы с чувством юмора, либо Вы невнимательно прочитали моё сообщение, адресованное Дмитрию.
Уже несколько дней гирлянда «пашет» без нареканий! Однако возник у меня вопрос. Можно ли в скетче изменить изначальную яркость светодиодов? При включении они светят сразу на максимум. А мне желательно примерно 50%. Конечно, можно кнопками это дело урегулировать, но… Каждые раз привключении давить на кнопки… Сам я не нашёл, где и как это подправить.
Зарание спасибо!
Start SetMode
Mode: 2
30409
Change palette Stop
End SetMode
Start SetMode
Mode: 3
45420
Change palette Stop
End SetMode
Главное:
1) запустите этот блок питания (не все умеют)
2) не перепутайте провода (надо Общий и 5 Вольт)
3) правильно подсоедините питание( должны быть отдельный нормальный провод на контроллер и через каждые 100 светодиодов)
Но мне кажется что блок питания будет избыточен
Во время зависаний, что лог пишет?
Если временно поставить 150 светодиодов то «глюк» пропадает?
Глобальные переменные используют 1739 байт (84%) динамической памяти, оставляя 309 байт для локальных переменных.Arduino Nano 328
#define KOL_LED 200 // Сколько светодиодов в гирлянде при первом включении
//////////////////////////////////////// Параметры пульта
////
//Настройка действия кнопке осуществляется в файле command.h
#define IR_ON 0 // Если равен 1 используется пульт
// если не равен 1 пульт не используется, работает в демо режиме
#define PIN_IR 8 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 200 // Максимальное количество светодиодов при работе с пультом должно быть больше
// или равно KOL_LED
// От размера этого числа зависит колличество используемой памяти
//Тип пульта на который будет реагировать устройство, ставим 1 у того который используется
//это уменьшит используемую память
//Чтобы узнать имя пульта запустите в примерах IRremote / IRrecvDump
#define IR_RC5 0 // пульт RC5,
#define IR_RC6 0 // пульт RC6,
#define IR_NEC 1 // пульт NEC,
#define IR_SONY 0 // пульт SONY,
#define IR_PANASONIC 0 // пульт PANASONIC,
#define IR_JVC 0 // пульт JVC,
#define IR_SAMSUNG 0 // пульт SAMSUNG,
#define IR_WHYNTER 0 // пульт WHYNTER,
#define IR_AIWA 0 // пульт AIWA_RC_T501,
#define IR_LG 0 // пульт LG,
#define IR_SANYO 0 // пульт SANYO,
#define IR_MITSUBISHI 0 // пульт MITSUBISHI,
#define IR_DENON 0 // пульт DENON
#define IR_REPEAT 1 //Включить повтор, при долгом нажании на кнопку пульта будет повтор клавиши
//////////////////////////////////////// Параметры кнопок
////
//Настройка действия кнопке осуществляется в файле command.h
#define KEY_ON 0 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define PIN_KEY A3 // Номер пина, куда подключены кнопки
//Зачения смотреть в протоколе после строки Analog Key
#define KEY_0 10 // Значение соответствующее нажатой 0 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_1 70 // Значение соответствующее нажатой 1 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_2 140 // Значение соответствующее нажатой 2 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_3 280 // Значение соответствующее нажатой 3 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_4 360 // Значение соответствующее нажатой 4 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_5 520 // Значение соответствующее нажатой 5 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_6 700 // Значение соответствующее нажатой 6 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_7 900 // Значение соответствующее нажатой 7 кнопке
// если значение меньше KEY_DELTA, то кнопка не используется
#define KEY_DELTA 5 // погрешность значения кнопки, тоесть от -KEY_DELTA до +KEY_DELTA
//////////////////////////////////////// Параметры гирлянды
////
#define COLOR_ORDER GRB //Очередность цвета светодиодов RGB или GRB
#define CHIPSET WS2811 //Тип микросхемы светодиодов в гирлянде
#define LED_DT 12 // Номер пина куда подключена гирлянда
//#define LED_CK 11 // Номер пина для подключения тактов, применяется для светодиодов WS2801 или APA102
//ЕСЛИ НЕ ИСПОЛЬЗУЕТСЯ ЗАКОМЕНТИРОВАТЬ
#define POWER_V 5 // напряжение блока питания в Вольтах
#define POWER_I 5000 // Ток блока питания в милиАмперах
//////////////////////////////////////// Параметры программы
////
#define BLACKSTART 1 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
#define GLITER_ON 1 // Включить блеск 0 — блеск отключен, 1- блеск включен
#define CANDLE_KOL 20 // если больше 0 то будут включена эмитация свечей
// число задает через какое расстояние друг от друга располагать свечи
#define CANDLE_ON 0 // Если включена эмитация свечей то 1 = при запуске она будет включена
// 0 = при запуске она будет выключена
#define CANDLE_40 1 // Управление 40 эффектом (свечи) 1 = при запуске она будет включена по варианту efimova1969
// иначе при запуске она будет включена по моему варианту
#define BACKGR_ON 1 // Включить заполнение черного цвета фоном
#define DEMO_MODE 1 // Режим при включении
// 0 — последняя запущенная программа
// 1 — демо режим с последовательным перебором эффектов
// 2 — демо режим с случайным перебором эффектов
// 3 — демо режим с последовательным перебором выбранных эффектов
// 4 — демо режим с случайным перебором выбранных эффектов
#define MY_MODE 0,1,2,4,5,9,10,11,14,16,17,18,19, \
21, 22, 28, 30, 32, 34, 36, 37, 38
//Выбранные эффекты пишутся номера через запятую,
// можно писать и одинаковые что актуально в демо 3
// Если закоментировать, то демо 3 и 4 отключаются
#define DEMO_TIME 60 // Время отображение эффекта в демо режиме в секундах
#define CHANGE_ON 1 // Включить плавную смену эффектов
#define CHANGE_SPARK 4 // Эффект смены 0 — без эффекта, 1 — искры (бенгальский огонь) 2 — яркий свет
// 3 — метеорит, 4 — случайный эффект (из 1-3)
#define CHANGE_TIME 7 // Время в секундах, за которое произойдет плавная смена эффектов
#define DIRECT_TIME 20 // Через сколько секунд менять направление если 0 — не меняем
#define PALETTE_TIME 30 // Через сколько секунд менять палитру если 0 — не меняем
#define DEV_NOISE16 50 // если Зависает на 22 и 37 режимах, то уменьшаем число
#define RUNNING_FIRE 0 // Включить эффекты бегущего огня
#define LOG_ON 0 // Включить лог 1 — включить лог
13:20:14.683 -> End SetMode
13:21:05.922 -> Start SetMode
13:21:06.249 -> Mode: 20
13:21:06.249 -> 1200414
13:21:06.249 -> Change palette ON
13:21:06.249 -> New Palette: 17
13:21:13.631 -> End SetMode
13:21:35.401 -> New Palette: 18
13:22:05.002 -> New Palette: 19
13:22:05.096 -> Start SetMode
13:22:05.424 -> Mode: 21
13:22:05.424 -> 1260453
13:22:05.424 -> Change palette off
13:22:12.714 -> End SetMode
13:23:04.258 -> Start SetMode
13:23:04.541 -> Mode: 22
13:23:04.541 -> 1320441
13:23:04.541 -> Change palette off
Изменил: DEV_NOISE16 70 // если Зависает на 22 и 37 режимах, то уменьшаем число, (был 100, поставил 70)
Работает уже 50 минут без зависания, но лог записался до 22 эффекта, а гирлянда работает и переключается с эффекта на эффект в демо режиме пока нормально, монитурю далеше.
Как урезать количество эффектов, чтоб освободить память?
То что у вас блок питания на 8 ампер ничего ни значит, если провода плохие
1. проверить как работает с подключенным USB кабелем, чтоб сразу отмести проблему с питанием
2) отключение эффектов много памяти не добавят
что можно отключить для Plus:
1)лишние протоколы пультов (поставить 0)
::: В файле notamesh4plus.ino спускаемся на строку 663 — не нашел такую строку у меня последняя строка 463 462 с комментарием настройка закончена.
6) отключить эффекты. в файле notamesh4plus.ino спускаемся на строку 663 и комментируем не нужные команды (поставить // перед строкой)
параметр DEV_NOISE16 бъёт всю ленту на части кусками (каждый кусок равен DEV_NOISE16) и над каждым куском происходит отдельный расчет fill_noise16, памяти расходуется меньше.
если DEV_NOISE16 больше или равен длине ленты, то разбивки не происходит.
Естественно генерация целостного эффекта лучше смотрится, когда разбивка не происходит, или происходит крупными частями.
Все есть и даже больше, гайвер просто вырезал функционал из проекта.
в шапке есть версия под железо гайвера (одна кнопка)
и есть полная версия с не обрезанным функционалом, можно добавить функций на кнопку, и добавить несколько кнопок
есть не все, например я не нашел обработчика 3 клика и потом удержание
енкодер без экрана тоже себе удовольствие, 10 поворотов налево, 3 направо и затем клик, лучше и дешевле просто три кнопки поставить. проше и функционал шире
1. При 2х, 3х, 4х и т.д. кратных нажатиях эффект переключался на номер соответствующий — ("№ текущего эффекта"+«кол-во нажатий»)
2. При удержании кнопки смены эффектов шла прокрутка эффектов, при отпускании включался соответствующий, прокрутку номеров отслеживать в реальном времени на tm1637.
По текущему пункту есть идеи по реализации алгоритма:
а) Прокрутка номеров эффектов происходит после удержания кнопки в течении 1,5-2 секунд;
б) скорость прокрутки сделать 2х ступенчатой, т.е. первый десяток номеров прокручивать к примеру за 4 секунды, последующие 10 номеров за 2 секунды (какую именно скорость настроить нужно выяснить опытным путем).
По моему такое управление сменой эффектов удобное, логичное и интуитивно понятное. Эффектов много, закомментировать «ненужные» совсем не хочется, т.к. это вкусовщина сегодня он не нравится а завтра понравился, поэтому пусть будут все. Зато можно запомнить пяток номеров любимых эффектов и при необходимости быстро удобно его выбрать. Знаю что через ИК пульт это делается на раз, можно ввести нужный номер, но лично мне его неудобно использовать, тем более судя по вышеописанным комментарием его библиотека с fastled работает весьма криво. Лично я за то чтобы гирлянда была автономным и не зависимым устройством.
есть команды выбора эффекта
просто добавляете команды на на 10 кликов сами вот тут
#define BTN1_5 1015 // кнопка 1 четыре клика
#define BTN1_6 1016 // кнопка 1 четыре клика
#define BTN1_7 1017 // кнопка 1 четыре клика
и т.д
ну и вставляете коды кликов в команды
Функционал обработки до 10 кликов я добавлю сам, чуть позже
у меня 4 кнопки, мне проще
не у всех есть экран, как я понимаю этот функционал единичный случай только для вас, будет время сделаю. а так вы можете сами добавить, и то что получится добавить в шапку темы
Сейчас самый удобный вариант, это управление с телефона, там экран больше и сразу все видно и по стоимости получается дешевле, (не надо покупать кнопки и экран) я изначально так и делал, подал питание и все. Вы сами поймете, лежа под елкой не захотите эффекты переключать, Неделю поиграетесь и надоест.
-получен код клика соответствующий удержанию, запускаем цикл для увеличения переменной на единицу
-проверяем код кнопки //осталась ли она зажатой
-если истина, то задержка на n-секунд и продолжаем цикл, иначе выход из цикла.
-инициализируем номер эффекта. //какая переменная содержит номер эффекта?
-складываем результат цикла с текущим переменной
надо просто раскомментировать ее и поидее все работает
освобожусь сделаю
возможно Вы правы насчет недели, но когда надоест, лезть в телефон запускать приложение, проверять «коннект» тоже вряд ли захочется, тем более все равно нужно идти к розетке заодно и кликнуть кнопочку при необходимости можно
Я так поражен Вашей отзывчивостью буквально на каждый комментарий, и огромным старанием, желанием помочь всем и каждому это достойно уважения, спасибо огромное за Ваши труды.
Проложите питание дополнительно нормальным проводом.
drive.google.com/file/d/1eXElNC2x-IjtbepFtOK3RV304FnHTjFX/view
Вот только без индикации на TM1637…
Я не спец в ардуино, может кто подскажет как это сделать, или у кого нибудь уже есть сделано?
Видео на него — www.youtube.com/watch?v=sI4Y6fyXTXs
Есть готовые (в личку), есть у Гайвера, все подробно расписано
Если самому, то рабочий минимум купить блок питания, гирлянду и плату ардуино, припаять 3 провода и все работает.
Если припаять кнопку, то уже можно что-то переключать.
Есть вариант управления с телефона по BlueTooth., тут даже кнопок не надо паять.
Для программирования не обязательно знать язык программирования, достаточно подключить к USB и потыкать мышкой. Если есть проблемы, то пишем здесь, помогу.
Итак определитесь в том что я написал, и я подскажу что делать дальше и что покупать
12 вольтовая хороша тем, что потерь в проводах меньше если подключите от 3 гирлянд в цепочку
#define MAX_LEDS 100
#define IR_ON 0
Initial strand length: 82 говорите, значит записано в EEPROM,
либо отключаете пульт или с пульта увеличьте длину, команды
IR_Key_Length_Garland_plus
IR_Key_Length_Garland_minus
в файле addings.h функция void addbackground()
меняем leds[i].b +=CRGB(5,5,5); на leds[i].b +=CRGB(0,5,0); или leds[i].b +=CRGB(3,8,3);
где CRGB(3,8,3) задает цвет фона в RGB
leds[i].g +=CRGB(0,5,0);
leds[i].b — добавить синий
leds[i].r — добавить красный
leds[i].g — добавить зеленый
В общем ребенку хочу устроить яркий праздник, скачал все согласно ссылок с этого сайта и… понеслась )) В общем при компиляции notamesh4plus без изменений, выдает ошибки, если включить управление с ИК. Если оставить в строке -33 #define IR_ON 0 то все компилируется, заливается, в демо работает. Если ставить 1 то при компиляции выдает следующее:
In file included from C:\Users\Дмитрий\Documents\Arduino\notamesh4plus\notamesh4plus.ino:333:0:
C:\Users\AACE~1\AppData\Local\Temp\arduino_build_879096\sketch\getirl.h: In function 'void getirl()':
getirl.h:383:8: error: duplicate case value
case IR_Key_SetMode_2: /////////////////////////////////////////////////////////////////////////// Набор номера выбор эффекта сдвиг + кнопка 2
^~~~
C:\Users\AACE~1\AppData\Local\Temp\arduino_build_879096\sketch\getirl.h:44:11: note: previously used here
case IR_Key_Brightness_minus: ///////////////////////////////////////////////////////////////////////// Уменьшить максимальную яркость
^~~~
getirl.h:419:11: error: duplicate case value
case IR_Key_SetMode_5: /////////////////////////////////////////////////////////////////////////// Набор номера выбор эффекта сдвиг + кнопка 5
^~~~
и таких строчек несколько
Версия IDE сейчас 1.8.13
В программинге ноль, выручайте господа…
Для нормальной работы все что было сделано до 2020, надо запускать со старыми библиотеками IR, FastLED и версией Ардуино IDE до 2020 года, нахимичили изготовители библиотек.
Конкретно ваша ошибка означает что вы прописали в файле commands.h
одинаковый код кнопок пульта у команд IR_Key_SetMode_2, IR_Key_Brightness_minus, IR_Key_SetMode_5.
если не используйте закомментируете строки или поставке код 0 (ноль)
from H:\!!! ДОКУМЕНТЫ!!!\Денис\!!! Проекты для дома!!!!!!!!!!!\!!! Новогодняя гирлянда\notamesh4\notamesh4.ino:165:
C:\Program Files (x86)\Arduino\libraries\Arduino-IRremote-master\src/IRremoteInt.h:39:2: error: #error Seems you use #include IRremoteInt.h in a file not containing main(). Please define RAW_BUFFER_LENGTH with the same value as in the main program and check if the macros IR_SEND_PIN and SEND_PWM_BY_TIMER are defined in the main program.
#error Seems you use #include IRremoteInt.h in a file not containing main(). Please define RAW_BUFFER_LENGTH with the same value as in the main program and check if the macros IR_SEND_PIN and SEND_PWM_BY_TIMER are defined in the main program.
^~~~~
exit status 1
Ошибка компиляции для платы Arduino Nano.
Скетч notamesh4
Ничего не трогал в прошивке кроме пинов для кнопки. И пина для контроллера ленты.
Не подскажете что не хватет.
Пробовал и другие скетчи такая же история.
Изменения:
Можно подключать разные типы гирлянд (где цвета поменяны местами) добавлены команды для перехода с режима на режим с учетом списка MY_MODE
Насколько я понимаю (исходя из своих невеликих знаний ардуинского языка), за цвет фона отвечает переменная bgclr.
И вот здесь в разных эффектах должно задаваться разное значение данной переменной.
Почему же тогда цвет не меняется?
Еще один вопрос: что из себя представляет имитация свечей? На своей гирлянде я ее не заметил. Если можно, тыкните носом во временную отметку на видео в посте, где можно ее увидеть?
Только что добавил еще 2 варианта цвета фона
переменная bgclr это только для эффектов matrix_pal и one_sin_pal Фон формируется в addings.h в функции addbackground()
Было бы замечательно, если бы в следующих версиях скетча появилась опция плавного изменения цвета фона.
Например, чтобы изначальный CRGB(5,0,0) изменялся каждые 2-3 минуты:
CRGB(4,1,0)
CRGB(3,2,0)
…
CRGB(0,5,0)
CRGB(0,4,1)
и т.д.
во вторых изначально я хотел сделать 9 вариантов, но смеси типа CRGB(5,5,0) светят серым
в третих памяти в нане использовано уже близко к 100% пихать уже некуда
На текущем этапе столкнулся со следующей проблемой: от блока управления у меня идет 3 жилы провода длиной 1 м, сигнальный и "-" скрутил в витую пару, но помехи ловит все равно большие, особенно от прикосновений к проводу, иной раз отказывается запускаться пока несколько раз не коснешься, или же наоборот случайно коснувшись, возникают артефакты на гирлянде, поделитесь опытом кто как решал эту проблему.
можете проверить просто подключив USB провод
на кнопку переключить GyverButton узнайте пин тактовой кнопки и пропишите в кнопке,
далее смотрим лог, если кнопка постоянно нажата то поменять у кнопки BTNх_LOW,
а 1637 итак работает
Решил попробовать сам разобраться как это реализовать. Почитал гайд по языку ардуино, в частности про операторы If, switch case, и вот что получилось, решил написать сюда вдруг ещё кому то пригодится.
На деле опробовал — работает
Рассмотрю на примере недавно добавленной Дмитрием команды «Command_Next_my_mode» (следующий эффект из списка выбранных).Смена эффекта происходит как только ардуино получит соответствующую код нажатия кнопки (тактовая или пульт). По умолчанию любой команде можно прописать всего один код кнопки, Чтобы реализовать и клик (BTN1_1) и удержание (BTN1_PRESS), нужно заставить эту функцию принимать несколько кодов. Для этого в коде выполнения соответствующей функции нужно добавить еще один вариант выбора, еще один «case» уже с нужным нам кодом кнопки и реализуется это достаточно просто:
В головном файле notamesh4Biblio в любом логически удобном месте добавляем:
//пример 1: смена эффекта будет и по клику и по удержанию кнопки, пример 2: кнопка IR пульта и кнопка GyverButton
#define duplicate_Command_Previous_my_mode BTN1_PRESS // Down // дубликат команды: Предыдущий эффект с учетом выбраных режимов. Отключает демонстрационный режим
#define duplicate_Command_Next_my_mode BTN2_PRESS // Up // дубликат команды: Следующий эффект с учетом выбраных режимов. Отключает демонстрационный режим)
в файле getirl.h ищем соответствующую строку, в моем случае — #if Command_Previous_my_mode ниже неё копируем код начиная с case по #endif
}
в моем случае вот этот код:
if (Protocol == 1) { //отключить повтор
switch (demorun) {
#ifdef MY_MODE
case 3: case 4: case 103: case 104:
if (tek_my_mode==0) tek_my_mode=my_mode_count-1;
else tek_my_mode--;
SetMode(pgm_read_byte(my_mode+tek_my_mode));
break;
#endif
default:
#if CHANGE_ON == 1
if (newMode>0) SetMode(newMode-1);
else SetMode(maxMode-1);
#else
if (ledMode>0) SetMode(ledMode-1);
else SetMode(maxMode-1);
#endif
}
#if LOG_ON == 1
Serial.println(F(«Previous mode»));
#endif
}
и вставляем ниже до break: и после case меняем название команды на то, как обозвали в notamesh4Biblio:
if (Protocol == 1) { //отключить повтор
switch (demorun) {
#ifdef MY_MODE
case 3: case 4: case 103: case 104:
if (tek_my_mode==0) tek_my_mode=my_mode_count-1;
else tek_my_mode--;
SetMode(pgm_read_byte(my_mode+tek_my_mode));
break;
#endif
default:
#if CHANGE_ON == 1
if (newMode>0) SetMode(newMode-1);
else SetMode(maxMode-1);
#else
if (ledMode>0) SetMode(ledMode-1);
else SetMode(maxMode-1);
#endif
}
#if LOG_ON == 1
Serial.println(F(«Previous mode»));
#endif
}
Аналогично ищем строку — #if Command_Next_my_mode копируем и вставляем код case и меняем наименование в новом case:
if (Protocol == 1) { //отключить повтор
switch (demorun) {
#ifdef MY_MODE
case 3: case 4: case 103: case 104:
if (tek_my_mode>=(my_mode_count-1)) tek_my_mode=0;
else tek_my_mode++;
SetMode(pgm_read_byte(my_mode+tek_my_mode));
break;
#endif
default:
#if CHANGE_ON == 1
if (newMode >=(maxMode-1)) SetMode(0);
else SetMode(newMode+1);
#else
if (ledMode >=(maxMode-1)) SetMode(0);
else SetMode(ledMode+1);
#endif
}
#if LOG_ON == 1
Serial.println(F(«Next mode»));
#endif
}
Теперь функция «Command_Next_my_mode» умеет реагировать на 2 разные команды с кнопки.
Можно кстати ничего не писать в notamesh4Biblio, а только в getirl.h после того как скопипастили нужный кусок кода, после case убрать наименование команды и напрямую прописать код клавиши.
Хочу отметить такие дубликаты можно сделать на любые функции, в особенности это подойдет тем кто захочет сделать управления и с ИК пульта и с кнопок одновременно.
In file included from D:\Wemos Mini\Girlanda Rabochie sketchi\notamesh4Biblio\_main.ino:22:0:
C:\Program Files (x86)\Arduino\libraries\FastLED-master\src/FastLED.h:14:21: note: #pragma message: FastLED version 3.004.000
# pragma message «FastLED version 3.004.000»
^
In file included from C:\Program Files (x86)\Arduino\libraries\FastLED-master\src/FastLED.h:65:0,
from D:\Wemos Mini\Girlanda Rabochie sketchi\notamesh4Biblio\_main.ino:22:
C:\Program Files (x86)\Arduino\libraries\FastLED-master\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»
^
In file included from D:\Wemos Mini\Girlanda Rabochie sketchi\notamesh4Biblio\_main.ino:258:0:
sketch\getirl.h: In function 'void getirl()':
getirl.h:102:47: error: 'newMode' was not declared in this scope
ledMode = newMode;
^
exit status 1
'newMode' was not declared in this scope
Возникает когда я подключаю кнопку: #define KEY_GYVER_ON 1
Если #define KEY_GYVER_ON 0
то ошибки нет.
Хочу что бы сенсорная кнопка заработала, но что то не выходит (
Подобные ошибки были неделю назад (при отключении пульта) и были исправлены.
Попробуйте скачать заново скетч.
Я скачал у меня ошибок нет
Добрый вечер. Помогите разобраться, это скетч notamesh4.2_(Biblio)? Дело в том что связка нано+ws2812 при использовании этого скетча не дает такого эффекта…
А так это notamesh4, 1) не правильно настроена гирлянда, зеленый поменян с красным, палитра не меняется на всем протяжении видео.
Добавлен только бегущий огонь (плюс и старше) в библио сменил палитры (добавил и зеленые закомментировал)
если надо соответствия, то
1) разложите также гирлянду змейкой
2)настройте неправильно цвета (зеленый поменять с красным)
3) пультом поищите эффекты
4) смотрите на гирлянду через фотоаппарат
тест на правильность можно еще 3 способами проводить
включить красный цвет, включить зеленый цвет, войти в режим настройки
Кстати поздравляю с вашей работой, выглядит красиво.
То что я говорил что настроено не правильно, это ответ на вопрос priormen
ваш ответ разубедил меня
.
При определенных условиях нана тянет 400 светодиодов
Arduino: 1.8.16 (Windows 10), Плата:«Arduino Nano, ATmega168»
In file included from D:\Projects\GyverGirland for ArduinoNano 168\notamesh168\notamesh168.ino:140:0:
rainbow_beat.h:14:2: error: #endif without #if
#endif
^~~~~
In file included from D:\Projects\GyverGirland for ArduinoNano 168\notamesh168\notamesh168.ino:141:0:
blendwave.h:23:2: error: #endif without #if
#endif
^~~~~
In file included from D:\Projects\GyverGirland for ArduinoNano 168\notamesh168\notamesh168.ino:142:0:
fire.h:58:2: error: #endif without #if
#endif
^~~~~
exit status 1
#endif without #if
Что делать — не пойму. Кто поможет?!
PS: недавно переустановил Ардуино IDE
Это глюки новой среды разработки Arduino IDE
В первой строчке #ifndef убрал с нова ввел знак #.
В Arduino IDE строка с черного цвета сменилась на темно-зеленый. Поправил во всех библиотеках, которые выдавали ошибку. Скетч скомпилировался и залился в Ардуину. Все заработало.
Ура! Новый год получится!!!
Глобальные переменные используют 809 байт (39%) динамической памяти, оставляя 1239 байт для локальных переменных. Максимум: 2048 байт.
Произошла ошибка при загрузке скетча
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xa6
Помогите пожалуйста, что это за ошибка?
Компиляция прошла без ошибок, а загрузка в устройство не удалась, вы выбрали загрузку через ДУДУ
Если у вас воткнут контроллер в компьютер по usb то возможно драйвер не установлен, должен появится COM порт
вот такая ошибка, есть ли ей решени? зарядил notamesh4Gyver все работает, но только 255 св верхушка елки не работает
Arduino: 1.8.16 (Windows 10), Плата:«Arduino Nano, ATmega328P»
In file included from C:\Users\denis\Desktop\notamesh3\notamesh3.ino:232:0:
rainbow_beat.h:14:2: error: #endif without #if
#endif
^~~~~
In file included from C:\Users\denis\Desktop\notamesh3\notamesh3.ino:236:0:
blendwave.h:23:2: error: #endif without #if
#endif
^~~~~
In file included from C:\Users\denis\Desktop\notamesh3\notamesh3.ino:237:0:
fire.h:57:2: error: #endif without #if
#endif
^~~~~
exit status 1
#endif without #if
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
У вас все нормально, там где ошибка, идем вверх открытого текста и стираем самый верхний первый символ # в строке #if и пишем его заново, и все…
Это глюки новой среды разработки Arduino IDE
Подробнее о процессе изготовления под спойлером
На этом этапе стразу понял, что гайвер сделал лишь разовую оптимизацию прошивки в своей самоделке без дальнейшей её поддержки и доработке (однако спасибо алексу за билиотеки GyverButton и GyverTM1637), а некий автор с ником dmitrybik ведет достаточно давно проект гирлянды на ардуинке, выпустил несколько версий прошивок и до сих пор помогает людям с их вопросами и просьбами.
Изначально как только первый раз прочитал страницу с проектом Дмитрия планировал делать управление через ик-пульт, но чем больше я погружался в изучение темы, тем меньше мне хотелось его использовать. Во-первых нужно иметь отдельный путь, т. к. пульт от основного телика где стоит ёлка постоянно будет конфликтовать. Во-вторых — кривая совместная работа библиотек IRremote и FastLED из-за их плохой совместимости. Поэтому решил делать на 4х тактовых кнопках, на одной кнопке как у алекса я делать не хотел, т.к. при таком обилии эффектов и функций это совсем неудобно. Далее меня ждало 2 часа увлекательного чтения всех комментариев к посту проекта. Там я наткнулся на комментарий пользователя avtopilot1
который реализовал работу дисплея TM1637, за что ему спасибо, а также спасибо Дмитрию, что добавил в проект. Я сразу понял — это то, что мне нужно, ведь эффектов много практически все они интересные, однако у каждого наверняка есть 5-7 эффектов самых любимых, как установить нужный если даже не знаешь какой номер сейчас запущен? Благодаря дисплею можно видеть номер текущего эффекта, и переключение на нужный другой, стало очень удобным.
Далее стояла задача как компактно, удобно и красиво разместить в корпусе все компоненты. Использовать какой либо готовый подручный корпус не решал ни одно из моих требований. Поэтому решил спроектировать корпус и в дальнейшем распечатать его на 3D принтере. Корпус получился из двух частей, в одной саморезами крепится дисплей, на другой ардуинка и кнопки. Цвет пластика красный (какой был), что не в тему, покрасил в зеленый, так смотрится по лучше. По итогу блок управления получился как и хотел компактный (49х63х18 мм габариты), удобно лежит в руке. Далее настроил под себя управление, на поиск оптимальной и удобной конфигурации ушел месяц, очень много вариантов перепробовал, конечный вариант зафиксировал в своей некой инструкции.
Далее пришла идея отразить инструкцию на самом корпусе, с помощью лазерной маркировки/гравировки, теперь мануал всегда под рукой, и если нужно поменять настройки гирлянды то не нужно искать бумажный вариант. Поместились кстати почти все команды.
Потом пришла еще одна идея по поводу размещения блока управления на самой гирлянде. Изначально собирался сделать по типовому варианту расположив её сразу после блока питания, но так неудобно переключать эффекты, ведь каждый раз нужно наклонятся под елку. Суть идеи в том, что я сделал от блока управления к началу гирлянды хвост длиной 1,4 м, 90 см я вплел по направлению гирлянды (от БП к вершине), оставшиеся 50 см просто отвел в сторону, сделал как отросток. После намотки гирлянды на елку этот отросток я вывел на удобную высоту (у меня получился 1 м от пола), и его конец прикрутил проволочкой к ветке ёлки. Стоя переключать стало удобно, не нужно наклонятся
По итогу, результат впечатлил, ёлка просто бомба, жена в восторге, друзья и родственники открывают рты))). Эффекты все без исключения интересные(хотя некоторые очень схожи), а некоторые из них просто «пушка».
Фотоотчёт:
Спасибо Дмитрию за большую, продуктивную работу и поддержку проекта по сей день, а также всем кто подкидывал и реализовывал идеи, Вы многим повысили новогоднее настроения и доставили радость. Теперь когда видишь обычные гирлянды (с 8мью эффектами которые с 2000-ных не изменились даже), понимаешь насколько они скучные, примитивные и не радуют.
Всем хорошего новогоднего настроения и с наступающим 2022 годом!
Видео некоторых эффектов:
В ближайшее время собираюсь сделать свою библиотеку кнопок, чтобы задействовать комбинации кнопок, то есть, например, удержание первой и 3 клика второй
Времени на разбираться уже особо нет)
последние скетчи под схему Гайвера
и тоже самое но с полным списком команд
есть тоже самое под ESP32 но с bluetooth
новее нет
будут вопросы отвечу
notamesh4.2 biblio
0,8,20,7,2,31,65,14,6,82,27,41,39. Если нужен скетч, пишите email, скину. Хотя прошивка для всех одинаковая)))
Я бы вам рекомендовал потратить пол часа времени и в режиме порта отсмотреть все эффекты желательно в тёмное время суток, возможно для себя вы найдете ещё «бомбических эффектов» их и пропишите в MY_MODE
Проект на нане, без кнопок и без пульта. Хотелось бы программным способом обойтись.
или чтобы гирлянда светила белым без эффектов
или чтобы мигала но белым ( от черного до бегого)?
Сразу говорю, делал быстро, поэтому только 70% эффектов черно белые
содержимое архива кидаем в скетч с заменой
Принцип такой, где используется палитра там будет чернобелый «Цвет»
нужные режимы запишите в MY_MODE и будет счастье
Можно сделать также например все желтое или синие
P.S. Да, это то самое, что я и хотел, дальше думаю сам разберусь, ещё раз большое спасибо от меня и от всех участников данного проекта. С наступающим НОВЫМ ГОДОМ!!!
А вот если в команды управления добавить одну и туже команду от кнопки и пульта?
Сработает?
Например:
#define Command_Demo_Random_Select 0xFF6996 // Info // Включит демо режим (Случайно) из выбранных
#define Command_Demo_Random_Select BTN2_1 // Info // Включит демо режим (Случайно) из выбранных
для Command_Demo_Random_Select
строки эти строки надо вставить в файл getirl.h после строк это где-то 160 строка
и тогда Ваши строки будут
Собрано из 9-ти гирлянд по 90 адресных диодов. Применял ленты ws2812b, 60 smd на метр. Выход Ардуины нагрузил на буферный повторитель с инверсией 74hc04 (аналог к561лн2) на вход первого буфера, выход первого буфера на 3 и входа последующих буферов параллельно, их выхода подключил на прямую, каждый с 3 мя параллельно включенными входами светодиодных лент. Еще раз огромное спасибо Дмитрию за его отзывчивость и желание помогать людям нести праздник в Новогодний дом.
На следующий год думаю перейти на проект Дмитрия с использованием ESP32, есть новые задумки.
Мои настройки следующие:
#define BLACKSTART 0 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
#define GLITER_ON 1 // Включить блеск 0 — блеск отключен, 1- блеск включен
#define CANDLE_KOL 0 // если больше 0 то будут включена имитация свечей
// число задает через какое расстояние друг от друга располагать свечи
#define CANDLE_ON 0 // Если включена имитация свечей то 1 = при запуске она будет включена
// 0 = при запуске она будет выключена
#define CANDLE_40 1 // Управление 40 эффектом (свечи) 1 = при запуске она будет включена по варианту efimova1969
// иначе при запуске она будет включена по моему варианту
#define BACKGR_ON 1 // Включить заполнение черного цвета фоном 1 — синий фон, 2 — зеленый, 3 — красный
// если стоит SAVE_EEPROM 1, то параметр хранится в EEPROM и запоминается в момент сохранения настроек
#define DEMO_MODE 3 // Режим при включении
// 0 — последняя запущенная программа
// 1 — демо режим с последовательным перебором эффектов
// 2 — демо режим с случайным перебором эффектов
// 3 — демо режим с последовательным перебором выбранных эффектов
// 4 — демо режим с случайным перебором выбранных эффектов
#define MY_MODE 2,3,5,6,7,8,9,14,15,17,18,22,24,26,27,30,\
31,35,41,47,53,82,91,117,122
Arduino: 1.8.19 (Windows 7), Плата:«Arduino Nano, ATmega328P (Old Bootloader)»
In file included from C:\Users\Алексей\Desktop\notamesh4plus\IRremote.h:24:0,
from C:\Users\Алексей\Desktop\notamesh4plus\notamesh4plus.ino:169:
C:\Program Files (x86)\Arduino\libraries\IRremote-3.5.2\src/IRremoteInt.h:39:2: error: #error Seems you use #include IRremoteInt.h in a file not containing main(). Please define RAW_BUFFER_LENGTH with the same value as in the main program and check if the macros IR_SEND_PIN and SEND_PWM_BY_TIMER are defined in the main program.
#error Seems you use #include IRremoteInt.h in a file not containing main(). Please define RAW_BUFFER_LENGTH with the same value as in the main program and check if the macros IR_SEND_PIN and SEND_PWM_BY_TIMER are defined in the main program.
^~~~~
exit status 1
Ошибка компиляции для платы Arduino Nano.
Что с этим можно сделать?
если надо все же использовать, тогда ответ тут
Arduino: 1.8.19 (Windows 7), Плата:«Arduino Nano, ATmega328P (Old Bootloader)»
In file included from C:\Users\Алексей\Desktop\notamesh4plus\notamesh4plus.ino:333:0:
C:\Users\Алексей\Desktop\notamesh4plus\getirl.h: In function 'void getirl()':
getirl.h:775:11: error: duplicate case value
C:\Users\Алексей\Desktop\notamesh4plus\getirl.h:34:11: note: previously used here
exit status 1
duplicate case value
Спасибо за предыдущий оперативный ответ!
Здоровья, счастья, удачи!!!
Спасибо тем кто повторил танный проект, для вас старался, чтобы ваши успехи в освоении электроники и микроконтроллеров были очередной ступенькой, чтобы вы смогли себе сказать, я смог…
Спасибо тем кто подержал меня финансово, значить будем продолжать развивать этот проект.
Впереди поддержка WiFi (модули закуплены, жду посылку.)
И как уменьшить время между загрузкой когда на дисплее 255 и началом первого эффекта?
2) войти в режим настройки (первый светодиод)
3) включить красный Цвет
4) запустить пример из FastLed
Уменьшу время в следующем обновлении (выйдет на днях)
У меня лента с WS2812.
Дело в том что перед новым годом случайно подключил 12 вольт вместо 5 и как я понял все сгорело.
Купил новую ленту но в ничего не светит, подключил ардуину к компу выдает ошибку по usb (наверно и в ардуино что то сгорело)
Поэтому решил ходьбы саму ленту проверить. При подачи на прямую 5 вольт без среднего контакта не светится, про подачи на сгоревшую ленту светится из 150 диодов один, может я не правильно проверяю или вообще так нельзя( Заранее спасибо.
1 подключаем 5 вольт (GND и 5 В) ( идеально бы померить ток должно быть гдето 0,2- 0,8 А не более, если ток нечем измерить то меряем напряжение, должно быть 5 вольт ну в крайнем случае не меньше 4,5 вольт
2) подключаем ардуинку как обычно но пин управления подключаем на длинный провод, им будем проверять
3) метод быстрой сортировки такой, делим ленту пополам и тыкаем в средний контакт по середине ленты, если с середины заработает то первую часть делим пополам и проверяем также, если не заработает по середине,, то делим вторую половину пополам и проверяем также.
Значит подав просто (GND и 5 В) она не должна работать без среднего контакта.
Попробую так проверить, только куплю новую ардуину так как поя не подключается к компу.
У меня правда лента вся запаянная типа вода не проницаемая и залита каким-то материалом(
Закрытая, в оболочке, и пр. тоже не проблеме, протыкайте иглой(тоненькой), к игле уже подсоединяете провод от среднего контакта
Зарегился чтоб поделиться впечатлениями и опытом. В общем сделал гирлянду для ребёнка, работает с одной кнопкой и без пульта. Всё бы хорошо, только проблема с зависаниями очень надоела. Подключено 240 светодиодов WS2812b на нано. Какие только настройки не менял, и советы все перепробовал, всё равно висла на интересном эффекте начинающемся с белого и заканчивающимся обрывками зелёного (скорее всего огонь, но цвета не совпадают). В итоге поменял в последний раз ток на 1,5А при этом яркость не упала. Блок на 3,4 и его хватает, и даже вернул параметр шума на 200. НГ и +2 дня работает без зависаний.
Большая благодарность автору за хороший проэкт, который он ен бросает. Добра Вам!
Две причины зависания:
1) Не заведен отдельный, хороший провод от блока питания до контроллера, при снижении напряжения меньше 4 вольт контроллер зависает (особенно когда включаются все светодиоды)
2) на эффектах 22 и 37, для этого есть параметр подробно описано тут
Включите лог, и в мониторе все видно будет
Как можно плавно зажигать и потом также плавно тушить гирлянду(на ws2812b) при заранее предустановленной яркости примерно 20 процентов?
Хочу такую гирлянду поместить в звезду на верхушку, что бы она пульсировала.Скетч наверное простой, но я ещё не очень разбираюсь как это сделать.
А если отдельным проектом, то где можно посмотреть пример скетча плавного зажигания и затухания ленты?
ну примеров работы с библиотекой FastLed много, управлением яркостью осуществляется командой , где Х значение яркости (0т 0 до 255) 0 — выключено, 255 максимальная яркость
Смотрите примеры и ищите эту строку
Вы хороший человек!
.С вариантом 4 плюс уже второй Новый год гирлянда на ёлочке моргает.Захотел анимировать и верхушку, вот и возник вопрос.Тему не перечитывал.
Из стремления
прошивка гайвера на нано будет поддерживать 500 светодиодов (оптимизирую с сохранением функционала)
будет уделено внимание эффектам на звезде, так как в следующем году у меня звезда на елке будет на ws2811
написал свою библиотеку кнопок до 6 кнопок до 15 кликов и удержаний любыми вариантами. одновременных комбинаций
переход с эффекта на эффект более правильный без залезания эффектов друг на друга
Реальное управление скоростью эффектов
Делаю сайт, где каждому варианту настройки отдельная страница, там же будет форум, иначе тут уже свалка
И многое многое,
Часть уже из вышеперечисленного реализовано, часть проходит тестирование
Arduino: 1.8.13 (Windows 7), Плата:«Arduino Nano, ATmega328P (Old Bootloader)»
In file included from E:\АРРДУИНО\Новогодняя гирлянда\notamesh4.2_(Biblio)\notamesh4Biblio\_main.ino:22:0:
C:\Users\�������������\Documents\Arduino\libraries\FastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.008
# pragma message «FastLED version 3.001.008»
^~~~~~~~~~~~~~~~~~~~~~~~~~~
text section exceeds available space in boardСкетч использует 31350 байт (102%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1007 байт (49%) динамической памяти, оставляя 1041 байт для локальных переменных. Максимум: 2048 байт.
Скетч слишком большой; прочитайте www.arduino.cc/en/Guide/Troubleshooting#size
Ошибка компиляции для платы Arduino Nano.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
настройка вершины тут
Пользуйтесь поиском по тексту Ctrl F
Тольклько у меня в настройках вершины нет последней сроки в коде
и независимо что прописываю 1 или 2, вершина определяется постоянно в конце гирлянды.
либо с шапки либо тут (все ведет на последний архив)
#define IR_ON 1 // Если равен 1 используется пульт библиотеки IRremote
exit status 1 ошибка компиляции для платы arduino nano.
Если #define IR_ON 0 // Если равен 1 используется пульт библиотеки IRremote
все компилируется. Может кто-то сталкивался с этим явлением? Подскажите где у меня ошибка. Спасибо.
youtu.be/nxLPdmlcb-k
У вас он двухмерный (можно сказать прямоугольная форма намотки гирлянды) в этом случае можно формировать изображения и выводить текст
Я знаю только 2 проекта это
1) матрица Гайвера (на ее основе сделаны много проектов, лампа Гайвера, окно Гайвера, Портфель Гайвера и др) Очень много людей, которые добавляют в этот проект свои эффекты (в лампе гайвера я насчитал больше 100) то что вы показали это и есть матрица Гайвера
2) проект на основе jinx
Появятся у меня что то подобное? да, на балконе ведь работает, но когда конкретно не скажу, нет времени
Если мне память не изменяет Каждый новый эффект прописывается строкой в switch case и плюс увеличивается константа количества эффектов. но это не точно (проект все же не мой)
можно также выставить ток поменьше
в файле скетча меняем параметр тока блока питания например на 500, это будет пол ампера, как раз для питания от USB
Итак по порядку. Скачиваем последний скетч там 2 ссылки, отличаются только настройками, Библио лучше, там информация полнее, поэтому я расскажу на ее основе, скетч гайвера настраивается аналогично.
Все настройки находятся в файле notamesh4Biblio.ino для Библио и в файле notamesh4Gyver.inoдля версии Gyver
идем в раздел Параметры кнопок подключенных к библиотеке GyverButton
Теперь выставляем соответствие действий нажатиям кнопкам, идем в раздел Все команды которые обрабатывает скетч
Для выставления команды пишем вместо 0 слово BTN1_2 должно получится так:
После этого обязательно проверяем отсутствие команд, где встречается также BTN1_2, кроме той что мы написали, если такие строки есть, то в них надо BTN1_2 заменить на 0
Или вообще удалить как сделано в скетче Gyver, Там все команды удалены, оставлены только работающие
Если есть еще вопросы, спрашиваем
Настройка аналоговых кнопок
Итак по порядку. Скачиваем последний скетч там 2 ссылки, отличаются только настройками, Библио лучше, там информация полнее, поэтому я расскажу на ее основе, скетч гайвера настраивается аналогично.
Все настройки находятся в файле notamesh4Biblio.ino для Библио и в файле notamesh4Gyver.inoдля версии Gyver
первое включаем кнопки
второе, ищем раздел настройки аналоговых кнопок
третье, тут выставляем правильно пин
четвертое, включаем лог, компилируем, загружаем прошивку, включаем монитор порта. нажимаем кнопки поочереди и смотрим значения в логе и заполняем код
запоминаем имена KEY_1, KEY_2, KEY_3,… имена тех кнопок, которые вы используете
пятое, Теперь выставляем соответствие действий нажатиям кнопкам, идем в раздел Все команды которые обрабатывает скетч и делаем по аналогии как описано для кнопок гайвера, только вместо BTN1_1, BTN1_2, BTN1_3, ставим KEY_1, KEY_2, KEY_3, ....
Интересные ссылки
— Описание, как настроить кнопки на нужные команды
название пинов я смотрю так: в поисковике пишу "распиновка nano ардуино" там картинок много
Есть просто кнопка она включается в любой пин хоть D хоть в A, для этого используется библиотека гайвера GyverButton.
Подтягивающий резистор ей идеально нужен, но не обязателен (внутри микроконтроллера он есть и его можно включить)
вот схема
Но тут получается одна кнопка один вывод микроконтроллера
Когда выводов мало, а кнопок подключить хочется много, то можно подключить аналоговые кнопки, но обязательно во вход A Кнопки подключаются через резисторы, схем подключения много, например
Да вершина одним цветом, это все таки гирлянда на елку, вершина обычно звезда или снежинка (красная или синяя) Если сделать перемигивание, то мне кажется будет выглядеть непонятно.
Но я подумаю, может сделаю другие режимы вершины.
Смена палитры это про вершину?, а так на основной гирлянде, есть смена палитры
в описании темы есть строки
Если вам очень понравился проект, и хотите его развития, можете отблагодарить автора
Проверяйте, как работает ссылки обновил
// 0 — не определена 1 — Вершина в начале гирлянды 2 — Вершина в конце гирлянды
#define TOP_LENGTH 0 // Выделять вершину цветом 0 — не выделять, больше 0 сколько светодиодов выделять в вершине
#define TOP_COLOR CRGB::Red // Цвет выделения вершины
#define TOP_EFFECT 1 // 0 — Просто залить цветом, 1 — случайное переливание, 2- переливание сверху вниз 3- переливание снизу вверх
#define TOP_DELAY 150 // Задержка эффекта в милисекундах
#define TOP_FADING 5 // Затухание
#define TOP_GLITER_ON 0 // Разрешать блестеть вершине
#define BLACKSTART 0 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
#define GLITER_ON 0 // Включить блеск 0 — блеск отключен, 1- блеск включен
// если стоит SAVE_EEPROM 1, то параметр хранится в EEPROM и запоминается в момент сохранения настроек
#define CANDLE_KOL 0 // если больше 0 то будут включена имитация свечей
// число задает через какое расстояние друг от друга располагать свечи
#define CANDLE_ON 1 // Если включена имитация свечей то 1 = при запуске она будет включена
// 0 = при запуске она будет выключена
// если стоит SAVE_EEPROM 1, то параметр хранится в EEPROM и запоминается в момент сохранения настроек
#define CANDLE_40 1 // Управление 40 эффектом (свечи) 1 = при запуске она будет включена по варианту efimova1969
// иначе при запуске она будет включена по моему варианту
#define BACKGR_ON 2 // Включить заполнение черного цвета фоном 1 — синий фон, 2 — зеленый, 3 — красный
// если стоит SAVE_EEPROM 1, то параметр хранится в EEPROM и запоминается в момент сохранения настроек
#define DEMO_MODE 3 // Режим при включении
// 0 — последняя запущенная программа
// 1 — демо режим с последовательным перебором эффектов
// 2 — демо режим с случайным перебором эффектов
// 3 — демо режим с последовательным перебором выбранных эффектов
// 4 — демо режим с случайным перебором выбранных эффектов
#define MY_MODE 0,1,2,4,5,9,10,11,14,16,17,18,19, \
21, 22, 28, 30, 32, 34, 36, 37, 38
//Выбранные эффекты пишутся номера через запятую,
// можно писать и одинаковые что актуально в демо 3
// Если закомментировать, то демо 3 и 4 отключаются
#define DEMO_TIME 60 // Время отображение эффекта в демо режиме в секундах
#define CHANGE_ON 0 // Включить плавную смену эффектов
#define CHANGE_SPARK 4 // Эффект смены 0 — без эффекта, 1 — искры (бенгальский огонь) 2 — яркий свет
// 3 — метеорит, 4 — случайный эффект (из 1-3)
#define CHANGE_TIME 7 // Время в секундах, за которое произойдет плавная смена эффектов
#define DIRECT_TIME 20 // Через сколько секунд менять направление если 0 — не меняем
#define PALETTE_TIME 30 // Через сколько секунд менять палитру если 0 — не меняем
#define PALETTE_SPEED 20 // скорость перехода с одной палитры в другую (1- 48)
#define DEV_NOISE16 100 // если Зависает на 22 и 37 режимах, то уменьшаем число
#define SAVE_EEPROM 2 // Сохранять настройки запуска в EEPROM
// 0 — ничего не хранить
// 1 — хранить стартовый режим, длинна гирлянды, скорости и расширенные настройки
// (очередность цвета, состояние блеска, фона, свечей)
// 2 — хранить стартовый режим, длинна гирлянды, скорости
#define TOP_POSITION 2 // Позиция вершины елки (используется только в эффекте огня)
// 0 — не определена 1 — Вершина в начале гирлянды 2 — Вершина в конце гирлянды
#define TOP_LENGTH 4 // Выделять вершину цветом 0 — не выделять, больше 0 сколько светодиодов выделять в вершине
#define TOP_SET_COLOR 1 // Установка цвета выделения вершины 0 — цвет брать из TOP_COLOR, 1 — Цвет брать из палитры заданной в TOP_PALETTE, 2 — Цвет брать из общей палитры гирлянды
#define TOP_COLOR CRGB::Red // Цвет выделения вершины
#define TOP_EFFECT 3 // 0 — Просто залить цветом, 1 — случайное переливание, 2- переливание сверху вниз 3- переливание снизу вверх
#define TOP_PALETTE 7 // Номер палитры с которой будем брать цвет для вершины Номер берется или из лога или из файла gradient_palettes.h вконце есть массив const TProgmemRGBGradientPalettePtr gGradientPalettes[] номер по счету, первый элемент начинается с 0
#define TOP_DELAY 150 // Задержка эффекта в милисекундах
#define TOP_FADING 5 // Затухание
#define TOP_GLITER_ON 0 // Разрешать блестеть вершине
1. Включаем лог и сами переключаем и записываем на бумажку то что нравится
2. посмотреть на видео
3. чисто технически список эффектов находится в файле _main.ino где то на 680 строке
Может для вашего проекта надо использовать дистанционный пульт и с него менять цвета?
Или перейти на ESP32, там все управление с телефона по bluetooth
Выбираешь режимы которые тебе не нравятся и вместо них вставляешь строку
ledMode = 255; solid = CRGB::Green;
Например 39 режим тебе не нравится тогда вместо вставляем строку
solid = CRGB::Green задается цвет, в данном случае зеленый, CRGB::Red — это красный
Версия для Nano
Как можно программно уменьшить скорость? Более плавнее.
Уделите пожалуйста пару минут на доработку скетча.
С уважением Евгений Боллингер FRG (Germany)
За скорость эффектов отвечает переменная thisdelay.
В файле _main.ino есть где-то в районе 670 строки есть код
С наступающим Новым Годом!!!, Дед Мороз Бикин Дмитрий, СССР (Советский Союз) )))
пульты какието…
esp32s2 mini
дешевле в разы
быстрее в разы
памяти овер много (макс под эффекты 1.5 процента ушло )
управляется по всякому с телефона(нафик пульт)
да хоть по инету
и самое важное гирлянда летает просто(приходится задержку делать)
адресная лента на 256 диодов…
на окне одна другая на елке
имеют свои имена во внутренней сети дома
работает в среде ардуино
тоесть скетч лего компилится от ардуинки
Проект поддерживает ESP. и компилируется нормально
Есть и конкретно развитие под esp32 проект
просто народ мучается с этой атмелкой древней
пора переходить на более быстрые контроллеры со встроенной вафлей
Я к примеру на Lolin S2 Mini собирал
и на елку и на окно гирлянду
сам приложуху на андроид через сайт сборщик написал
обе гирлянды интегрированы в домашнюю сеть
сенсор из коробки wifi из коробки rtc тоже
ну и зачем атмелка?
тем более чем больше светодиодов тем больше тормоза
да и памяти поболее
часть эффектов стырено у гоувера часть с других языков стянуто
и все равно пол памяти пусто…
Кому надо могут использовать ESP8266, она еще дешевле вашей или ESP32, как у вас
Прошивки все есть на одно сообщение выше, я выкладывал,
То что Вы сделали, хорошо, я вас поздравляю, Когда чтото сделано своими руками оно всегда приятно
К сожалению максимально далек от программирования (
Есть вопрос по палитрам. Выбрал нужные эффекты, они крутятся по кругу, но смена палитр не особо нравиться, некоторые бледноваты и скучноваты. Можно как то исключить часть палитр?
Мой вариант гирлянды )
1, как исключить
ищем файл gradient_palettes.h в конце есть таблица
2, как добавить
ищем файл gradient_palettes.h в конце есть таблица, перед таблицей есть код вида
DEFINE_GRADIENT_PALETTE( my_Flag_gp ) здесь ставится название палитры (название в скобочках, для данного примера my_Flag_gp )
в скобочках {} находятся числа сгруппированных по 4 числа разделенных запятыми (в конце запятая не ставится.
первое число, это точка в палитре может быть в диапазоне от 0 до 255 где 0 начало палитры, 255 — конец палитры.
Остальные три числа это значение красного цвета, зеленого цвета, и синего цвета где 0- нет цвета 255 максимально яркий цвет
Значения цвета точки можно найти в яндексе/гугле по запросу RGB значение цвета
По данному примеру палитра будет такая
с 0 по 78 будет красный цвет RGB (255,0,0)
с 83 по 168 будет синий цвет RGB (0,0,255)
с 173 по 255 будет белый цвет RGB (255, 255, 255)
с 78 по 83 будет плавный переход с красного на синий
с 168 по 173 будет плавный переход с синего на красный
Если чтото есть, скиньте сюда строчек 5-10
Теперь для скетча notamesh4.3_(Bluetooth) делаем следующее
Открываем файл notamesh4.3.ino в конце есть список команд вида
В вашем случае, те коды, которые получили в логе, необходимо добавить в нужную команду.
Например, если на пульте кнопка, которую вы ходите использовать как переход на следующий режим, в логе выдает код 0xFF609F, то мы этот код должны вставить в команду
С этим и не работает. Меня больше смущает сообщение The function decode(&results)) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData..
Разработчик IRremote в очередной раз сделал пакость: сделал версию 3.0 которая выросла в объеме и больше не влезает в Nano, приходится что то отключать
на тест выставляю версию скетча, где есть возможность выбора какая версия IRremote используется, за это отвечает строка Если ставим 1, будет использоваться версия IRremote 3, если ставим 2 то все будет по старому IRremote 2
С отключенным логом в нану влезает версия 3
Могу предложить использовать 2 версию.
У меня получилось для теста включить лог с 3 версией библиотеки на нано, пришлось только количество диодов сократить до 10 и отключить GyverButton
Строка The function decode(&results)) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData. не мешает работе, она выводится только один раз, мое устройство работает
И еще в вашем логе при нажатии кнопки 0xFF728D исполнилась команда Solid_Violet
Добавлена поддержка IRremote версии 3
Если вам надо именно к этой плате добавить модуль Bluetooth, то это можно сделать только пожертвовав какие то эффекты
Коль вы пришли. Помогите, уже бесит все.
не компилируется. выдаёт ошибку постоянно: на строке #elif BACKGR_ON >0
leds[i].b +=CRGB(5,5,5);
In file included from C:\Users\Bugaev\Desktop\notamesh4Biblio\_main.ino:239:0:
C:\Users\Bugaev\Desktop\notamesh4Biblio\addings.h: In function 'void addbackground()':
C:\Users\Bugaev\Desktop\notamesh4Biblio\addings.h:52:21: error: no match for 'operator+=' (operand types are 'uint8_t {aka unsigned char}' and 'CRGB')
leds[i].b +=CRGB(5,5,5);
~~~~~~~~~~^~~~~~~~~~~~~
C:\Users\Bugaev\Desktop\notamesh4Biblio\addings.h:52:21: note: candidate: operator+=(uint8_t& {aka unsigned char&}, int) <built-in>
C:\Users\Bugaev\Desktop\notamesh4Biblio\addings.h:52:21: note: no known conversion for argument 2 from 'CRGB' to 'int'
C:\Users\Bugaev\Desktop\notamesh4Biblio\addings.h:52:21: note: candidate: operator+=(uint8_t& {aka unsigned char&}, long unsigned int) <built-in>
C:\Users\Bugaev\Desktop\notamesh4Biblio\addings.h:52:21: note: no known conversion for argument 2 from 'CRGB' to 'long unsigned int'
exit status 1
Compilation error: no match for 'operator+=' (operand types are 'uint8_t {aka unsigned char}' and 'CRGB')
Сил нет. Тлен.
Либо откатить ее назад
Либо в файле addings.h
Заменить
Arduino nano, скетч notamesh4.2_(Biblio), спаял последовательно 2 гирлянды на SK6812 по 50 диодов в каждой…
Работает только первая. У Вас было решение для ESP32, а вот для Arduino nano, что надо сделать, что бы работали обе гирлянды?
Попробую сделать.
Я правильно понял, что сигнал на управление второй гирляндой надо брать с того же, пина D6, что и для первой?
Нет, там как раз на оборот выделяются для каждого отрезка свой пин
Для первой гирлянды свой и для второй свой в скетче надо выбрать эти пины
Контроллер первую. часть светодиодов выводит на первый пин, оставшуюся часть выводит на второй пин
и физически вторая гирлянда будет продолжением первой
Я вам сюда скину скетч с доделками сюда но чуть погодя
понедельник вторник (я какраз буду в Барнауле в командировке и будет свободное время)
У одной шина управления звонится на всю длину, а у второй нет.
Причём вторая, в гирлянде Гайвера, работала только если установить количество светодиодов 100 шт., а в ленте их 50.
Вот теперь пытаюсь их заставить работать вместе.
Я в командировках, временные зоны меня доканают, в воскресенья я лечу во Владивосток
Настройка такая же как описана в ESP32
Если есть вопросы пишите
Решил перезалить скетч с Уно на Нано
вылезла ошибка:
In file included from E:\Arduino\Projects\Гирлянда\проект 1\notamesh4.1_(plus)\notamesh4plus\notamesh4plus.ino:171:0:
IRremote.h:81:19: error: redeclaration of 'UNKNOWN'
С:\....\Arduino\libraries\IRremote\src/IRProtocol.h:40:5: note: previous declaration 'decode_type_t UNKNOWN'
UNKNOWN = 0,
^~~~~~~
С:\....\Arduino\libraries\IRremote\src/IRProtocol.h:62:3: note: previous declaration as 'typedef enum decode_type_t decode_type_t'
} decode_type_t;
^~~~~~~~~~~~~
In file included from E:\Arduino\Projects\Гирлянда\проект 1\notamesh4.1_(plus)\notamesh4plus\notamesh4plus.ino:171:0:
IRremote.h:129:7: error: redefinition of 'class decode_results'
In file included from E:\Arduino\Projects\Гирлянда\проект 1\notamesh4.1_(plus)\notamesh4plus\IRremote.h:24:0,
from E:\Arduino\Projects\Гирлянда\проект 1\notamesh4.1_(plus)\notamesh4plus\notamesh4plus.ino:171:
C:\...\Arduino\libraries\IRremote\src/IRremoteInt.h:116:8: note: previous definition of 'class decode_results'
struct decode_results {
^~~~~~~~~~~~~~
In file included from E:\Arduino\Projects\Гирлянда\проект 1\notamesh4.1_(plus)\notamesh4plus\notamesh4plus.ino:171:0:
IRremote.h:149:7: error: redefinition of 'class IRrecv'
In file included from E:\Arduino\Projects\Гирлянда\проект 1\notamesh4.1_(plus)\notamesh4plus\IRremote.h:24:0,
from E:\Arduino\Projects\Гирлянда\проект 1\notamesh4.1_(plus)\notamesh4plus\notamesh4plus.ino:171:
C:\....\Arduino\libraries\IRremote\src/IRremoteInt.h:167:7: note: previous definition of 'class IRrecv'
class IRrecv {
^~~~~~
typedef
enum {.
UNKNOWN = -1,
RC5,
RC6,
NEC,
SONY,
PANASONIC,
JVC,
SAMSUNG,
WHYNTER,
LG,
DISH,
SHARP,
DENON,
LEGO_PF,
..}
отметил по которым ошибка появляется.
заменял библиотеки с этого поста, а также пробовал почти все версии которые есть у автора. ничего не помогает, и ардуину ИДЕ ставил и 2.0 и 1.18 и переустанавливал обеи — результат один и тот же.
год назад делал — работало. сейчас нет.
Подскажите где исправить
Надо почистить
поставил с нуля IDE 2.0
в ошибках оставил для пульта NEC
когда было несколько библиотек IRemote в логе показывало, что их две и какая используется. сейчас одна, а результат тот же. ошибки по пульту, причём не по всему списку, а по некоторым
Описано в шапке
Появлюсь у компьютера, проверю
или опять разработчик IRremote внес проблему, тогда надо откатить его не версию
Многие накалываются, добавлю в основной скетч.
Если вкратце, надо для каждого отрезка свой пин Скетч автоматически из объединить.
До воскресенья сделаю
сколько у вас всего гирлянд по 50 светодиодов?
И попробуйте еще подключится не к последнему светодиоду в гирлянде а к вред последнему, может в этом дело, на последнем стоит заглушка
После вашего от вета по количеству гирлянд, подкорректирую скетч
есть вариант поиграть с параметром change_time в файле _main.ino попробовать или удалить
if (change_time < 20) change_time = 20;
или поменять на if (change_time < 10) change_time = 10;
в ней есть коррекция подробнее тут
для скетча можно прописать в конце функции Setup вместо TypicalLEDStrip можно ввести свою коррекцию
В шапке описано
Увидел, что вы так и сделали
In file included from C:\Users\punkm\Desktop\notamesh4plus\notamesh4plus.ino:313:0:
C:\Users\punkm\Desktop\notamesh4plus\addings.h: In function 'void addbackground()':
addings.h:46:15: error: no match for 'operator+=' (operand types are 'uint8_t {aka unsigned char}' and 'CRGB')
leds[i].b +=CRGB(5,5,5);
~~~~~~~~~~^~~~~~~~~~~~~
C:\Users\punkm\Desktop\notamesh4plus\addings.h:46:15: note: candidate: operator+=(uint8_t& {aka unsigned char&}, int) <built-in>
C:\Users\punkm\Desktop\notamesh4plus\addings.h:46:15: note: no known conversion for argument 2 from 'CRGB' to 'int'
C:\Users\punkm\Desktop\notamesh4plus\addings.h:46:15: note: candidate: operator+=(uint8_t& {aka unsigned char&}, long unsigned int) <built-in>
C:\Users\punkm\Desktop\notamesh4plus\addings.h:46:15: note: no known conversion for argument 2 from 'CRGB' to 'long unsigned int'
exit status 1
no match for 'operator+=' (operand types are 'uint8_t {aka unsigned char}' and 'CRGB')
Подскажите куда копать?
Добавлена Возможность разбить гирлянду на части (проблема отсюда)
Судя по тому где вы остановились я уже отвечал 3 раза
In file included from I:\С НОВЫМ ГОДОМ ИНТЕРНАТ\libraries\notamesh4Gyver\_main.ino:239:0:
sketch\addings.h: In function 'void addbackground()':
addings.h:52:21: error: no match for 'operator+=' (operand types are 'uint8_t {aka unsigned char}' and 'CRGB')
leds[i].b +=CRGB(5,5,5);
~~~~~~~~~~^~~~~~~~~~~~~
sketch\addings.h:52:21: note: candidate: operator+=(uint8_t& {aka unsigned char&}, int) <built-in>
sketch\addings.h:52:21: note: no known conversion for argument 2 from 'CRGB' to 'int'
sketch\addings.h:52:21: note: candidate: operator+=(uint8_t& {aka unsigned char&}, long unsigned int) <built-in>
sketch\addings.h:52:21: note: no known conversion for argument 2 from 'CRGB' to 'long unsigned int'
exit status 1
no match for 'operator+=' (operand types are 'uint8_t {aka unsigned char}' and 'CRGB')
Использовал такой шильд и такую гирлянду
Надо поменять TProgmemRGBGradientPalettePtr на TProgmemRGBGradientPaletteRef’
При этом в тексте скетча поиском не находится ни одного «TProgmemRGBGradientPalettePtr». Как быть?
Обновлен в скетч notamesh4.2_(Gyver) ссылка на скачивание (не изменилась)
Причина: исправлена ошибка
#define USE_BTN 1 // использовать управление одной кнопкой
// клик: вкл-выкл
// 2х клик: след. режим
// 3х клик: пред. режим
// 4х клик: вкл/выкл блёстки
// удержание — яркость
// клик:
#define BTN1_1 1000 // кнопка 1 клик
// 2х клик:
#define BTN1_2 1001 // кнопка 1 два клика
// 3х клик:
#define BTN1_3 1002 // кнопка 1 три клика
// 4х клик:
#define BTN1_4 1003 // кнопка 1 четыре клика
// удержание
#define BTN1_PRESS 1005 // кнопка 1 удержание
Далее сопоставляем коды с действиями, эти строки надо вставить в раздел
/FastLED/colorpalettes.cpp:140:5: error: expected '}' at end of input
/FastLED/colorpalettes.cpp:140:5: error:
expected ',' or ';' at end of input
Return code is not 0
Менял скетчи, библиотеки, ставил как на компе, бесполезно. На компе всë работает, а мне нужно с телефона залить скетч, компиляция не проходит! Помогите пожалуйста что не так
есть 3 варианта
1. выкусить
2. в настройках прописать светодиод будет осмысленно включатся
3. вариант в файле _main.ino найти функцию setup() и в ней добавить строки
In file included from C:\Users\User\Desktop\n4\notamesh4\notamesh4.ino:321:0:
rainbow_beat.h:14:2: error: #endif without #if
#endif
Во многих библиотеках. Как устранить?
вот ответы первый второй
Есть эффекты где цвета зашиты в алгоритм, поэтому вам придется создать список того что оставить и прописать их
в конце есть структура со списком палитр
В ней непонравившиеся можно закомментировать, поставив в начале // или наоборот разкомментировать…
Если и этого мало то есть на просторах интернета редактор градиентов, например если интересно расскажу как добавить
1 вариант (11 кнопок такие как 0, 1, 2, 3,…, 8, 9, +10) например такой
2 вариант (10 кнопок такие как 0, 1, 2, 3,…, 8, 9 ) например такой
Логика работы у этих пультов разная. например, для пульта из 11 кнопок выбор программы 23 делается так
+10, +10, 3
для пульта из 10 кнопок такой же выбор программы 23 делается так
2, 3
Если подключить лог там все видно
И ещё не понятна подсказка из файла Если кнопка не используется, то тогда надо либо поставить код 0, либо закоментировать строку
// Например #define IR_Key_XXXX 0xff4ab5
// или так #define IR_Key_XXXX KEY_0
Так у Вас прописано в строке эффекта 39
В логике обработки есть проверка на 0 и проверка на отсутствие этой строки, в обоих случаях команда обрабатываться не будет.
При этом чем меньше команд задействовано, тем меньше код прошивки
G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\rainbow_beat.h:14:2: error: #endif without #if
In file included from G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\notamesh4plus.ino:329:0:
G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\blendwave.h:33:2: error: #endif without #if
In file included from G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\notamesh4plus.ino:330:0:
G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\fire.h:58:2: error: #endif without #if
In file included from G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\notamesh4plus.ino:331:0:
G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\candles.h:27:2: error: #endif without #if
In file included from G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\notamesh4plus.ino:332:0:
G:\Dropbox\Public\Ардуїно\Скетчі\notamesh4plus\colorwave.h:78:2: error: #endif without #if
Обновлен в скетч notamesh4.2_(Gyver) ссылка на скачивание (не изменилась)
Причина: исправлена ошибка