— Ваши игрушки бракованные! — Что, не блестят? — Нет, не радуют!
Наверное каждому уже надоели скучные гирлянды с однотипными эффектами. Хочется что-то по серьезнее, с минимумом вложением и использованием головы (она и так болит от новогодней кутерьмы).
Здесь рассмотрим гирлянду на 100 светодиодов, с 1000 вариациями и ценой за контроллер 150 руб
Использовать ленту на 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)
Первый вариант скетча с этими библиотеками notamesh1.zip
Оригинальный скетч старался не переделывать (нет времени).
Второй вариант скетчаnotamesh2.zip
Подробности ниже в примечании
Третий вариант скетчаnotamesh3.zip
Подробности ниже в примечании
Четвертый вариант скетчаnotamesh4.zip
Подробности ниже в примечании
Дальше шли модификации 4 варианта скетча, шло добавление отключаемого функционала Вариант скетча 4.1добавлены эффекты notamesh4.1_(plus).zip
Подробности ниже в примечании
Вариант скетча 4.2 Добавлены дополнительные библиотеки управления кнопками и светодиодами индикации notamesh4.2_(Biblio).zip
Подробности ниже в примечании
Урезанная версия скетча для контроллеров на базе 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 варианта под нану
Следующая модификация уже будет с заданными координатами светодиодов.
Часто стали спрашивать как настраивать пульт, хочу выделить отдельно этапы настройки
Начнем по порядку 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 //Включить повтор, при долгом нажатии на кнопку пульта будет повтор клавиши
Номер пина, куда подключен датчик пульта должен быть правильным как в IRrecvDemo
Также надо поставить правильно 1 в типе пульта, опять же берется из IRrecvDemo
Максимальное количество светодиодов выставляете какое вам надо Все, должно работать
Проблемы с Новой библиотекой Пульта
За два года разработчик IRremote внес изменения в свою библиотеку, теперь она стала не совместима
Как временное решение устанавливаем версии библиотек проверенные FastLED и IRremote
Четвертый вариант скетча с поддержкой библиотек Gyvera
1. Компилируется на ESP32 без ошибок и работает (кроме: TM1637_ON не совместима с ESP32, пульт не проверял)
2. Добавлены следующие устройства
TM1637_ON (индикатор от Гайвера),
До 4 Кнопок (Библиотека Гайвера),
До 2 Светодиодов
3, расширен набор команд, Добавлены команды для работы с кнопками работать стало удобнее.
4. Добавлен режим настройки, где свой набор команд. https://yadi.sk/d/nPBxMYT-LkwtOw
всего 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 в этой теме не рассматривается)
все ссылки от меня ведут на актуальную версию, ошибки я исправляю быстро
Новогодние гирлянды на светодиодах ws2811 продают готовыми с контроллерами.Эффекты в них конечно не айс, зато 200 штук.В том году делал на 50 светодиодов, в этом году увеличил до 100. youtu.be/a033JcsHJ8g
Я взял контроллер SP108E, три гирлянды по 50 шт. на WS2811 с зелеными проводами и питанием от 12V, блок питания 12V 3A(самый слабый что был в загашнике). Для управления контроллером скачал приложение, там около 200 готовых программ с возможностью как ручной смены режимов, так и автоматически. Кстати много однотипных, только разные цвета. Так же есть возможность загрузки разных картинок, почему я его и взял. Но с картинки «снимает» просто линию, а саму картинку перемещает бесконечно, если понравился эффект, можно записать в память. Управление идёт по WIFI. Можно задать длину и количество светодиодов в целой гирлянде(1×150, 3×50, 10×15 и т.п.), от этого эффекты могут выглядеть по другому. А можно и отключить часть гирлянды задав например 1×130. На концах гирлянд есть разьёмы для соединения в одну длинннуууююю, отвод пары проводов для доп.питания в случае нехватки. Одна гирлянда длиной около 4 метров, поэтому брал под свою ёлку + запас, цвет проводов есть ещё черный и цветные. 3 Амперный блок на средней яркости тянет без проблем и нет просадки на хвосте гирлянды, для чего и брал с 12V питанием, хотя есть ещё 5 вольтовые. Быстро и без пайки всё подключил, настроил и работает. Мои всё ободрили! Не, одобрили!
Контроллеры есть с управлением по BT(105-й вроде), но вроде там нет загрузки картинок, ещё есть с микрофоном от музыки(110-й). Управлять могут и другими гирляндами и лентами, не одновременно, а если у вас не WS2811, в приложении настраивается. С какими работает надо смотреть описание. Сам видео показать не могу, елку ещё не ставили, а про сами контролеры можно посмотреть в ютубе.
Чуть не забыл. С картинок сканирует только одну линию бесконечно, но можно задать любой угол и направление. Я для картинок использовал самодельные в фотошопе. Задавал цвет фона, потом чертил всякие разноцветные линии, ромбики, овалы, точки и т.п., потом пробовал. Загружал в контролер, включал, если понравилось, то делал запись эффекта в память. При любом режиме можно управлять яркостью и скоростью.
На али. И контроллер и гирлянды брал разом и в одном магазине на распродаже осенью, пришло за три недели. btf-lighting.aliexpress.com/store/1051119
Блок питания брал давно уже для других других разных целей, поэтому специально не покупал.
Кому срочно надо, то есть в России в наличии в некоторых магазинах, но обязательно надо уточнять, могут «надуть». И самое главное ценник сами понимаете что будет выше. У меня так живьём родня брала в Питере дабы не пролететь с гирляндой на этот НГ. Где конкретно не могу сказать, они сами бегали искали.
Это я их «соблазнил», когда они заезжали в гости, а я уже неделю как испытывал свои картинки на гирлянде намотанной на стремянку! :-)
я когда заголовок увидел, думал что это обзор от AlexGyver)) но нет) обзор именно на елочную гирлянду. у Алекса светодиодная матрица с очень крутыми эффектами
Вот правда, сколько людей, столько и мнений. :)
Я о чём… Нет, за конструкцию плюс поставил.
Пожалуйста, прочтите правильно, тут нет критики. Но вот моя личная логика построения автоматизации заключается в том, чтобы свести к минимуму участие человека. Я считаю, что если я автоматизирую что-то, так это именно для того, чтобы человек в этом больше не принимал участие. Я про то, что сколько бы я ни делал «мигалок для ёлок», я пульт (или мобильниое управление) к ним никогда даже в мыслях не рассматривал :)
По мне, так лично мне в новогоднюю ночь есть чем заниматься за праздничным столом и помимо переключения режимов и палитры на ёлке :)
Но это дело, разумеется каждого, не смею навязывать своё мнение.
PS: Что касается меня, то, помимо опубликованных гирлянд в моих обзорах прошлых лет, в этом году повторяю конструкцию Стивена на ардуине-мега. Я писал об этом в одном комменте. Моё мнение не поменялось: его визуализация, для меня, на сегодня, — это эталонная отметка в художественности и эффектности на ёлке, на которую и надо равняться.
Согласен, сам подобное делал. Ведь если есть адресуемная лента, то есть смысл рисовать на елке эффекты, которые завязаны на фактической координате конкретного элемента на елке. Тогда там можно хоть картинки рисовать. Правда первоначальный сетах еще тот геморой — ручками прописать координаты сотен элементов на елке :)
Закажи к следующему, а то опять в декабре вспомнишь, будет поздно)) Я три года собирался снежинку сделать по местным мотивам, в этом году на 11.11 заказал детали, завтра готова будет, надеюсь)))
Вы таки будете смеяться, но прочитал обзор только 17.12, тогда же и заказал гирлянду на 2811 на али.
Вчера она вышла с таможни во Внуково.
Есть шанс что таки дойдет до НГ :)
Большое спасибо за подробное описание Новогодней гирлянды и проделанную работу! Теперь точно соберусь с мыслями, силами, временем и начну её собирать!!!
прикручивать пульт к гирлянде бессмысленно. как представил что все уже пьяные, а я на кнопочки тыкаю, аж плохо стало. да и запомнить на какой кнопке каждая из 25-ти команд, нереально.
я думаю, достаточно пары кнопок для регулировки яркости, причём затолкать это в void loop, чтобы раз отрегулировать при запуске и забыть.
Извините за нубский вопрос, но в чём разница между ws2811, 2812 и 2812b?
Как я понял, 2811 это отдельно RGB светик с платой, а на 2812 контроллер уже на самой пластине с кристаллом? А 2812b?
2811 это обычный светодиод и светит во все стороны, а 2812 — это SMD и светит только в одну сторону?
Кто юзал и те, и те, какой из них долговечнее в плане обрыва проводов?
2811 — это микросхема, к ней можно прицепить нак SMD светодиод или «с ножками»
2812 — тут только SMD, с буковкой b просто ног меньше
ну по поводу долговечности китайских проводов… не тут порвется, дак там протрется.
Я покупал 2812b (как в этой теме) пока ни разу не оторвались
при использовании версии 12 В не забываем ставить резистор.
а 12В и 5В определяется применяемыми микросхемами, есть на 12В есть на 5В
на 12В токи меньше
На 12 Вольт WS2811(2) не рассчитана. У нее по паспорту максимальное 6-7 Вольт. На 12 вольт можно подцепить ее, но только с гасящим резистором по входу микросхемы, а по выходам гасящий резистор рассчитывается исходя из параметров светодиодов. В документации есть типовые схемы включения для 12 и 5 Вольт.
А вот WS2812b на 12 вольт уже цеплять НИЗЯ!!! Причина проста — цепи питания контроллера и светодиода заведены на ОДИН пин. И если вы туда сунете 12 Вольт — хана вашей WSке.
2812 и 2812b отличаются количеством ног и, соответственно, разводкой внутри корпуса. И там и там корпус 5050. Но у 2812 6 ног (по сути это тот же контроллер но совмещен со светиком), а у 2812b только 4 — 2 по питанию и 2 адресных (вход и выход).
Не совсем так. Падение напряжения на синем светодиоде — 3.2 В (на остальных — меньше). То есть при питании от 5 В нам надо погасить на резисторе 1.8 В. Если мы хотим питать диод от 12 В, нам придется гасить на резисторе 8.8 В. То есть потери мощности станут в разы больше. Поэтому, для адресных лент не имеет смысла использовать питание 12 В.
В «традиционной» ленте светодиоды соединяют по 3 и уже потом подключают к цепи 12 В. То есть там надо погасить 12 — 3.2*3 = 2.4 В на три диода. Понятно, что результирующие потери получаются меньше, также меньше становится ток всей ленты, что требует проводов меньшего сечения. Но при этом эти три диода всегда будут гореть вместе. Для таких лент это не проблема, так как там вообще вся лента светится только одним цветом.
Я видел в продаже 12 В ленты с микросхемами (возможно, 2811), но там три рядом стоящие диоды всегда светят одинаковым цветом. Можно использовать их, но будет менее эффектно.
То есть разницы никакой, особенно если не отдельно smd брать, а на круглых платах с 3+3 контактами. Плюс в 2812В меньше потери напряжения, что в случае длинной цепочки важно.
Благодарю.
А как прицепить к проекту двухстрочный дисплей+что нужно будет в код и прошивку? Что-бы название режимов выводил, так ведь проще и знаешь в каком режиме гирлянда работает.
Конечно же можно, автор сделал вывод протокола в режиме диагностики на монитор порта (скорость 57600), в своем скетче я функционал оставил.
Скетч можно сделать под себя, добавить и индикацию, примеры есть.
Места где надо выводить информацию на дисплей в программе начинаются со строк Serial.println(
Моя цель не похвастаться проектом, а побудить людей что-то сделать самим.
Начните хотя бы с типа дисплея, я подскажу.
Это где нибудь в начале допустим после строки #include «commands.h» // The IR commands.
// include the library code:
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Где const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; это ваши пины, куда подключили дисплей
Далее
Этот код надо вставить внутрь функции void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
Ну и теперь все должно работать
Вывод осуществляется командой
lcd.print("hello, world!");
Где hello, world! это текст, вам надо заменить на свой
… и полсотни микросхем atmega328-mu. Не то, чтобы это всё было нужно в разработке, но раз начал изучать микроконтроллеры, то надо иди в своём увлечении до конца. Единственное, что меня беспокоило — это atmega328-mu. В мире нет никого более отчаявшегося и беспомощного, чем человека, который пытается припаять провода МГТФ к корпусу VQFN. И я знал, что довольно скоро мы до этого дойдем.
Тоже делал гирлянду 100 диодов на зеленых проводах.
Контролер ардуина, всякие управления для него это дичь и излишество, сколько эффектов и палитр не знаю но за 10 минут не повторилось ни разу. Дальше не залипал, елка стоит, светится, дети рады.
Может и мне помогут здешние знатоки… до WS2812 я пока не добрался, но накупил я по здешним скидкам гирлянд по типу таких: mysku.club/blog/discounts/66817.html
есть у меня три цвета rgb и белые, хочу сделать моргалку на ардуине. Моргать научился через мосфет, с этим нормально, но вот как сделать плавное включение и затухание, уже три дня пытаюсь найти… может что другое вместо мосфета купить? или плавное моргание нереально на таком сделать?
подскажите как пульт настроить — если из терминала копирую значение(оно без x0) — то не компилируется, а если дописать x0 то горит просто белым и на пульт не реагирует. Без пульта, работает.
если вы использовали методику получения кодов как написано в теме, то надо добавлять 0x перед кодом либо
в цикле loop меняем строку Serial.println(results.value, HEX);
на Serial.println(results.value);
будет выводится десятичное число
это число надо вставить в настройках вместо 0xfffffff
будет выглядеть так
#define IR_A1 16730805 //N/P // Увеличение яркости A1
Может кто подскажет, как найти на али или в оффлайне провода с прозрачной изоляцией в 3 жилы. На али смог найти только уже припаянные к LED.
Вот такие:
За стоп биты отвечает UCSRC бит USBS тоесть все правильно
и так правильно UCSRC=0b10001110;
Значит, либо ктото переинициализирует еще в программе.
Либо попробуй передернуть UCSRB=0x00;
UCSRB = (1<<TXEN)|(1<<RXEN);
Для страховки можно еще паузу между командами поставить в 1 милисек
Люди, все замечательно. не у каждого есть пульт и заморока с IR.
Поделитесь хорошими скетчами с множеством эффектов для ардуино с WS2812., которые переключаются сами по себе без пульта. типа (бегущие огоньки, по одному, по два, вперед, назад, от средины и т, д.)
Очень нужно для утренников.
СПАСИБО. [email protected]
Собрал схему на Arduino Nano один-в-один, пины те же. Скачал и подключил библиотеки. Запустил IRrecvDemo, записал коды кнопок пульта, прописал их в command.h (заменил своими кодами не все строки, т.к. у меня пульт маленький, кнопок немного).
Скетч notamesh1.uno вообще не правлю, все как в скачанном исходнике! Демо режим работает без вопросов, а как только нажимаю кнопку на пульте (любую — хоть прописанную в command.h, хоть нет) — всё, цикл встает. Вывод в ком-порт прекращается, диоды Rx и Tx не мигают, диоды на гирлянде замирают в одном состоянии. Прога зациклилась?
Предположил, что зацикливание идет в цикле
while (!irrecv.isIdle());
в строке 268, но почему?! Закомментировал его, скетч зависать перестал, но работать тоже не хочет. В порт вместо команд сыпется мусор…
Не пойму, в чем причина, что надо исправить? При компиляции IDE ругается:
In file included from C:\Users\Alex\Documents\Arduino\scetches\notamesh1\notamesh1.ino:63:0:
C:\Users\Alex\Documents\Arduino\libraries\FastLED-master/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.001
# pragma message "FastLED version 3.002.001"
^
Скетч использует 23760 байт (77%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1929 байт (94%) динамической памяти, оставляя 119 байт для локальных переменных. Максимум: 2048 байт.
Недостаточно памяти, программа может работать нестабильно.
Это может быть причиной? Заранее благодарен за помощь!
Такая же ситуация, сперва у меня с пропиской команд не получалось, автор помог. Потом тоже гирлянда начала зависать при нажатии кнопки на пульте. Уже на знаю, что не так
Кстати, ругается ли IDE или просто информирует, не знаю, у меня с таким текстом часы работают, да и в других проектах вроде проблем не было.
Проблема всё же была в нехватке памяти, как и предупреждала IDE… Решение было очевидным — в строке 88 поставил
#define MAX_LEDS 50
Скетч заработал как надо! Теперь думаю, и зачем тут пульт? ))
Теперь надо дорабатывать скетч, чтобы с пульта сделать перебор только нужных эффектов. А то, некоторые слишком уж навязчивые ;)
dmitrybik Вторая версия скетча
Жена- «Божественно», я и сам пол ночи радуюсь как дитя.
Подскажите пожалуйста:
— как выбрать нужные эффекты,
— как уменьшить скорость эффектов,
— и хочется побольше эффектов на темном фоне.
А в остальном все очень и очень (КРАСОТИЩА).
Автору от всех, большой Respect.
Завтра несу в школу, будем готовится к Новому Году.
Все управляется с пульта
Эффекты перебираются командами IR_D2 — предыдущий и IR_D3 — следующий
или без пульта то переменная INITMODE
Скорость выбирается командами IR_C2 -замедление и IR_C3 -ускорение
К сожалению при смене эффекта скорость теряется
Но есть лазейка в функции void strobe_mode(uint8_t newMode, bool mc)
Есть case номер после него указывает номер эффекта, а в этой строке переменная thisdelay отвечает за скорость этого эффекта, это так называемая задержка, чем число меньше, тем эффект быстрее и наоборот, чем выше число, тем эффект медленне.
Поздравьте с Новым Годом школьников как следует!!!
Огромное спасибо за вторую версию. У меня готовая гирлянда на 120 светодиодов (самопальная), можно ли задействовать все 120? Что можно закоментить в скетче? Пульт не буду использовать (и вайфай тоже)!
Гирлянда должна быть с адресуемыми светодиодами, это главное условие
Для настройки меняем:
#define KOL_LED 120 // Сколько светодиодов в гирлянде при первом включении
#define IR_ON 0 // Если равен 1 используется пульт
здесь выставляем пины правильно, если собрана как на рисунке в теме то менять не надо
#define LED_DT 14 // Номер пина куда подключена гирлянда
#define LED_CK 11 // Номер пина для подключения тактов, используется светодиодов WS2801 или APA102
и здесь не забываем выбрать правильный тип светодиодов
Надо закоментировать не используемый и раскоментировать нужный
#define DEMO_MODE 3 // Режим при включении
// 0 — последняя запущенная программа
// 1 — демо режим с последовательным перебором эффектов
// 2 — демо режим с случайнвым перебором эффектов
По умолчанию стоит 3 режим, а в описании его нет. Что такое 3 режим?
Прошил Ваш скетч, настроил количество и тип светодиодов, при использовании пульта в лог пишет SETTING UP по кругу и не запускается, а если пульт выключить то всё работает. В чём может быть проблема?
Тогда надо уменьшить максимальное количество светодиодов, во второй версии скетча строка 123 #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).
по идее должно работать
Кстати, подскажите сколько ресурсов пишет после компиляции
У меня стоит #define MAX_LEDS 100
Лог компиляции показывает:
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, потом идет как я понял перезагрузка, или зависание
Слова ---SETUP COMPLETE--- не выводятся
Судя по логу компиляции должно все работать.
Причины могут как аппаратные так и программные.
Аппаратные
1 проверяйте питание,
2 проверяйте замыкания на плате (продуйте, может токопроводящий волосок висит),
3 с usb может идти сброс, там ножка на ресет заведена
Программные
1.Обновите библиотеки
2 обновите среду Ардуино
Может и модуль Nano может быть бракованым, как вариант проблема с ЕЕПРОМ, можно его убрать.
скетч скачало более 200 человек, вашу проблему я не встречал.
Наконец получилось с новым скетчем! Спасибо большое dmitrybik.
А нельзя никак сделать, чтоб был доступен с пульта 39 режим? Может, даже пожертвовав какими-то эффектами похожими что ли, чтоб памяти хватало?
Мне, не к спеху, если Вам не трудно будет до НГ, то хорошо)
И еще вопрос, пока играл с эффектами и палитрами, то не понял, можно ли как-то остановить изменение цвета, чтоб, например, светилась вся гирлянда одним цветом и только мерцание сопроваждало бы этот режим. Хотел получить примерно такой эффект youtu.be/3Io4OeBP2GQ?t=183, но пока только переливается все. Подумал, что Остановка вращения палитры F1 Остановить перебор Палитр это делает, но вроде все равно переливаются разными цветами.
Внимание, кто скачивал 2 вариант скетча, до сегодняшнего момента, перечитайте заново. Там была ошибка в выборе режима при запуске, раньше выбирался только демо режим с последовательным перебором, теперь ошибка исправлена.
dmitrybik, большое спасибо! Человек слова — обещал — сделал. Тестирую сейчас. А как бы увеличить количество диодов до 300? А то в ленте 300 диодов, резать не хочется, а максимум только 250 получается. Что можно подправить в скетче?
Я вас понял. В третей версии сделаю, но… приходится ужиматся в ресурсах. Это добавит размер используемой памяти.
Придется жертвовать частью эфектов, но я постараюсь…
Ориентировочно выйдет через неделю или раньше.
Доброго времени суток, извините, я так понял этот комментарий от прошлого года.
Не подскажете, хотел детям на улице елку оформить, она высокая, насчитал где — то под 370-400 светодиодов, такое уже тестировал кто — то с данным сетапом.
Почитав разные темы понял, что похоже у нано памяти не хватит на такое количество, на сколько реально можно ориентироваться, исходя из элементов с топика?
Ну и писалось про вариант с координатами, там еще будет больше данных, значит что — то будет совершенствоваться, на эту зиму есть смысл расчитывать? :)
С Уважением Дмитрий
Если нано, то максимум это 300 светодиодов с отключенным пультом
Мега тянет более 500
На работе STM32 тянет более 2500 светодиодов
мой совет такой, если у вас нано. разбейте на 2 части и каждую часть подключите в паралель. То есть 1 светодиод и
например 201 подключите к контроллеру остальные цепочкой
Добрый, получилось сделать 2 на квартирные ёлки, скоро уже буду доставать и проверять работоспособность.
Пересчитал конус, оказывается 600+ светодиодов будет, не подскажете на stm32 что и как делали?
Или в ближайшее время можно ожидать новую версию?
С уважением
Если и будет под STM32 то коммерческая версия (для тех кому лень собирать самому) там легко 4000 светодиодов (в моем экземпляре нет больше памяти). Поймите меня правильно, FastLED нет адекватной с аппаратным передатчиком для разгрузки микроконтроллера, пришлось писать свою FastLED_SPI_STM32.
Не коммерческая будет уже точно на ESP32. Разработчик FastLED ввел в нее аппаратную поддержку передатчика. Я только-только приступил к изучению и писанию кода под ESP32, могут вылезти подводные камни.
В некоммерческом виде будет весь текущий функционал, плюс расчет конуса, на ESP32 пульт заменит беспроводный интерфейс, код будет в среде ардуино, сроки пока не знаю, делаю в свободное время.
Если хотите успеть до Нового года ставьте на Меге, она по крайней мере отработана, STM32 там сложно, писалось все не на ардуино (в ней нет пошаговой отладки)
Библиотеки установлены
Ардуино 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
Проверяйте (вечером сам проверю), пишите в комментариях
Ну раз ресурсов много стало, в четвертом варианте будут переработаны и добавлены эффекты
Третий вариант скетча
Намного лучше. Все грузится.
На сигналы пульта реагирует быстрее.
Спасибо.
На всех пультах есть кнопки с цыфрами.
Как бы закрепить эффект за кнопочкой?
И с яркостью, мне кажется лучше было бы одним нажатим увеличить яркость, а не щелкать по кнопке…
Или это я уже слишком…
кнопка 1-1ый эффект
кнопка 2-2ой эффект.
…
кнопки 34-34ый эффект
#define IR_A1 0xB78877 //N/P // Увеличить максимальную яркость
(было бы лучше чтобы просто при нажатии кнопки яркость плвно увеличивалась) а не тыкать
и соответственно при нажатии
#define IR_A2 0xB722DD //Repeat // Уменьшить максимальную яркость
Круто) Прошил 3-ю версию, отклик на пульт стал быстрее. Хотелось бы еще отдельным эффектом — мерцающих огоньков свечек, или, как еще называют, эффект пламени, чтоб выбрал эффект, а там только свечки своим оранжевым пламенем,
Загрузил сразу на 300 диодов. Загрузилась, хотя и показала нехватку памяти. Проработала один цикл и зависла. Буду искать причину. Автору большое спасибо что не оставляет проект.
Я проверить, к сожалению не могу, нет у меня такой платы сейчас
попробуй закоментировать:
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 ступеней. Иначе в полной темноте может слепить / раздражать, а при включенном свете — плохо видно.
Кнопки можно не запаивать, но хорошо если бы это было реализовано в скетче.
Памяти это не много отъест, входов свободных достаточно, можно резисторным делителем через аналоговый вход.
Я так понял что код должен начинаться с 0х? если я свой код меняю на этот BD5DAC9D выдает ошибку, а если 0хBD5DAC9D то ошибки нет, но и не работает )
Спасибо.
Спасибо, не увидел в коментах.
Еще вопросик. Когда нужно узнать имя пульта (IRrecvDump), то пульт который хочу прикрутить он определяется как Unknown encoding. А такого варианта нет. Нужно искать другой пульт? Спс.
Поставили в тупик. Думаю надо поступать так проверить в IRrecvDемо, пульт выдает код или нет (то есть он одинаковый при каждом нажатии кнопки пульта и у каждой кнопки пульта он различный)
если все нормально, то в настройках моего скетча можно выставить любой пульт, например NEC
Теоретически должно работать
Походу дело в том, что с каждым нажатием одной кнопки приходит разный код (.
и надо нажать очень много раз чтобы код который внес в файл проскочил и функция заработала, ну и бывает, что и на каждое нажатие приходит верный код.
Походу проще физические кнопки сделать…
Поэтому мои рекомендации:
1. Проверьте может шумит приемник ИК (если он в металлическом корпусе то корпус надо подключить к минусу.
2, Может частота пульта не соответствует частоте приемника ИК (бывает 38 и 36 кГц) Попробуй те их подобрать.
3. Поменять пульт тоже можно
Да вы можете перейти на аппаратные кнопки, либо использовать демо режим.
Я постараюсь добавить аппаратные кнопки.
ПС: из 200 человек скачавших скетч только у двоих есть проблема с пультом.
Конечно же можно и даже больше. Нет ограничения на 8 каналов (можно больше и меньше), нет ограничения на цвет лампочки (16 мил оттенков) у любого элемента гирлянды, не надо паять схему, покупаются модулями, не надо программировать пзу (не нужен программатор). Единственно что надо, модуль ARDUINO, гирлянда ws2812, блок питания и компьютер.
Подтверждаю, получилось сделать за час с перекурами, эффекты просто потрясающие, правда все было в наличии, лента с адресуемыми светодиодами 2813 и ардуина мега.
так я по этому обзору делал. 2812 0т 2813 по подключению не отличаются.
по поводу вашего сообщения выше с интересными эффектами, такое тоже можно сделать на ардуинке.
Исправлены ошибки в 4 скетче:
1. Ошибка компиляции для 2 проводных светодиодов
2. Проблема с ЕЕПРОМ Веедены дополнительные проверки
Остальное не затронуто. Скетч 4 обновлен, можно скачать
Не грузится скетч если #define CHANGE_ON 0 // Включить смену эффектов через бенгальский огонь
ошибка
а если
#define CHANGE_ON 1 // Включить смену эффектов через бенгальский огонь
то работает но надоедает
Исправлены ошибки в 4 скетче:
1. Исправил ошибку при отключении бенгальскго огня
2. Смену плавную смену режимов можно оставить, а эффект бенгальского огня убрать
Остальное не затронуто. Скетч 4 обновлен, можно скачать
Доброго дня) Все круто, перепрошился. Спасибо большое автору за проект и его поддержку. Правда, я так и не понял как выставить свечки, кроме каждого 10 светодиода. Я тогда имел ввиду эффект пламени типа такого youtu.be/-2hk6rxlrGA?t=7 чтобы все светодиоды мерцали как свечки и там можно было включать или отключать только блеск, а палитра не менялась бы, только скорость и яркость с блеском ) Просто перебором эффектов вроде такого нет. Реально ли включить в скетч такой режим?
Что-то я делаю не так, илди… Подключаю WS2811 200 светодиодов, в скетче выставляю: KOL_LED 200 и IR_MAX_LEDS 250, но работают только 100. При этом я отключил первые 50 и подключил следующие 100, то есть, вся линия данных и питание в норме. На цветомузыке все 200 тоже работают, а тут почему-то только 100.
У меня была похожая проблема, работало только 30 светодиодов, я пробовал скетчи примеров из библиотеки FastLED-master, работали все. Провозился пол дня, потом заработало. В чем проблема была я так и не понял, переустановил библиотеку, залил скетч 3 из архива, поменял в нем только Номер пина куда подключена гирлянда и все, залил, работает. После стало работать нормально, поменял все под себя, работает отлично.
А сколько у Вас светодиодов в гирлянде? На другом скетче или другом контроллере у меня гирлянда вся горит, а вот на этом скетче только 100 светодиодов.
сейчас 150 работают WS2813, в установках стоят WS2812.
Проблема была аналогичная вашей только с 30 диодами, работали только 30, в другом скетче с примеров библиотеки FastLED-master загорались с точностью до штуки, все 150. Провозился пол дня потом заработало. Такой вопрос, а меньше 100 светодиодов нормально устанавливается?
Вот щас перепрошил на 90 светодиодов и все равно работают 100… реакция на команды пульта есть.
Я выявил это только когда повесил на елку всю гирлянду, до этого проверял все время скетчи на 100 светодиодах…
вот проблема 1:1 как у меня, тоже работало всегда 30 диодов. Я переустановил библиотеку FastLED-master поставил ее из архива, может в этом решение проблемы. Скачал заново скетч и ставил его с минимум изменений.
ситуация 100 % как у меня, я тоже проверял все на 30 диодах, и проблему выявил перед установкой гирлянды на елку, как не тасовал ленты, работает всегда 30 шт. Ставишь 100 работает 30, ставишь 10 работает 30. Я не знаю, но где то это прописалось.
Попробуй еще примеры по запускать из библиотеки 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 скетча
Это не баг это Фича. Я у себя код проверил, не нашел почему. Значит это особенность такая.
Сказали бы конкретно на каком эффекте, я бы программно фофиксил.
После обновления библиотеки FastLED все само устранилось.
Замечательные эффекты. и работа устройства.
Казалось бы больше нечего и не нужно, но кнопочки и резисторы потихоньку ищем…
Спасибо большое автору за проект и его поддержку.
Подскажите как понять эту строчку
#define COLOR_ORDER RGB //Очередность цвета светодиодов RGB или GRB
На что она влияет, на какие светодиоды рассчитана?
у меня WS2811
У изготовителя светодиодов есть такая особенность, цвета могут быть поменяны местами. Изготовитель библиотеки FastLED учел это, и ввел этот параметр для подстройки
Можно проверить, либо загрузив пример FastLED Blink (там должен мигать красный), либо в моем скетче с пульта включить красный ( команда IR_Key_Solid_Red)
Если это не так, то поменять параметр
Добавление в 4 скетче:
1. Добавлен эффект 40 Свечки (но не так как на видео, похоже, того скетча что на видео не нашел, поделитесь добавлю)
2. Добавлены эффекты плавной смены и плюс режим случайного перебора
3. Добавлена аналоговая клавиатура
4. Добавлены выбор режима как в телевизоре два варианта (кнопки 0-9 и +10 или кнопки 0-9)
5. Изменен режим свеча, можно выбрать шаг отображения.
6. выполнена оптимизация
7. исправлены мелкие ошибки и добавлены новые :) Скетч 4 обновлен, можно скачать
Большое спасибо) Такой эффект тоже сойдет, с блеском нормально) Разве что можно добавить еще слегка мерцания)
Собрал на Pro Mini и установил в корпус, где уже была цветомузыка с вариантом от ЧипДип (точно не знаю чья разработка Люмазойд) и часами на esp с синхронизацией по NTP. Попоробовал даже цветомузыку на елке, но там билиберда, когда лента под шторами сверху на карнизе, то лучше смотрится.
А сама гирлянда зачетная получилась, столько эффектов. Еще и поддержка и модернизация автором. Может, она щас дапже самая крутая, как мне кажется, из тех, что встречал.
Большое года ждал паблик релиз на ардуино, правда выложено без исходников.
Но зато куча настроек через дисплей, собрал себе на 300 диодов, питание через каждые 100, родные были в восторге!
Собирал ее летом или осенью навесом на ардуино мега попробовать, но потом как-то позабыл, да и на дисплее все на англ, надо было разбираться что к чему…
Было время на тм2 и ла3 делали програмируемые бегущие огни на светоодиодах.
Так там можно было задавать нажатием одной кнопки колличество бегущих светодиодов.
1 нажатие — 1 светодиод
2 нажатия — 2 светодиода
— ну скажем хотябы до 5.
Было бы класно реализовать и в Вашем проекте, если это возможно, лучше всего с пульта.
Спасибо.
Это можно сделать, но люди не поймут. Это как на современном компьютере запустить игру 80 годов, в 16 цветах и звуком из спикера, удовольствие получат только те, кто в этих 80 играл. а остальные покрутят пальцем у виска.
Раньше сам делал схемы и на триггерах и сдвиговых регистрах но теперь возможности куда шире. Я в те времена не пог предположить, что заставлю лампочку зажжется любым из 16 миллионов цветов, Теперь применимы термины волны, синусоиды, палитры.
Давайте так, если народ поддержит, то я добавлю эффекты из 80-90 годов.
Гирлянда становится всё лучше и круче! Спасибо автору!
Относительно 96 строчки скетча
#define POWER_I 5000 // Ток блока питания в милиАмперах
У меня зарядка для мобильного 2-х амперная не тянула. Зависала на первом эффекте. Выставил 2000, всё-равно висла. Поставил 1000 и всё прекрасно заработало.
Виснет. С предыдущим скетчем при значении 2000 не висла. А вообще эта моя сборка (нано + лента 300 диодов + зарядник 2А Самсунг) с другими скетчами работает, не виснет.
Два раза пытался перейти на 4 версию и вернулся обратно на третью. Четвертая зависает и режимы очень похожи друг на друга. Все это на 100 ws2811 без пульта и кнопок в деморежиме 2.
Оболочка arduino последняя и все библиотеки скачаны по вашим ссылкам свежие. Вот сейчас опять зависла похоже на этапе смены режима. Половина гирлянды красная, половина синяя с каждым десятым белым огоньком.
# 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
У меня WS2811 200 светодиодов. Отключен Log, использую пульт. Сегодня с обеда работает норм, правда, оставил на одном переливающимся эффекте, блок питания от компа.
Еще раз спасибо за проект. В таким виде как сейчас демо режим с интервалом 60 сек будет запускаться только до 4 режима. Нужно как минимум изменить тип переменной secondHand на uint16_t. у себя я изменил обработку DEMO
void demo_check(){
if(demorun) { // Is the demo flag set? If so, let's cycle through them.
if (millis() — lastSecond > DEMO_TIME * 1000) {
lastSecond = millis();
gCurrentPaletteNumber = random8(0,gGradientPaletteCount);
gTargetPalette = gGradientPalettes[gCurrentPaletteNumber];
#if CHANGE_ON == 1
if(demorun == 2) {
newMode = random8(0,maxMode);
}else{
newMode++;
if (newMode > maxMode) newMode = 0;
}
StepMode = 1;
#if LOG_ON == 1
Serial.println(F(«Start SetMode»));
#endif
#else
if(demorun == 2) {
ledMode = random8(0,maxMode);
}else{
ledMode++;
if (ledMode > maxMode) ledMode = 0;
}
strobe_mode(ledMode,1); // Does NOT reset to 0.
#if CANDLE_KOL >0
PolCandle = random8(CANDLE_KOL);
#endif
#endif
} // if lastSecond
} // if demorun
} // demo_check()
И long lastSecond; объявл в глобальный переменных.
И еще, не разобрался почему при mode 7 происходит стабильный перезапуск процессора.
Добавление в 4 скетче:
1. Переписан демо режим по нормальному, зависаний быть не должно
2. Добавлено: можно создавать списки режимов для работы в демо режиме, Появились демо 3 и демо 4 для работы с этими списками Скетч 4 обновлен, можно скачать
А вас проблемы не было с программой juggle_pal() ( 7 и 31 режим). После их выбора либо в ручную либо в демо режиме происходит перезагрузка. В 3-й версии они работают нормально.
обавление в 4 скетче:
1. Исправлена ошибка. при CHANGE_SPARK 4 эффекты случайно не менялись. Исправлено
2. Списки режимов теперь не расходуют оперативную память, можно список делать до 255 элементов. Скетч 4 обновлен, можно скачать
Автор, помогитеееее!!! )) Ситуация такая, решил после двух лет обновить гирлянду, собранную по вашей проекту, прошил мегу, добавил ещё 100 диодов (итого 200 шт). Прошил прошивку 4 + и обнаружил что 40 эффект свечи поломался (( красивый оранжевый цвет стал грязно-желто-зелёным ((, какая прошивка на старой ардуине осталась не помню ( и пультом количество led больше 100 не добавляется ).
Это нормально,
если у вас стоит COLOR_ORDER RGB поменяйте на COLOR_ORDER GRB
или наоборот
если у вас стоит COLOR_ORDER GRB поменяйте на COLOR_ORDER RGB
Если не используете кнопки Гайвера (появились недавно) то проверьте параметр SAVE_EEPROM он должен быть
либо SAVE_EEPROM 2 либо SAVE_EEPROM 0 чтобы COLOR_ORDER заработал
спасибо, но COLOR_ORDER правильный (( прямой выбор цветов совпадает. Не добавляются диоды на старой плате (она мне и не нужна). На новой с этим всё нормально
Красный выводится правильно, вообщем похоже разобрался, не знаю как это связано, но отключил опцию «свечи по методу… чегото -там» и свечи стали нормального оранжевого цвета, правда новые диоды слегка розовят, но это уже не так существенно. Спасибо большое за оперативную помощь! С Наступающим!
Получил гирлянду на 50 2811 подаю питание 5 вольт / 2 ампера — она вся светится белым.
Я так понимаю, она должна светиться только при подаче управления?
Китаец прислал гирлянду с пробитыми чипами?
Тут заявлена 2811 5 вольт
Отзывы нормальные.
По идее ws2812b — это та же 2811 без корпуса, интегрированнвя прямо в сборку с диодами? Хотя пишут что тайминги отличаются немного.
Может я управление не с той стороны подаю?
Нигде не описано.
Есть 2 разъема, один мама, там еще 2 провода питания, другой — папа, для следующей гирлянды.
Так и подключаю.
Гирлянда без контроллера загорается белым (условно белым, светятся все кристаллы, цвет чуть розоватый), подаю управление — изменений нет.
Попробовал несколько библиотек — FastLed, Adafruit Neopixel
Компилировал их примеры
Похоже придется осциллограф доставать
Поскольку кнопки паять и пульт настраивать некогда, запустил в демо 2.
Похоже нашел ошибку — некоторые эффекты считают что диодов не 50, как указано в 2-х местах в настройках, а 49
Последний диод может зависнуть на выходе из эффекта. Например бегут сине-зеленые волны, а он ярко-розовый с предыдущего эффекта.
Потом опять нормально, потом опять не хватает шага.
Поставить в настройках 51 диод?
Или это последний чип зависает (провода очень тонкие)? Хотя, тогда бы не развисал при смене эффектов.
Еще багрепорт — 4 версия с демо 2 режимом виснет примерно через час. Ушел собаку гулять, вернулся — елка черная. Перезапустил, опять повисло. Очень и очень не сразу.
Отладку не включал — шил со стационарного компа, а он в другой комнате
Старенький ноут не потянул новую IDE :(
Другие опции (отключение плавных переходов и прочие) не проверял по той же причине.
Питания с запасом — delta electronics 5v/2.5a на 50 диодов, в скетче выставлено 2000 ма.
Но когда работает — смотрится шикарно!
У меня как-то странно себя ведет — застопорилась (погасла), лень было идти передергивать. Она еще минут 30 постояла, потом включила какой-то хаотичный эффект, потом опять умерла. Минут через пять опять тот же эффект и после него час не просыпалась. Надоело ждать, перезапустил по дороге к холодильнику :)
Добавление в 4 скетче:
1. Исправлена ошибка KOL_LED=IR_MAX_LEDS (зависание)
2. Исправлена ошибка в эффектах 2 5 9 12 14 18 26 ( последний светодиод теперь работает)
3. Исправлена ошибка перехода с 39 на 40 эффект (не всегда была)
4. исправлено еще чтото по мелочам
5. сделал список переливающихся эффектов (которые у меня оставлены по умолчанию) Скетч 4 обновлен, можно скачать
С Новым годом! Спасибо большое автору за поддержку проекта. Пока испытать не могу, т.к. за сутки до праздника почему-то сдохла ардуинка. Позже протестирую как до новой доберусь.
У вас наверное много светодиодов, при работе не хватает памяти
Глобальные переменные должны оставлят больше 500 байт иначе могут быть зависания. чтобы уменьшить память можно поотключать не используемое. У вас отключение лога, как раз освободилонужную память
Скинте ваши настройки, с настроками по умолчанию (100 светодиодов) всю новогоднюю ночь до утра работало без нарекания, может у вас какойто режим был включен?
#define KOL_LED 49 // Сколько светодиодов в гирлянде при первом включении
//////////////////////////////////////// Параметры пульта////
//Настройка действия кнопке осуществляется в файле command.h
#define IR_ON 1 // Если равен 1 используется пульт
// если не равен 1 пульт не используется, работает в демо режиме
#define PIN_IR 8 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 50 // Максимальное количество светодиодов при работе с пультом должно быть больше
// или равно KOL_LED
// От размера этого числа зависит колличество используемой памяти
#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 — не меняем
Как я понял у вас блеск отключен, но он появляется.
Дело в том, что настройка GLITER_ON 0 не отключает эффект насовсем, а отключает его при запуске. Но с пульта командой
IR_Key_Glitter можно включать эффект заново
если вам надо его отключить окончательно то закоментируйте строку 487
if(glitter) addglitter(10); // If the glitter flag is set, let's add some.
это не меняет.
это функция fill_noise16 из библиотеки FastLED. либо там ошибка, либо нехватает памяти. по ссылке
там есть состав функции
и в ней видно что идет выделение памяти uint8_t V[num_leds];
uint8_t H[num_leds];
для 300 диодов это выделение 600 байт, у вас есть свободными после компиляции больше 600 байт?
Тут либо исключить эффекты 22 и 37, либо использовать ардуину с большим процессором например Arduino Mega 2560
Я тут подумал
попробуйте в файле noise16_pal.h
Все стереть и вставить это:
noise16_pal.h
#ifndef NOISE16_PAL_H
#define NOISE16_PAL_H
// noise16 variables -----------------------------------------------------------------------
uint32_t x,hue_time; // x & hue_time values
uint8_t octaves=2; //2 // how many octaves to use for the brightness
uint8_t hue_octaves=3; //3 // how many octaves to use for the hue
int xscale=57771; //57771 // the 'distance' between points on the x axis
uint32_t hxy = 43213; //43213 // not sure about this
int hue_scale=20; //1 // the 'distance' between points for the hue noise
int hue_speed = 1; //31 // how fast we move through hue noise
uint8_t x_speed = 0; //331 // adjust this value to move along the x axis between frames
int8_t hxyinc = 3; //3
void noise16_pal() {
if (KolLed>=10) {
if (KolLed<=200)
fill_noise16(leds, KolLed, octaves, x, xscale, hue_octaves, hxy, hue_scale, hue_time);
else
if (KolLed<=400) {
fill_noise16(leds, 200, octaves, x, xscale, hue_octaves, hxy, hue_scale, hue_time);
fill_noise16(&leds[200], KolLed, octaves, x, xscale, hue_octaves, hxy, hue_scale, hue_time);
}
else
fill_noise16(leds, KolLed, octaves, x, xscale, hue_octaves, hxy, hue_scale, hue_time);
hxy+=hxyinc*thisdir;
x+=x_speed*thisdir;
hue_time+=hue_speed*thisdir;
}
} // noise16_pal()
#endif
Из самого «страшного», что заметил — это при подсветке синим цветом (включено заполнение черного цвета фоном), последний светодиод не светит. Во всех других режимах работает нормально.
Мне очень нравится одни эффект. Нашел его пару лет назад. ColorWavesWithPalettes by Mark Kriegsman.
Вижу, что Вы взяли палитры из этого эффекта. А сам эффект не использовали?
Ну начнем стогго что за основу взят скетч Andrew Tuline он использовал палитры и эффекты какие захотел. Я посмотрю можно ли прикрутить ColorWavesWithPalettes, но быстро не обещаю
Последний диод может зависнуть на выходе из эффекта. Например бегут сине-зеленые волны, а он ярко-розовый с предыдущего эффекта.
Потом опять нормально, потом опять не хватает шага.
Это наблюдается если включен фон. На каких именно эффектах сейчас точно не могу сказать, готовимся принимать гостей. Как будет время, понесу ноут к елке, сниму лог.
Наверное я был неправ. Заморочил вам голову. Бажек как у Lagros. Он фото выложил, где последний светодиод не горит. А у меня он может вообще не светиться, может быть розовым, может зеленым. Вот так:
Это только где он должен светиться синим фоном.
Лог нужен, в каких режимах происходит?
Если что, у меня 150 светодиодов. IR_MAX_LEDS пробовал 150 и 151. Все равно.
А скетч от 03.01. Только commands.h скопировал из предыдущего с моим экземпляром пульта.
Интересно. У меня 100 светодиодов, проверить не могу на 150.
Мне достяточно хотябы номер режима в котором этот глюк).
и также, если возможно, проверить с какого режима был переход (тоесть это всегда происходит в этом режиме или когда переход с конретного на конкретный)
150-й светодиод не светит фоном в режимах 2-4,7,10,12,17,18,23-25,27-31,36,39. Светит розовым (или красным? цветопередача у моей гирлянды неважная) в 5 и 13 режимах. Светит зеленым (или типа того) в 15 и 32 режимах. В 6 режиме при смене эффекта не горит, потом зеленый. В 24 режиме при смене не горит, потом непонятно. В остальных режимах или синий фон не предусмотрен, или трудно отловить. Единственный режим, где все нормально — 8. Если нужен весь лог, то:
Дополнительная информация
---SETTING UP---
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 опять тоже самое. Потом жена сказала, что я дурак. И я пошел писать отчет и спать. Спасибо за внимание :)
Прошил последнюю версию скетча, ошибка не ушла. KOL_LED = IR_MAX_LEDS = 150. Начал играться с пультом. Уменьшил кол-во светодиодов, потом увеличил до максимума. А последний не работает совсем. Перепрошивка не помогла. Только когда увеличил IR_MAX_LEDS до 151 и увеличил кол-во пультом до максимума стало все в порядке. Последний светик заработал. И заработал как надо, т.е. всего, что я описал выше не наблюдается. Что-то там в EEPROM хранилось не то, что надо было. Видимо до этого что-то где-то пультом наклацал. Но, все-таки, такого же быть не должно? Да, и если уменьшить кол-во до минимума, первый светодиод (в режиме настройки) не тухнет а мерцает. Так должно быть?
Попробуй выставить 149 светодиодов и проверить, этот эффект будет повторятся на 149?
лучше всего это сделать в функции setup
строка примерно 400
перед строками
Этот эффект не возникает. Но, если в начале в настройках указать оба значения 149, то сначала работают все светодиоды, а если сделать пультом меньше-больше, то потом только 148.
Немного не в тему.
Кто знает, какую эпоксидку китайцы заливают внутрь кембриков, надетых на платки со светодиодами в гирляндах на WS2811? Очень прозрачная и твердая. Как раз такая нужна.
Может не мелочатся и ювелирной? Даже не знаю где такую инфу можно выудить, а так да, прозрачность классная. У меня 100 светодиодов с эпоксидкой, а 100 — голые платки со светодиодами, как-то я пропустил этот момент при заказах в разное время.
Китайцы? Не мелочатся? Мсье фантаст-утопист))) Я вот думал взять себе еще гирлянду на 2812. Но как заставить их более-менее равномерно светить на все 360? А такой компаунд был бы кстати. Да и вообще, время от времени для разных случаев надо бывает.
Не, ну, мало ли))) Китайская ювелирная)) Вы ж с Украины, я как-то просматривал эпоксидку на розетке, там что-то попадалось по 0,5кг, вроде как прозрачная заявлялась)
Я последнее время заливаю клеевым пистолетом и потом грею феном для полного залития внутрь. Дешево и ремонтопригодно.
Но гирлянды таким образом не делал, у меня WS2812 с термоусадкой прозрачной
У меня провода зеленые, поэтому я применил зеленую термоусадку. Перед тем, как нагреть, внутрь засунул немного термоклея. А потом феном разогрел. Колхоз, конечно, но на елке не видно.
В том-то и дело, что я хотел бы сделать их похожими с другой сотней, все же в прозрачном изоляторе свет чуть больше назад рассеивается, а в непрозрачной термоусадке будет светиться только светодиод или его часть.
Спасибо автору! У меня тоже гирлянда пришла слишком поздно, залил скетч версии 4, все работает отлично. Гирлянда на 100 светодиодов, пожалуй буду докупать. Сижу, печатаю звезды-рассеиватели.
Да, уже пора запасаться :)
Я купил 100 шт., но на елку 2.1м маловато, собирался докупить, но что-то пошло не так, теперь точно еще куплю. ССЫЛКА НА ГИРЛЯНДУ WS2811
Модель выложил на thingiverse.com
Да, заливка у модели не помню, 10 или 20%. Любым прозрачным пластиком, у меня был ПЕТГ.
спасибо! а какого диаметра термоусадка налезает без проблем, не скажите? :) и еще. а вот что то из этого скетча не использовали? mysku.club/blog/aliexpress/58913.html
Когда пошел за прозрачной термоусадкой — на 9 мм не оказалось, взял на пробу 8-ю… (продают мин. 0,5м-9р).
Встало всё отлично! Даже, когда выяснилось, что в одном светике, в середине, не пропай — пролезла поверх усаженных.
PS: Спасибо автору за труд… очень симпатичная гирлянда получилась!
Правда чуть косячит: зависают изредка последние диоды (шт 5-10, по разному, систему не понял), лечу перезапуском… Esp, 2*50 диодов WS2812B, питание с 2-х концов, коньдюки на ленте и Esp повешены, посл. обновления 12 янв. установлены, пульта/кнопок нет
спасибо за доп инфу по термоусадке!
кстати попробуйте скетч отсюда… mysku.club/blog/aliexpress/58913.html
без каких то… автору данного труда мои респекты! но тот скетч как то мне ближе и переходы как то гармоничнее что-ли…
или я с этим не разобрался
тут как то иногда резко смена режимов происходит. хотя 4-тый вариант скетча заливал…
если не трудно, сообщите по результатам. потому что. может я в этом скетче что то не понял или не те настройки указал. все по умолчанию. но без пульта… но тот скетч как то мне плавнее и красивее что-ли… а этот немножко все рублено как-то :) но возможно я что то не докрутил, хотя ничего не крутил… как и там собственно.
Я побовал. Как по мне, все точно, как вы описали, только наоборот :) Оценивали всей семьей. Единогласно оставили этот. Да и тот проект на Нано не более 100 светодиодов допускает, а ЕСП под руками не оказалось. Но старт там эффектнее.
например тут смена эффекта, бегут белые огни как то медленно… как бы переключаясь, а не бежа :) и такая смена часто. иногда вся гирлянда залита синим и бац, в один миг фиолетовым, скажем…
у меня пульта нет. может подскажите свои настройки?
По эффекту пламя
ищем строку (строка 660) case 39: if(mc) {thisdelay=10;} fire(); break;
В ней переменнаяthisdelay это задержка, чем меньше число, тем выше скорость эффекта
по аналогии можно настроить и другие эффекты
Пользуясь случаем хочу спросить насчет «исчезающего» последнего светодиода. Просто делать IR_MAX_LEDS на один больше, чем KOL_LED и не морочить никому голову?
Если пульт не испрользуется поставить KOL_LED
Если используется
то установить KOL_LED количество светодиодов IR_MAX_LEDS больше на одну чем KOL_LED
и чтоб наверняка в функции setup()
вконце (строка 400 примерно) добавить строку NUM_LEDS = KOL_LED;
Они у меня дома. Точно помню, что все, что касается смены эффектов, оставил по умолчанию. Поиграйтесь #define CHANGE_SPARK от 1 до 3, выберите понравившийся вариант, и оставьте. У меня — в случайном порядке.
А можно с нумерацией скетчей внести какой-то порядок? Оставить четвёртый и следующим, если есть изменения и отличия в эффектах, давать другие названия. Пятый, шестой и т.д.
Но эти сообщения красным выводятся. Все остальные белым. Это нормально? Гирлянды пока что в пути, проверить визуально не на чем, решил с Ардуиной пока поковыряться.
БлагоДарю! Вот теперь да, только информация о библиотеке осталась:
Дополнительная информация
In file included from C:\Users\Александр\Downloads\Arduino Libraries\notamesh4\notamesh4.ino:155:0:
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 кнопок, но на что они влияют?
Кто нибудь пользуется кнопками? Как узнать какая за что отвечает?
#define KEY_ON 1 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define PIN_KEY A3 // Номер пина, куда подключены кнопки
#define LOG_ON 1 // Включить лог 1 - включить лог
где вместо A3 указать ваш номер входа куда подключены кнопки
Загрузить скетч
запустить монитор лога
и понажимать на кнопки
в логе появятся строки вида Analog Key: ###
где ### -число (код кнопки)
запомнить какая кнопка какой код имеет
2. заполнить значениями таблицу
#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 кнопке
где вместо 10, 70, 140, и т.д. заполнить ваши значения, которые соответствуют кодам нажатых клавиш. Не используемые коды ( в вашем случае KEY_6 и KEY_7 заполнить 0 (нулем)
#define KEY_6 0 // Значение соответствующее нажатой 6 кнопке
#define KEY_7 0 // Значение соответствующее нажатой 7 кнопке
далее открываем файл commands.h
там ищем какие команды нравятся (будете использовать)
в понравившейся строке команды меняем число вида 0x###### на KEY_#, где # — номер вашей клавиши
например:
Сброс настроить на клавишу 0, включить демо режим с последовательным переключением на клавишу 1, включить демо режим со случайным переключением на клавишу 2
#define IR_Key_Reset KEY_0 // Power // Сброс всех настроек и перезагрузка
#define IR_Key_Demo KEY_1 // Open // Включит демо режим (перебор)
#define IR_Key_Demo_Random KEY_2 // Prog // Включит демо режим (Случайно)
Не используемые команды желательно закоментировать для экономии памяти, либо оставить как есть
Как то так, сам не пробовал, расскажите, что получилось
Да подойдет, при этом можно кроме этого пульта использовать и любой другой, главное платка. Правда не понимаю почему сдесь светодиод (без сопротивления), странный набор
Для работы гирлянды светодиод и сопротивление не нужны. Я написал, что набор странный, не понял почему положили светодиод без сопротивления.
Сопротивление ограничивает ток через светодиод, иначе светодиод сгорит. Но для данного устройства светодиод не нужен.
Нашел один не приятный баг.
Скетч: 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 эффект и снова перезагрузка при его окончании.
Остальные эффекты прогнал до 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 // Номер пина, куда подключены кнопки
проще заменить один эффект на другой
например эту строку заменить 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;
доброго времени суток,
Спасибо автору, все получилось работает, по этой схеме делал светильник для новорождённой племянницы,
Можно ли добавить выбор белого цвета с ИК пульта
Повторил гирлянду, но к сожалению уже после НГ. Где-то в апреле. На почте посмеялсь «зачем вам гирлянды весной». Сначала на 100 диодов, после добавил еще 50. Отвез внуку заранее — ждет Новый Год :) Жена говорит надо заказать у китайцев еще светиков, и себе такую на улицу соорудить ;)
Автору респект!
И хочу напомнить, что он как-то оговорился (если мне память не изменяет) о том что подумает прикрутить управление к мобильнику.
Это было бы очень замечательно. Я так понимаю надо ESPшками запастись? :)
P.S. А то НГ не за горами, заодно и внуку обновлю гирлянду.
В этом сезоне на ESP точно не будет, только сегодня пришел мне на почту первый ESP (ESP32S), а на нем не все так просто.
если прикрутить к AVR модуль wifi, то ресурсов не хватит (надо впихнуть протокол обмена) и придется усекать количество светодиодов.
У меня был интерес прикрутить пульт которому нужны прерывания и FastLED который вырубает прерывания. Плюс оптимизировать так чтобы работало на 300 светодиодов на самой распространенной компактной ардуине нано
если прикрутить к AVR модуль wifi, то ресурсов не хватит
Я даже и не предполагал такой вариант.
Значит будем делать проверенный вариант. А мозги сменить на гирлянде дело пяти минут ;)
Просто я могу припаять, прикрутить, залить по инструкции — а програмный код не мое к сожалению.
Спасибо за ответ.
Здравствуйте уважаемый dmitrybik, присоединяюсь ко всем хорошим отзывам. Долго я ждал такого проекта, да еще с таким набором настроек с пульта. У меня есть вопросы по прошивке №4:
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),
Очень ждем Ваших доработок и обновлений.
1. Когда даю команду- "#define IR_Key_Solid_Black" (Установить цвет Черный (Выключает гирлянду)), если включена смена палитр, то лента выключается, а через заданное время смены палитр начинает включаться палитрами.
Исправил Перечитайте скетч, сам проверить не могу.
2. Как можно изменить палитры(цвет)?, хочется более насыщенных цветов.
Палитры хранятся в файле gradient_palettes.h, формат смотреть у FastLED, я его не менял. Создаете по аналогии с уникальным именем,. в конце имя прописываете в список.
3. на что влияют настройки "#define IR_Key_Delay_minus, #define IR_Key_Delay_plus", строки 104, 105.(commands.h,)
Устанавливает длину гирлянды, то есть #define KOL_LED задает максимальное количество светодиодов при компиляции, а в готовом устройстве, без компиляции также можно менять количество светодиодов с пульта но не более KOL_LED
4. Можно ли убрать строки с 36 по 101, и что это даст.(commands.h),
Можно, но ничего не даст, даже память не освободится
//////////////////////////////////////// Параметры гирлянды
////
#define COLOR_ORDER GRB //Очередность цвета светодиодов RGB или GRB
#define CHIPSET WS2801 //Тип микросхемы светодиодов в гирлянде
#define LED_DT 14 // Номер пина куда подключена гирлянда
#define LED_CK 11 // Номер пина для подключения тактов, применяется для светодиодов WS2801 или APA102
//ЕСЛИ НЕ ИСПОЛЬЗУЕТСЯ ЗАКОМЕНТИРОВАТЬ
Здравствуйте dmitrybik, все отлично работает (Черный (Выключает гирлянду)),
Есть пожелание:- включить «искры (бенгальский огонь)» как отдельную функцию, типа «Включить/выключить сверкание».
Спасибо.
@dmitrybik Дмитрий, небольшой фидбек по последней прошивке.
Вводные: в скече отключил дефолтный пульт, а в commands назначил все кнопки, которые мне нужны на пульт от sony. По количеству кнопок точно так же как там было по дефолту, только коды кнопок свои.
Также в скече убрал временные задержки смены режимов.
Дампером нажатия пульта считываются, ошибок процент минимальный, только если сильно мимо направить. Ситуаций когда кнопка нажата, а сигнал не поступил или обработался не так фактически нет.
Теперь о проблеме зависаний:
Nano 328р. Иногда реакция на команды пульта моментальная, несколько команд подряд с небольшой временной задержкой отрабатываются моментально. А иногда можно 10 раз на кнопку нажать — 0 реакции. Не скажу, что увидел закономерность, но чаще всего этот глюк можно поймать в режимах выбора цвета. Типа включил желтый и потом можно 15 раз нажать на кнопку. Сигнал до ардуино точно доходит (на приемнике мигает светодиод). Одновременно с этим на режимах с одним единственным цветом замечен глюк, что, например с полностью белого, на допустим, желтый гирлянда переключается не полностью, а половиной. Т.е. часть диодов начинает гореть желтым, а часть остается белым. Если затем проявить настойчивость и несколько раз нажать на пульте на, скажем зеленый, то она запросто вся переключится на зеленый полностью. Т.е. опять же без закономерностей.
Думал проблема в памяти или процессоре. Решил не разбираться с этим и сразу проверить на Mega 2560. В ней после заливки скеча осталась куча свободной памяти, но проблема осталась та же.
Что это может быть и как бороться? Пока решил отключить пульт и попробовать кнопками, буду изыскивать рабочий вариант.
.
Если мы говорим про ИК пульт то в нем команда долгого нажатия имеет другую команду.
Все проверяется запуском скетча из примеров IRremote с названием IRrecvDemo
Посмотреть что приходит при нажатии пульта.
Результат сюда, будем разбираться
в скече отключил дефолтный пульт
а тудже пишете что
реакции на команды пульта
Видимо, не четко выразился. Я имел в виду, что в скече в описанном случае не выбирается какой-то конкретный пульт по марке, sony, nec и т.п. То есть в настройках напротив их значений стоят нули, но само использование пульта с гирляндой включено. Commands.h при этом заполнен кодами кнопок снятыми с дампера.
Все проверяется запуском скетча из примеров IRremote с названием IRrecvDemo
Посмотреть что приходит при нажатии пульта.
Проведу сегодня эксперименты и дам знать + попробую на самой гирлянде поиграть параметром долгого нажатия и описать результаты.
Кстати найти пульт с Unknown encoding оказалось не так уж сложно :) Достаточно попробовать пульт от кондея, в моем случае тошиба. Хотел сначала на него прицепиться, т.к. зимой он самый ненужный в доме, но смутила эта ошибка, не стал.
Видимо, не четко выразился. Я имел в виду, что в скече в описанном случае не выбирается какой-то конкретный пульт по марке, sony, nec и т.п. То есть в настройках напротив их значений стоят нули
Не корректно в 4 скетче строка:
#define IR_NEC 1 // пульт NEC
То есть включен Neс код пульта
При запуске демо, который я указал, видно какая кодировка пульта
Т.е. кнопка корректно декодируется с энного раза. Уточню, что в логе выше я жал все время на одну и ту же кнопку 0x6D25.
В двух примерах выше гирлянда отключена, т.е. чисто источник питания в виде USB порта ноута + нано + vc1838b. Запитывал еще и дополнительно через источник питания (5в 10а) — аналогично ведет себя.
Более того, если подключить гирлянду, к нано, то могут вообще начаться фантомные нажатия. В примере ниже я не жму никаких кнопок вообще
От схемы с аналоговыми кнопками гирлянда работает идеально.
При запуске демо, который я указал, видно какая кодировка пульта
Он определяется как Sony, но если проставить
#define IR_SONY 1 // пульт SONY,
картина останется прежней.
Во всем этом меня смущает то, что в IRrecvDemo никаких фантомных нажатий, кнопки декодируются корректно. Стоит залить скеч, не меняя схему — начинается описанное выше.
Это так и должно быть.
Напоминаю: Библиотека FastLED во время передачи вырубает прерывания, а для работы пульта они обязательны. отсюда и проблемы с пультом. Я применил решение которое делает не срабатывание пульта менее 20%, что достаточно для работы и не обременительно.
Можете попробовать проект автора он за год тоже вставил работу пульта, можно попробовать его.
Еще раз напоминаю, я хотель выжать максимум, на что способен Нано, здесь идеть жесточайшая экономия памяти с максимальными возможностями. 300 светодиодов, огромное количество эффектов работа с пульта и кнопок
Теперь по вашему логу
Если пульт с протоколом сони то его и надо ставить
код 0xFFFFFFFF это код повтора предыдущей команды, если непрерывно жать на кнопку пульта то идут эти команды. попробуйте нажимать на пульт не длительно а часто.
Если пульт с протоколом сони то его и надо ставить
Да, ставил в какой-то из итераций тестов, разницы особо не увидел, но оставлю раз надо.
Осталось мне победить фантомные команды, когда пульт не нажат. Я так понимаю, что это уже сама лента создает помехи на линию питания при мигании, т.к. заметил вчера в полной темноте, что светодиод на vc1838b еле заметно мигает в такт мигания самой ленты.
Если датчик пульта в металлическом корпусе, то его надо посадить на минус.
Также минус от датчика надо отдельно провести до блока питания. ну и провода короче
Здравствуйте, уважаемый dmitrybik! Спасибо за Вашу работу. Собрал, залил скетч все сразу заработало на ардуино нано, 240 светодиодов (пока без елки)) Сейчас пытаюсь разобраться с управлением, с пульта хотелось бы иметь возможность полностью выключать и включать гирлянду. В настройках нашел только включение «черного цвета» но у меня остается фоновая подсветка и искры. Можно ли настроить полное выключение одной кнопкой?
PS: Я сейчас переписал библиотеку FASTLED под контроллер STM32L151 с использованием аппаратного SPI, но при этом пришлось выкинуть огромное количество поддерживаемых типов протоколов светодиодов, остались только WS2812b и совместимые. Постараюсь адоптировать под ардуино, но надо время. пульт должен работать корректно.
Как я понял в этом примере один первый диод в ленте должен моргать красным светом а у меня также тупо постоянно светит белым. Лента 2811, 5В. Какая то ерунда с лентой посмотрел осциллом в ленту отправляется то что нужно а светит белым. Вывод китайцы гады не понятно что за чипы впихнули или я что-то не так делаю?
либо проблема с ардуиной, можно попробовать сменить пин
либо проблема с лентой, можно подключить второй светодиод
либо проблема с настройкой скетча, выбрать другой тип светодиодов
1. кинуть мне, я добавлю или
2. заменить один из эффектов на свой по аналогии или
3. Написать функцию в новом файле с расширением h
использовать MAX_LEDS и KolLed в функции, отвечающие за количество светодиодов
в файле notamesh4.ino в строке 667 добавить
case 42: if(mc) {thisdelay=10;} xxxxxx(); break;
где thisdelay=10 задает задержку (влияет на скорость)
xxxxxx() — ваша функция
Скажите. Вроде должно при включении происходить эффект бенгальского огня. И потом уже запускаются эффекты. У меня после включения несколько секунд ничего не происходит. Гирлянда не горит. А потом уже запускаются эффекты. В параметрах программы включить блеск при запуске стоит 1. Или этот параметр что то другое.
Гирлянда на 150 светодиодов. Пульт не подключен
Это первая поделка на Arduino NANO. Полный ноль в этом.
Здравствуйте, посмотрите пожалуйста, работает ли функция сохранения эффекта: «Сохранить эффект как запускающийся первым».
У меня, после последнего обновления, перестала.
На пред идущей прошивке работает.
У меня тоже на монитор порта все приходит как у Вас, делаю те же операции, только эффекты переключаю #define IR_Key_Previous_mode, а когда перезапускаю, то включается первый эффект.
В файле CANDLES_H изменил параметры: uint8_t flicker= random8(1,80); и leds[x] = CRGB(255 — flicker * 2, 150 — flicker, flicker / 2);--
стало похоже на свечи.
Где можно поиграться со сверканием, блеском и свечками?
С блеском ничего не получается(в языке программирования я не силен),
хочется изменить длительность вспышек и количество.
В строке -52 if( random8() < chanceOfGlitter) {, меняя знак больше меньше,
меняется количество, но грубо.
Программа сильно оптимизирована чтобы экономить память.
Длительность не регулируется, либо менять код и хранить массив с координатами блесток
Количество блесток установлено так
Один шаг одна блестка (при этом она появляется с вероятностью 10 из 255
Вероятность задается в файле notamesh4.ino в строке 498
if(glitter) addglitter(10); // If the glitter flag is set, let's add some.
где 10 вероятность
По количеству, просто скопируйте эту строчку сколько надо раз
Здравствуйте, заметил особенность,:- при прописывании «1» в строке 101 #define GLITER_ON // Включить блеск при запуске, перестает работать автоматическая смена палитр.
Режим работы — 110 #define DEMO_MODE 1
Обновил, поменял в скетче только COMMANDS_H на свой пульт, теперь палитры вообще не меняются при запуске( что с 1 на блеске, что 0). С пульта нажимаю авто смена палитр — тогда работает.
Монитор порта пишет, что на некоторых программах смена палитр идет, а на некоторых нет.
Не идет, потому что в данном эффекте нет возможности менять палитру, Не все эффекты умеют ее менять, по этому в мониторе я и вывожу строку, что смена палитр отключена (Change palette off).
Здравствуйте, помогите разобраться. При подключении ws2812b, диоды горят белым цветом и ничего не происходит. Пробовал разные скетчи, одинаково. Ws2801 запускается без проблем.
У меня сейчас гирлянда ws2811, валялся кусок ws2812b, подключил-работает(ws2812b), только поправил последовательность цветов на GRB.
И без правки цветов тоже работает. В скетче строку «89 #define CHIPSET WS2811 //Тип микросхемы светодиодов в гирлянде» не менял.
Значит точно не в ноем скетче
либо проблема с ардуиной, можно попробовать сменить пин
либо проблема с лентой, можно подключить второй светодиод
либо проблема с настройкой скетча, выбрать другой тип светодиодов
Библиотека FastLED не работает, почему то, она не моя
Попробуйте библиотеку НЕО демку какую то, если и она даст сбой, то меняйте ардуинку, может в ней кварц неправильный
1. Если строке 105 включена в 1 или 2 — это влияет на программу №40
2. Так же это влияет на Демо режим №1 — появляются глюки в программах.
3. Не работает режим 103 #define IR_Key_Save_Mode, на мониторе команда проходит, а программа не сохраняется.
Здравствуйте Дмитрий, все отлично. Не хочу быть навязчивым, но можно ли сделать раздельно
(#define CHANGE_SPARK 1 // Эффект смены) от (#define GLITER_ON 0 // Включить блеск при запуске).
А то хочется что б запуск происходил с эффектом, но при этом не было блеска.
На Ардуино 1.6.5 для arduino nano при компиляции выдает «эскиз слишком большой, глянь… для советов по диете». Т. е. Памяти контроллера 328го не хватает. Это для четвертой версии прошивки. Первые три работали на ура. Помогите советом, что делать.
Подскажите, можно ли как то сделать, что бы сигнал который идёт на светодиоды дублировался ещё на каком нибудь другом выходе? Например как на 13 выводе ардуино(если выбран выходом) моргает светодиод. Мне нужна отдельная индикация работы. А нагружать дополнительным диодом выход не хотелось бы.
Практически да, но стоит ли.
1 вариант переделать библиотеку FastLed (это к разработчику) найти строку вывода и продублировать на другой выход
2 вариант Создать Вторую копию массива LEDS (строка 357) с добавочным пином, но у вас памяти не хватит по второму варианту за подробностями к документации FastLed
проще подключите ко входу буферный элемент (транзистор или полевик или логический элемент или операционный усилитель) и подключите к нему светодиод
uint8_t max_bright = 255; // Overall brightness definition. It can be changed on the fly.
и не зависит от клавиш и пульта, можно поменять командами IR_Key_Brightness_plus и IR_Key_Brightness_minus
В библиотеке есть также ограничение на яркость это строки
#define POWER_I 5000 // Ток блока питания в милиАмперах
Подскажите пожалуйста если я ставлю
uint8_t max_bright = 96;
и во вкладке «getirl.h»
меняю 35 строчку:
max_bright=min(max_bright*2,255);
на:
max_bright=min(max_bright*2,max_bright);
будет ли ограничиваться максимальная яркость при управлении с пульта?
min вычисляется так min(a, b) ((a < b)? a: b) то есть пока max_bright*2 меньше max_brigh будет выдаваться max_bright*2 если больше или равно то max_bright
Получается в этой строке max_bright всегда будет оставаться прежней т.к условие не выполняется
будет ли ограничиваться максимальная яркость при управлении с пульта?
увеличиваться не будет, что соответствует будет ограничена
Ещё вопрос по режимам работы:2 — демо режим с случайным перебором эффектов и 4 — демо режим с случайным перебором выбранных эффектов. Эффекты будут перебираться абсолютно случайно? Или случайно, но так когда следующий за воспроизводимым эффект будет выбран из тех, которые ещё не были воспроизведены? А те эффекты, которые уже были воспроизведены будут ждать нового цикла.Так иногда делают разработчики подобных конструкций.
Как я говорил выше, здесь происходит максимальная экономия памяти. самый экономичный способ это
Эффекты будут перебираться абсолютно случайно
Для режима
А те эффекты, которые уже были воспроизведены будут ждать нового цикла
требуется память для хранения уже воспроизведенных эффектов, этого в программе нет и не будет для этого контроллера, иначе быстро перейдем от 300 светодиодов к 100
Добрый день Дмитрий. Подскажите пожалуйста, в чем может быть проблема. Использую Arduino Mega, ленту WS2812b на 450 светодиодов, блок питания 5V 12A и последний скетч notamesh4. В скетче менял только количество диодов и пин подключения ленты. Все прошивается, но при включении моргает только первый светодиод. С пульта добавляю всю цепочку, сохраняю как первый эффект. Быстро выключаю и включаю, все работает. Но стоит выключить на длительное время, все повторяется вновь, только первый светодиод. Со скетчем notamesh3 все работает нормально. Помогите понять причину или может что то нужно исправить в скетче. Скоро новый год, хотелось бы закончить гирлянду.
Добрый вечер Дмитрий. Подключил к елочной гирлянде, все отлично. Запуск и выбранные эффекты обрабатываются корректно. Спасибо Вам за помощь и за отличный проект.
офигенный петух гавер. использовал чужие коды, использовал чужую доработку и запилил видео со сраными реферальными ссылками на али ради баблишка. при этом даже не почитал комменты (ну раз он не знает как запустить больше 300 диодов). весь российский diy во всей красе.
Алекс Гайвер нормальный парень. Просто Дмитрий уже отлично поработал над этим скетчем и добавлять нечего! Дмитрий, спасибо за работу. Слежу за проектом с самого начала.
Не вижу смысла дублировать. И управление одной кнопкой крайне не удобное. Не думаю что через год вспомните что означает тройное нажатие. А так работа с кнопками реализована в текущем, 4 скетче
Посмотрел я библиотеку управления одной кнопкой, она крайне расточительна по использованию памяти, почти 20 байт используется глобальных переменных на одну кнопку, а если их две?
Повторяю главный концепт этого проекта: максимальная экономия оперативной памяти.
Добрый вечер, помогите пожалуйста разобраться с проблемой, купил 2 гирлянды по 50 светодиодов на ws2811 колпачки так называемые, по отдельности каждые 50шт работают идеально, а если последовательно то дальняя не работает, указываю 100 диодов, но если выключить IR_ON == 0 то работает вся длинна…
Добрый вечер, Дмитрий. Гирлянду включаю без пульта в демо режиме 1. Проблема в следующем: переход между эффектами происходит только с режимом метеорит, пробовал все варианты и искры и яркий свет и случайный(но все равно переход только с метеоритом). Подскажите пожалуйста в чем может быть проблема, может где-то еще менять надо что-то?
Подскажите у меня у одного проблема " при нажатии кнопки пульта начинает тормозить эффект" и любые другие команды с пульта не сразу срабатывают а то и вообще не срабатывают
Ответ уже был, повторяюсь:
Это так и должно быть.
Напоминаю: Библиотека FastLED во время передачи вырубает прерывания, а для работы пульта они обязательны. отсюда и проблемы с пультом. Я применил решение которое делает не срабатывание пульта менее 20%, что достаточно для работы и не обременительно.
Можете попробовать проект автора он за год тоже вставил работу пульта, можно попробовать его.
Еще раз напоминаю, я хотель выжать максимум, на что способен Нано, здесь идеть жесточайшая экономия памяти с максимальными возможностями. 300 светодиодов, огромное количество эффектов работа с пульта и кнопок
Спасибо Дмитрий за этот проект! Поскольку я не программист ни разу), хотел-бы Вам предложить добавить в гирлянду еще один шикарный новогодний эффект — фейерверк. www.anirama.com/1000leds/1d-fireworks/. Возможно ли такое добавить в Ваш скетч?
на елке он будет не понятно выглядеть. сначала один огонек побежит вокруг елки потом где то по середине елки засветится линия. (это когда гирлянда накручена на елку)
В 5 скетч, где будет что то подобное в виде матрицы добавлю
Спасибо за скечт. Почему то правленный гайвером у меня с активацией ик пульта не работает. А Ваша версия №4 заработала. Были остатки самопаянной гирлянды. Чуть переделал её и использовал на велике. Мне понравилось.
Эффекты примерно с 3:55
На окне уже второй год сетка. Подключил Ваш скетч к ней. Жду вечера, пойду на улицу смотреть как отыграет. Но боюсь ИК пульт не дотянется до 2 этажа и через улицу.
Спасибо.
Привет. Гирлянда не оторваться. Вот, только у меня зависает не пойму по какому алгоритму. Лог отключен, пульт отключен, кнопок нет. При компиляции на память не ругается. Лента 300 светодиодов. Похоже на то, что проходит цикл и зависает. С пультом и логами ругается на память, зависает тоже) может рано зависнуть, а может долго работать примерно цикл.
Посмотрите на странице Гайвера. На ней внизу, где комментарии из вконтакте, кто-то нашел ошибку в эффекте огня при светодиодах больше 250 и приложил изменение кода для исправления ошибки.
все таки похоже нехватка памяти попробуйте закомментировать строку 684
case 39: if(mc) {thisdelay=10; palchg=0;} fire(); break;
и строку 324
#include «fire.h»
если зависать перестанет то точно нехватка памяти
Я заказал мегу, придет буду тестить. Те у кого она есть могли бы и лог кинуть, где зависает. Пока склоняюсь к проблеме в ардуино, перевел все на контроллер STM32L151 на IDE SEGGER там работает максимум на 2500 светодиодов. на 500 я проверял.
и это все по настройке, остальное там все настроено
я уже писал про стабильность работы пульта
Это так и должно быть.
Напоминаю: Библиотека FastLED во время передачи вырубает прерывания, а для работы пульта они обязательны. отсюда и проблемы с пультом. Я применил решение которое делает не срабатывание пульта менее 20%, что достаточно для работы и не обременительно.
Можете попробовать проект первого автора Andrew Tuline он за год тоже вставил работу пульта.
поясню, надо ставить 1 для тех пультов которые вы используете, остальные протоколы использоваться не будут, чтобы уменьшить используемую память.
Ну если хотите удалить сами то они находятся тут C:\Arduino\libraries либо Мои документы\Arduino\libraries в папке IRremote тогда все вопросы к разработчику IRremote
давно слежу за проектом. Трудится олна Pro mini почти без проблем — за месяц два раза пришлось перепрошивать только и Мега, но та зависает очень часто. /Висит за окном — нет возможности доставать и смотреть.
Но я всегда не понимал один момент з пультом. Если я определю, что пульт у меня NEC, то достаточно включить соответствующую строку (поставить 1 ) и уже не надо считывать и записывать команды? Или всё-равно придётся считать коды для каждой кнопки и прописать их?
Nec Это стандарт шифрования, каждая фирма командам своего пульта делает уникальный код, чтобы пульты одной фирмы не управляли устройствами другой фирмы, У меня в проекте используется пульт от SUPRA DVD
Значит если у вас пульт тоже SUPRA, то кодировать не надо, иначе придется.считывать.
В проекте команды пульта вынесены в отдельный файл и достаточно этот файл не затирать при каждом обновлении
Дмитрий, с Новым Годом! Еще раз спасибо за этот замечательный проект.
Запустил последний вариант на 230 светодиодов с пультом и 15-ю кнопками одновременно. Памяти совсем не осталось. При этом пришлось отключить лог, свечи и MY_MODE. Как там Mega, еще не приехала? А то хотел еще прикрутить хотя бы 3-циферный дисплейчик для удобства пользования.
С новым годом!
Мега не приехала, но ошибки найденные в теме Гувера, в моем скетче также исправлены. теперь должно работать на меге с большом количеством светодиодов
Залил без логов и пульта 300 диодов работает уже часа 2. Надо попробовать без лога и с пультом проверить. Заметил правда просто непонятные мигания, похоже на эффекте огня, но при смене на следующий все норм. Плата нано.
Проработала весь день с последним скетчем. Нано, 300 диодов, без логов, без пульта. Вполне нормально. Только судорожный эффект огня, хотя и не напрягает))
Поздравляю всех с НОВЫМ ГОДОМ!!!
В честь этого события выкладываю новый скетч на 122 эффекта
Добавлен эффект бегущих огней
Проверяем… (у меня ардуинки нет сейчас до конца праздников)
Если выдает нехватку памяти на нано, отключайте что нибудь :)
Цифровыми кнопками с пульта режимы с номером больше 99 не набрать. Режимы от 101-го вверх и от 122-го вниз командами next и prev с пульта не меняются. Памяти не хватает, нужна мега. Вот думаю, есть ли смысл? Мне кажется, что будет слишком много бегущих огней.
У кого есть что-то подобное esp8266, то автор первоначального скетча выложил notamesh+esp8266+mqtt тут github.com/atuline/ESP8266-FastLED/tree/master/mqtt-mesh
Можно прикрепить удобный пульт на базе например iot mqtt panel с бесплатным брокером например cloudmqtt. Без проблем вносятся недостающие эффекты из данной темы.
Скажите. 80 новых эффектов, это различные вариации одного эффекта бегущий огонь? Если так, то это многовато, да и однообразно. можно как нибудь убавить?
функция running_fire() запускает «машину» которая делает бегущий огонь. Проблема в том что вариантов бегущего огня много, (пользователь может создавать свои), вариантов отображения тоже (в данный момент 4) вариантов погасить тоже. По этому так и получилось много.
На меге в этом варианте не работают бегущие огни. Никакие. Смена эффекта выглядит так: вся лента сначала светится фоном, затем начинает заполняться от первого светодиода к последнему белым цветом следуя за «головой» метеорита. Если же набрать номер эффекта цифрами на пульте, то глюки бывают совсем непредсказуемые. Например сначала часть светодиодов статично светится неярким розовым, часть голубым, потом начинает медленно хаотично по одному заполняться ярким белым. При этом лог выглядит как обычно. Режимы 0-41 работают. Предыдущий вариант работал вроде нормально. Причем компилятор ни на что не ругался. Недолго я его гонял, глюков не заметил. Днем верну его, погоняю еще.
Заметил баг в последней версии.
Изменения мои: 170 диодов, и коды кнопок.
Включаю, смеша эффектов (то что по умолчанию), через минут 30, примерно, а может и меньше гирлянда зависает на белых огнях — вся светиться белым и все, на кнопки не реагирует. Только выключение и включение.
Дмитрий, огромная благодарность за ваш проект! вопрос подарков на Новый Год был решен! Спасибо!!!
по заключительному варианту plus, у меня пока все нормально, 100 светодиодов, работает два часа, пульт IR использую.
отрывок моего варианта настроек, перемешал в MY_MODE оригинальные эффекты с бегущими огнями, и указал MY_MODE режим при включении. мне кажется так интересней стало смотреться, по крайней мере на ёлочке
#define KOL_LED 300 // Сколько светодиодов в гирлянде при первом включении
#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 потом, эффекты продолжаются.
Скинте ваши настройки, сюдя по логу у вас просто приемник пульта барахлит:
зависаний не вижу
а библиотека пульта работает на прерываниях, ей зависания не помеха
#define KOL_LED 230 // Сколько светодиодов в гирлянде при первом включении
#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 типов разных. Остальные же команды обрабатываются корректно.
В том логе, что выше, это не с фотоприемника такой мусор лезет, это ардуина виснет и вот это вот все в порт выдает.
Завтра еще попробую переназначить кнопку на пульте. Может ей не нравится именно эта команда, которая сейчас?
А можно также исправить тот скетч, который не плюс? А то есть еще одна гирлянда на нано, в которую не влазит плюс, так она на 22-м эффекте или виснет, или перезагружается.
Добрый день!
К Mege подключено 960 светодиодов, без пульта (4+). Всё вроде работает кроме первого эффекта, цветная волна бегает примерно до первых 250 диодов. Можно как то поправить?
на 300 бегала нормально не замечал такого, проверил на 400, 600 960, 1500
Подтверждаю, как бы волна до 255 светодиода, остальные однотонно закрашиваются.
Пока разборку отложу но исправлю позже.
Вот хороший проект github.com/evilgeniuslabs/tree-v2. В этот НГ делал его на белую елку. А на зеленую сделал этот, но версию без +. Как мне показалось, что в этом проекте цвет светодиодов и цветовых переходов какой-то не очень красивый, вроде как отдает в синий, пурпур и фиолетовый, а вот тот на который дал ссылку выдает очень приятные цвета. Но там автор (судя по скетчу, в нем ссылка есть) заморочился с какими-то палитрами для цветовых переходов, может быть дело в них?
А у вас как ощущение от цветов, нет такого, что много пурпура и фиолета?
Основа заложена Andrew Tuline именно его палитры используются, но всегда можно сменить на другие, если бы дали ссылку на палитры, я бы добавил/поменял
В проекте что мне дали ссылку, палитры одинаковые как у меня, у меня даже на одну больше (bhw1_28_g)
Все работает, не зависает. Нано, 300 диодов. Единственное режим огня — просто мерцания. А так всё отлично, если не говорить, что это огонь, то и никто не узнает)))) Автору уважение.
Настройки те же, что я приводил 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 // Сколько светодиодов в гирлянде при первом включении
Обновлю, спасибо.
Кнопки я как раз нужные дорисовал, но я не это хотел узнать. Почему когда загружаю скетч, в котором прописано, пусть будет, #define KOL_LED 230, а до этого я с пульта настроил длину 99 светодиодов, то эти же 99 и остаются? Т.е. будет
Т.е. данные в ЕЕПРОМ при включенном пульте меняются только с пульта? При загрузке скетча с #define IR_ON 1 ячейка, где хранится длина, не перезаписывается?
Не понял вопроса. Отвечу максимально подробно.
Если строка 375 не менялась (#if IR_ON == 1)
Логика такая: Если включен пульт, то длинна берется из еепром
если пульт не включен то длинна берется из переменной KOL_LED
Если поменяли в строке 375 один на 2, то длинна берется из переменной KOL_LED
Если поменяли в строке 375 один на 0, то Если включен пульт, то длинна берется из переменной KOL_LED,
если пульт не включен то длинна берется из еепром
Похоже дело ещё в том, что эффект огня не всегда включается или сглючивает и пропускается, потому, что повторно может и не повториться такое мерцание или с самого начала не включается эффект огня.
Спасибо за такую красоту. запастись светодиодами не успел. Поэтому сделал короткую версию на велосипед.
При установке настройки «Включить плавную смену эффектов» в 0. Выдаёт ошибку. Версия 4. Но возможно пофиксили, качал до НГ.
PS (подскажите как прятать под спойлер? вроде выбираю его, но когда сообщение опубликовано, спойлер не открывается).
Добрый день. Можете подсказать в версии 4+ есть что-то похожее на пинание повербанка? Версию 4 использовал на Ардуино УНО, подключал к повербанку, катался на велике час, ничего не отключалось. Записал версию 4+ на ардуино нано. подключаю к тому же повербанку, 5-10 минут и гирлянда не горит.
Странно, нету ничего подобного. Потребление не должно меняться.
значит в этой версии светодиоды светят чаще на полную мощность.
Я могу следить косвенно по нагреву блока питания. Нагрев не поменялся.
Могу рекомендовать 2 варианта
Либо в строке 98 уменьшить ток до 500 (ну или 1000)
#define POWER_I 5000 // Ток блока питания в милиАмперах
Либо уменьшить яркость в стоке 218 поставить 150
uint8_t max_bright = 255; // Overall brightness definition. It can be changed on the fly.
Скорее всего Вы не правильно поняли. У повербанка есть видимо какая-то функция, как-только потребление становится маленьким, он выключается. Вот видимо в каких-то режимах гирлянда потребляет мало и повербанк отключается (гирлянда перестает светить). АлексГайвер добавлял что-то в прошивку, чтобы арудинка каким-то образом дёргала (возможно повышала потребелние) повербанк и тот не выключался.
Подскажите пожалуйста как сделать чтобы при включении загоралось только одним цветом, например белым и не переключались эффекты пока пультом не включишь. Хочу сделать подсветку на кухне, но с возможностью иногда порадовать глаз эффектами.
Я проект для елки делал, а теперь после велосипеда уже на кухню ставят… ;-)
1 установить режим 0
#define DEMO_MODE 0 // Режим при включении
// 0 - последняя запущенная программа
// 1 - демо режим с последовательным перебором эффектов
// 2 - демо режим с случайным перебором эффектов
// 3 - демо режим с последовательным перебором выбранных эффектов
// 4 - демо режим с случайным перебором выбранных эффектов
2 установить нужный цвет строка 427 (для примера цвет белый)
Я делаю так: после запуска выбираю цвет кнопкой с пульта (в файле commands.h где-то в конце) И грилянда ждёт следующей комманды продолжая светить выбранным цветом — например жёлтым… Хотя вариант от автора однозначно лучше. Спасибо ему за труды
Переписал файл commands.h записа в него команды своего пульта. У меня получились такого вида 1FE0CF3. Пульт маленький, кнопок не хватало, поэтому некоторые строки задокументировал нулём. При компиляции выдаёт ошибку
In file included from D:\RestoreWindows\Dropbox\Public\Ардуїно\Скетчі\notamesh4\notamesh4.ino:321:0:
getirl.h:33:13: error: user-defined literal in preprocessor expression
#if IR_Key_Brightness_plus
^~~~~~~~~~~~~~~~~~~~~~
getirl.h:43:13: error: user-defined literal in preprocessor expression
#if IR_Key_Brightness_minus
^~~~~~~~~~~~~~~~~~~~~~~
getirl.h:53:13: error: user-defined literal in preprocessor expression
#if IR_Key_Reset
^~~~~~~~~~~~
getirl.h:134:13: error: user-defined literal in preprocessor expression
#if IR_Key_Rotate
^~~~~~~~~~~~~
getirl.h:145:13: error: user-defined literal in preprocessor expression
#if IR_Key_Speed_minus
^~~~~~~~~~~~~~~~~~
getirl.h:154:13: error: user-defined literal in preprocessor expression
#if IR_Key_Speed_plus
^~~~~~~~~~~~~~~~~
getirl.h:163:13: error: user-defined literal in preprocessor expression
#if IR_Key_Glitter
^~~~~~~~~~~~~~
getirl.h:185:15: error: user-defined literal in preprocessor expression
#if IR_Key_Candle
^~~~~~~~~~~~~
getirl.h:199:13: error: user-defined literal in preprocessor expression
#if IR_Key_Previous_mode
^~~~~~~~~~~~~~~~~~~~
getirl.h:211:13: error: user-defined literal in preprocessor expression
#if IR_Key_Next_mode
^~~~~~~~~~~~~~~~
getirl.h:356:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_0
^~~~~~~~~~~~~~~~
getirl.h:368:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_1
^~~~~~~~~~~~~~~~
getirl.h:380:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_2
^~~~~~~~~~~~~~~~
getirl.h:392:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_3
Декілька бібліотек було знайдено для «FastLED.h»
Використано: C:\Users\Home\Documents\Arduino\libraries\FastLED-3.2.6
^~~~~~~~~~~~~~~~
Декілька бібліотек було знайдено для «EEPROM.h»
getirl.h:404:13: error: user-defined literal in preprocessor expression
Використано: C:\Users\Home\Downloads\arduino-1.8.10-windows\arduino-1.8.10\hardware\arduino\avr\libraries\EEPROM
#if IR_Key_SetMode_4
Декілька бібліотек було знайдено для «IRremoteInt.h»
^~~~~~~~~~~~~~~~
Використано: C:\Users\Home\Documents\Arduino\libraries\IRremote
getirl.h:416:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_5
^~~~~~~~~~~~~~~~
getirl.h:428:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_6
^~~~~~~~~~~~~~~~
getirl.h:440:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_7
^~~~~~~~~~~~~~~~
getirl.h:452:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_8
^~~~~~~~~~~~~~~~
getirl.h:464:13: error: user-defined literal in preprocessor expression
#if IR_Key_SetMode_9
^~~~~~~~~~~~~~~~
getirl.h:726:12: error: user-defined literal in preprocessor expression
#if IR_Key_Palette_Stop
^~~~~~~~~~~~~~~~~~~
getirl.h:735:12: error: user-defined literal in preprocessor expression
#if IR_Key_Palette_Previous
^~~~~~~~~~~~~~~~~~~~~~~
getirl.h:749:12: error: user-defined literal in preprocessor expression
#if IR_Key_Palette_Next
^~~~~~~~~~~~~~~~~~~
getirl.h:763:12: error: user-defined literal in preprocessor expression
#if IR_Key_Palette_Auto
^~~~~~~~~~~~~~~~~~~
getirl.h:772:12: error: user-defined literal in preprocessor expression
#if IR_Key_Solid_Black
^~~~~~~~~~~~~~~~~~
getirl.h:782:12: error: user-defined literal in preprocessor expression
#if IR_Key_Solid_Red
^~~~~~~~~~~~~~~~
getirl.h:802:12: error: user-defined literal in preprocessor expression
#if IR_Key_Solid_Yellow
^~~~~~~~~~~~~~~~~~~
getirl.h:812:12: error: user-defined literal in preprocessor expression
#if IR_Key_Solid_Green
^~~~~~~~~~~~~~~~~~
getirl.h:832:12: error: user-defined literal in preprocessor expression
#if IR_Key_Solid_Blue
^~~~~~~~~~~~~~~~~
exit status 1
user-defined literal in preprocessor expression
Не подскажете что сделал не так. Сам не могу разобраться.Скетч 4 -ой версии
Добрый день, Дмитрий. Попробовал notamesh4 plus. Обратил внимание, что через какое то время стоит один и тот же режим (который включается изначально). Происходит смена режима (эффект бенгальского огня), но следующий режим тот же самый. Другими словами, эффект смены режима есть, но режим не меняется. У меня Arduino Mega 2560.
Ну что могу сказать, ESP как и STM32 это уже другая платформа.
Т.к. я на этот проект выделяю только крупицы свободного времени. мне хотелось их применить в рост в высоту (доделать 5 версию скетча), а на рост в шир (переход на другие платформы) на STM32L1 переведен, на остальные планируется, но вот когда это произойдет, это вопрос вопросов.
PS: и мое мнение, пока это AVR (8 битный контроллер) это проект — хобби (без коммерческой составляющей, хотя уже находятся люди которые получают прибыль с него), при переносе на 32 битную платформу начнутся копии копий…
Уже сейчас кол-во эффектов зашкаливает, а юзабилити немного хромает. Согласитесь, вспомнить через год, что тебе нравились 49, 5 и 62 эффект, и домотать до них пультом… то ещё удовольствие.
Идеальным было бы управление/настройка через браузер (или даже) через смартфон. Обновление по воздуху (OTA), также много удобнее, плясок с ноутом под елкой. Не хватает, имхо, функции будильника (нехай сама утром и вечером включается и перед сном выключается).
Все это и многое другое реализовать на уно/нано практически невозможно. Да и смысл за них держаться, если тот же esp, при тех же размерах и схожей цене предлагает куда больше возможностей. Да и просто развязать себе руки, перестав выкраивать каждый байт из 30кб — уже повод сменить платформу.
Все вышесказанное сугубо моё имхо и хотелки. Вам же респект за труд и поддержку. С уважением!
для установки 62 эффекта на пульте на жать кнопки 6 и 2, для 49 нажать 4 и 9
лишние эффекты убрать и очередность можно установить «выбранные эффекты»
В 5 скетче можно будет удалять эффекты их прошивки
Управление да возможно удобнее, но это в планах,(уже куплено и лежат на попробовать ESP-12e и ESP32 и ждут своего времени)
Но есть люди у которых нана на 168 меге, и просят… и заррработал скетч
«здесь до октября никого нету :(»
Ну не все так печально. Я поглядываю иногда и коплю железки и светики ;)
«У кого есть сабж на руках»
Было пару штук, но использовал.
Сегодня по случаю попалась в магазине, как чувствовал взял.
Только мне пульт и на… не нужен. Интересней чарез ВайВай. И надо гирлянды подлатать — китаец коцанные прислал.
На днях попробую выделить время :)
здравствуйте. Вопрос по очередности цветов RGB или GRB. Если ставлю первый (у меня гирлянда которая на тоненьких проволочках чипы ) то практически нет красно-сиреневых цветов в эффектах. Преобладание сине-зеленых. Только при бегающей радуге есть все цвета. Если ставлю второй, то практически не вижу зеленый. Но чаще красный, желтый, сиреневые, синий. Какой в итоге правильный?
Приветствую Вас друзья!
Просьба откликнуться тем кто делал с кнопками.Не совсем понимаю, вернее совсем не понимаю:) В скетче описываются 10 кнопок
(четвертый плюс) на схеме выше 5 или 6 кнопок. Хотелось бы уточнить схему на 10 кнопок и описание что переключает каждая кнопка
Доброго здоровья схема кнопок без пульта (мы про это говорим?)
Кнопок можно ставить много ограничено только разрешением АЦП теоретические 20 шт не проблема, по аналогии делаем по нижней схеме, сопротивления можно уменьшать.
настройка такая:
Включаем лог ( если нехватка памяти, уменьшить кол-во светодиодов)
и по логу смотреть какой код приходит по нажатию каждой клавиши и записать их в скетч, главное чтобы код был уникальным.
Код
#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_8, KEY_9, KEY_10, KEY_11…
далее открываем файл commands.h
и в нем прописываем команды назначаемые на ваши кнопки следующим образом (для примера)
было:
Доброго времени суток!
Собрал гирлянду — почти все работает.Огромное спасибо за эту красоту!
Вот только хотелось-бы управлять этой красотой.
Не получается подключить пульт. При работе с библиотеками 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. там будут строчки вида
#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 // Следующий эффект. Отключает демонстрационный режим
по аналогии делаем и с остальными кодами
Не используемые команды в этом файле можно оставить как есть, либо восмизначные числа заменить нулем
Ну и напоследок проверяем настройки программы должно быть так
Тут код программы
//////////////////////////////////////// Параметры пульта
////
//Настройка действия кнопке осуществляется в файле 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 //Включить повтор, при долгом нажании на кнопку пульта будет повтор клавиши
Номер пина, куда подключен датчик пульта должен быть правильным как в IRrecvDemo
Также надо поставить правильно 1 в типе пульта, опять же берется из IRrecvDemo
Максимальное количество светодиодов выставляете какое вам надо
Все, должно работать
Дорогой друг!
Все что Вы написали выше — все проделано в точности
только имя пульта не проверял по IRrecvDump но на самом пульте написано что он LG
и в настройках установлено LG стоит 1
Сам не пойму почему " лыжи не едут "
Первоначально ардуинка была прошита на DEMO
#define IR_ON 1 // Если равен 1 используется пульт (был установлен 0 после установки кода вернул на 1)
для теста потом нашел пульт перепрошил ардуинку
для получения кода. Запомнил код в подменю commands.h. вставил свой код снова прошил — при запуске DEMO
Вы мне скажите когда у Вас если работает с пульта при запуске (подачи питания) черный экран (ничего не светит)?
или запускается с эффекта?
Будет понятней где копать
В программе все установлено по Вашей копии только кол-во светодиодов моё — 200
Спасибо!
Мой друг, надо проверить все таки тип пульта, опять же берется из IRrecvDemo, не факт что пульт имеет протокол LG
Я скопировал код настройки сюда:
Тут код программы
//////////////////////////////////////// Параметры программы
////
#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 100 // если Зависает на 22 и 37 режимах, то уменьшаем число
#define RUNNING_FIRE 0 // Включить эффекты бегущего огня
BLACKSTART задает запуск с черного экрана, если установить 0 то будет сразу первый эффект
DEMO_MODE задает режим при включении 1 включает перебор эффектов, если стоит 0 то запустится последний эффект, который запомнен с пульта и переключение автоматически не будет
Благодарен за оперативность
В том — то и дело стоит 1 в строке
#define BLACKSTART 1 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
а запускается с эффекта и далее DEMO причем при каждом включении запускается с одного и того-же эффекта на пульт не реагирует
Попробую снести arduino-1.8.13-windows и установить заново и перепрошиться заново
переустановка 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.
dmitrybik добрый вечер!
Огромное спасибо что тратите на меня своё время
Установил Вашу библиотеку ничего не изменилось
Прошил Ваш скеч 4+ без каких либо изменений при включении DEMO режим
Такое мнение что программа не подключает пульт и вообще не слушается
В настройках указано начинать с черного экрана а она включает DEMO и не включает пульт
прошил другую ардуинку — результат тот же DEMO
С новой версией IRremote я чувствую замучаюсь ее исправлять
Сделайте так, у далите файл IRremote.h и будет вам счастье, минус этого всего вырастет размер прошивки
После этого должна работать любая версия IRremote
Похоже счастья мне не видать да и Вам не даю покоя
Я не программист. Если я удалю IRremote.h из скеч 4+ то выскочит ошибка и ничего не прошьётся
или IRremote.h надо удалять в другом месте.
Я думаю копать надо здесь — почему не включается на черный экран а потом IRremote.h
И еще может это влияет при прошивке ругается на FAST LED в программе версия 3.3.3 ( последняя)
а в скетче более ранняя
Доброго времени суток!
После прошивки ( скеч 4+) и включении монитора и установки скорости 57600
монитор высвечивает код кнопки и её действие — значит программа пульт видит
А когда подключиш гирлянду и блок питания — включается демо и нет реакции на пульт
Блок питания 5в-3а при работе гирлянды 5 вольт не просаживается
Друзья мои ещё раз приветствую Вас!
dmitrybik от всей души благодарен за вашу помощь и оперативность
Тысяча извинений за отобранное Ваше время, респект и уважение за программу
ТЕМА СНЯТА
Пульт работает и работал сразу. Только на кнопку нужно нажимать от 10 до раз так 25 — 30
Все включается и переключается! Я доволен.
Спасибо Вам за красоту такую! Творческих успехов и здоровья!
Будем рады новым Вашим деяниям!
Доброго времени суток! Дмитрий, спасибо за проделанную работу. Собрал гирлянду на 100 диодов, залил скетч 4+. Заработала сразу. Во время тестирования выявилась одна проблема. Если выставить KOL_LED=100 или менее, то палитры не меняются. Если выставить KOL_LED=101 или более, то палитры меняются. Пробовал на двух платах Arduino UNO и NANO, результат одинаковый.В чем может быть проблема?
18:22:17.057 -> ---SETTING UP---
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
Дополнительная информация
#define KOL_LED 101 // Сколько светодиодов в гирлянде при первом включении
//////////////////////////////////////// Параметры пульта
////
//Настройка действия кнопке осуществляется в файле command.h
#define IR_ON 0 // Если равен 1 используется пульт
// если не равен 1 пульт не используется, работает в демо режиме
#define PIN_IR 8 // Номер пина, куда подключен датчик пульта,
#define IR_MAX_LEDS 231 // Максимальное количество светодиодов при работе с пультом должно быть больше
// или равно KOL_LED
// От размера этого числа зависит колличество используемой памяти
#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 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 // Включить эффекты бегущего огня
Доброго здоровья!
Пятая версия в корне отличается от прошлых версий, тут будет переход от одномерного массива на двухмерный (на 2D), то есть все эффекты будут другие,
За основу должна быть положена концепция, что если елку намотать гирляндой, то получится конус, и можно исходя из количества светодиодов в низу и количества оборотов вычислить примерное расположение каждого светодиода в виде развертки. конуса.
Много математики, мало свободного времени.
Не каждый захочет гирлянду на елку накручивать по конусу, есть и другие варианты.
На данный момент идет разработка коммерческой версии 2D елки, на ней отработаю эффекты и можно будет говорить о выходе 5 версии для всех,
Както так.
Дмитрий именно из-за Вас купил белую ель высотой 2,1м (вроде бы, за пол года уже забыл точный размер), которая занимает дофига места в моей комнате))) и сейчас едет 250 светодиодов и блок питания 5в 20а.))) Плюс на окне гирлянда (но её нужно перепаять, чтобы была сетка 16х16 (кстати, ваш скетч очень не дурно смотрится на сетке на окне. Не думали адаптировать или разработать на оконную гирлянду?)). Сам бываю дома не часто, делаю ради интереса))) Сообщите о новой версии, очень хочется посмотреть. Думаю скоро надо будет доставать елку и наряжать))) Именно из-за гирлянды придется ставить елку на месяц раньше))
P.S. ваш проект есть ещё где-нибудь для отслеживания новых версий?
Ну я не Новый Год, и хотя и уже дед, но не Мороз :)))
У самого дома елка больше двух метров, нижние ветки диаметром 1,5 метра, темно-зеленая, 150 светодиодов было достаточно. Не забудьте через каждые 100 светодиодов подключать питание.
Внучка вместо телевизора залипала на елке.
На работе елку я даже не разбирал, стоит для тестов.
Скетч 4 уже самодостаточный для елки.
Т.к. основная задача прокормить семью, гирляндами занимаюсь в свободное время.
Разработка управления матрицей тоже идет (2D) На данный момент дома на окне стоит сторонняя разработка, видео окна
Проект пока тут, думаю выложить все проекты с гирляндами на своем сайте, ссылку кину сюда как выложу
Провод похоже мгтф? Какое сечение и сколько светиков на одной линии по питанию? а то я себе делал на окно, в одном столбике 12 светодиодов. провод использовал ПуГВ 0,5мм2. Больно уже толстый получается. хочу что-то другое, но не знаю какое сечение выбрать и купить. (ПуГВ меньше 0,5мм похоже нету). Будет 16 светиков в столбике, а питание внизу сетки к каждому столбцу.
МГТФ-0,14. на каждую матрицу подается питание снизу с начали и конца и распределяется вверх.
Этот провод прозрачный и не мешает смотреть через окно.
Экспериментально проверено, с китайскими проводами питание подключать через каждые 100 светодиодов
Я кстати всегда яркость убавляю, а то ночью «вырви глаз», на соседнем доме отсвечивает
то есть в моём случае тоже хватит 0,14мм если у меня столбик из 16 светиков. и к каждому столбцу будет подходить питание снизу? а сверху уже только переходить сигнальный провод (сигнальный провод получится будет идти змейкой).
Вы не сказали сколько столбиков, Еще раз, через каждые 100 светодиодов подводить питание, я использую более толстый МГТФ-0,35, внутри между столбиками можно и 0,14, да сигнальный надо змейкой,
если есть возможность я бы сверху питание тоже бы соединил воедино, в линию,
можно туда на верх питание не подводить
у меня сейчас сделано, внизу идёт как бы шина из 0,75мм2 на + и 0,75мм2 на -. и дальше в каждом столбике 0,5мм на + и 0,5мм -. столбиков 14шт (хочу сделать 16), в каждом столбике сейчас 12 светиков (хочу 16).
Правильно ли я понимаю, что можно мне упросить, кинуть провод мгтф 0,35 на питание (если найду такой), сделать его змейкой. Но через 6 столбиков (96светиков), подсвети ещё одно питание из того же 0,35мм? и потом ещё через 6 столбов подвести.
А не делать как у меня сейчас, что к каждому столбику своё питание подходит от общей «толстой» шины?
Дмитрий спасибо за разьяснения!
Платформа по видимому будет другая. Все это изобилие на Nano не влезет.
Я думаю что 90% гирлянду мотают конусом. А это получается главным условием 5 скечча.
Очень интересо. Будем ждать. В этой теме его можно будет найти?
Успехов и здоровья!
4 плюс закрыт для скачивания
Я не очень умный, и только начал разбираться с Ардуино, поэтому долго ломал голову над ошибкой компиляции. Проблема была в том, что двух библиотек IRremoteInt.h и IRremoteBoardDefs.h нет в общей папке, они почему-то спрятаны в подпапке \IRremote\src\private. После того, как перенёс в \src\, вроде бы всё заработало. На всякий случай держу в курсе.
Добрый день, Дмитрий!
Я в 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. Пульт не видит.
Что посоветуете?
При возврате на апрельский Скетч +4 гирлянда заработала нормально, но работа пульта не восстановилась дальше надпись: «Ошибка компиляции для платы Arduino Nano» и «Не используется: C:\Users\Igor\Documents\Arduino\libraries\FastLed-3.2.9» Когда я повторно хотел проверить, то вконце вместо 9 появился 0 FastLed-3.2.0
Я в ступоре и не знаю, что дальше делать???
Доброго здоровья.
За два года разработчик 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, они без экранного буфера, чисто текстовые.
Не знаю, пока работает, если что-то сделал криво помогите исправить.
Спасибо и удачи в делах.
Поздравляю с удачным началом, если работает ошибок нет, если скинете ваш скетч, проверю ошибки., если будет востребована индикация, то оптимизирую и вставлю в скетч.Не забываем что идет экономия памяти.
Кстати интересные светодиоды, я их где то на алике видел, скиньте фото одного светодиода поближе, они паяются или залиты?
Поскольку кнопками я не собираюсь пользоваться — убрал, чтобы нее мешали (может где-то и осталось, побоялся лезть в EEPROM).
Почему-то не компилируются 8-ми значные коды пульта в последних 4-х строках, выдает ошибку.
Насчет светодиодов, они упоминаются у Гайвера. Они залиты прозрачным компаундом и светят ярче (миниатюрнее), но недостатком являются тонкие провода. На два куска по 50 светодиодов не хватает напряжения, приходится запитывать с обеих сторон. Пробовал поставить три куска с питанием с обеих сторон, все равно не хватает. Так что если делать длинную гирлянду придется дополнительно тянуть питание, в результате пропадет весь смак в незаметных проводах.
Вид с задней стороны:
Проверил, ошибок не нашел
в файле command в конце не правильно написано число там должно 4 или 8 знаков, правильно писать так
#define IR_Key_Solid_SkyBlue 0x00FD22DD // || (||) // Установить цвет Голубой
#define IR_Key_Solid_Blue 0x00FDC03F // [] (Blue) // Установить цвет Синий
#define IR_Key_Solid_Violet 0x00FDE01F // >< (●Rec) // Установить цвет Фиолетовый
#define IR_Key_Solid_White 0x00FD20DF // Zoom (■) // Установить цвет Белый
Добрый вечер. Спасибо за подсказку, с 8-ю знаками работает стабильней.
Единственно не понятно, почему-то оранжевый и желтый цвет уходят в зеленый спектр на этих светодиодах (при том на обычной адресной ленте все цвета в норме). Может быть китайцы поставили туда чип SK6812, но по нему информации очень мало.
Дополнительная информация
Пришлось поменять Yellow на DarkOrange — стало по естественней. В связи с эти возникает вопрос: можно ли в solid = CRGB::DarkOrange; объявить цвет напрямую HEX кодом?
Судя по всему эти гирлянды сделаны на чипе SK6822. Они имеют 6 контактов, что дублирует канал данных.
В библиотеке FastLed версии 3.3.3 они есть. Цветовая гамма не изменилась. Но улучшилась стабильность работы. Раньше на Solid_White мигали последние 10-12 светодиодов (хотя запитаны с двух сторон), сейчас такого нет. Единственно при использовании FastLed 3.3.3 расходуется больше памяти.
Еще хотелось бы узнать, за что отвечает параметр: Initial delay: 0ms delay.
Здравствуйте. Получилось с hex значением? У меня даже DarkOrange какой-то зеленый на этой. Новые гирлядны, кстати, приходят хоть и с более жестким проводом, но для двух гирлянд достаточно питания с одного конца. На елку их я вообще пять штук повесил и запитал с двух концов, вроде бы нормально
Эффектов очень много Эффекты накладываются друг на друга, описанию не поддается :)
В начале статьи есть видео первых эффектов, видео эффекта огня тут последний скетч частично можно посмотреть тут
Помоему можно минут за 15 посмотреть все эффекты
Включаем лог, чтоб смотреть номер эффекта и с пульта переключаем, вперед назад,
первые сорок они одного вида, после сорока там бегущий огонь, который можно программировать как охота.
Что вы имеете ввиду под словом закольцевать?
Она итак не останавливается и повторяется.
Если нужны только отдельные эффекты то выбираем DEMO_MODE 3 или 4
и в MY_MODE через запятую указываем эффекты, которые надо повторять в цикле
Дмитрий, спасибо за труды. Дети в восторге! Единственное осталось для меня не понятным. В настройках скетча (4+) стоит время демонстраций 60 секунд, чипы ws2811 (по умолчанию стояло ws2812b), ардуино нано, режим демонстрации: подряд все эффекты, без кнопок. Мне показалось, что эффекты стали повторяться примерно через 15-20 минут. Сами эффекты отображаются по 60 секунд. Может ли быть такое, что из-за того, что я прописал в настройках ws2811 количество отображаемых эффектов стало меньше? Спасибо
P.S. пока писать комментарий обнаружил, что стал повторяться один и тот же режим,
примерно через 40 мин. после включения.
Посмотрел лог. Всё норм, режимы доходят до 122 и начинаются сначала. Однако заметил, что с 42-го режима и дальше у меня показывается один и тот же режим, меняя только палитру.
Пульт работает, но живет своей жизнью. Не могу найти логики в его работе, с какого раза и когда будет с него реакция. Еще исследуем.
НО: не хватает индикации текущего эффекта.
Возможно ли использовать LED дисплей на базе драйвера TM1637, который применил avtopilot1 (см комментарий от 10.10.20)?
Я новичок в программировании. Это мой первый проект на Arduino. Поэтому пока пользуюсь готовыми версиями.
Если не трудно, дополните, пожалуйста, скетч notamesh4plus, который вы выложили 21.09.20 (https://yadi.sk/d/dL5-cMM_awGAAg), LED дисплеем на базе драйвера TM1637 и в полной обновленной версии буду скетч ждать (ловить) в комментариях.
До Нового Года осталось мало времени. У нас в супермаркетах уже появились шоколадные Деды Морозы.
Спасибо.
Пульт срабатывает не сразу, особенность такая, надо на пульте нажать команду от пустить нажать отпустить пока не сработает. длинное нажатие на кнопку пульт дает команду повтора
Проверку пульта лучше делать с включенным логом
Дмитрий Спасибо за ответ.Можно Вынуть контакты Из разьема надеть кусок термоусадки и протянуть ее на 50 диод затем на 49 итак до первого диода затем проити термофеном-закатать термоусадку и вставить контакты на место.Я правильно Вас понял? И еще вопрос-могу ли я использовать 10 мм термоусадку?
Я так и делал, когда не было паяльника, термоусадку можно любую, если будет большой диаметр, то не сильно сожмется, если будет маленький диаметр то не налезет
У меня куплена эта плата и будет ссылка на плату для ленивых, где уже все запаяно как надо, только прошить
Схема и скечь будет на оба варианта один, у людей будет выбор либо делать самим либо купить готовый в корпусе…
С завтрашнего дня начинаю перевод скетча под ESP32
Искал как сделать гирлянду, и набрел на эту статью. Это лучшее что есть по этой теме! От програмирования и пайки далек. Светодиоды заказываю как у вас, дайте пожалуйста ссылку на плату ESP32 где ничего паять не нужно здесь или в личку, закажу вместе с светодиодами, чтобы точно успело к новому году дойти. А то у нас в последнее время по 2 месяца и больше посылки идут(
Приоткрою занавес.Наше руководство давно хотело открыть электронный магазин. Бухгалтер сейчас научится работать с кассовым аппаратом, откроем магазин на али, я к тому времени доделаю программу.
Выставим 10-15 устройств внешний вид такойвнутри так
Это пока мой тестовый образец, на рабочем может не быть SD разъема (я его еще не проверил как работает) и провод один.
Отправка будет почтой России
Остальное зависит от руководства
Цену пока не знаю.
Есть желающие протестить новый скетч? https://yadi.sk/d/nPBxMYT-LkwtOw
Добавлена работа с кнопками и индикатором от Алекса Гувера
Скетч причесан, настройки в одном месте, с описанием, думаю теперь все просто настраивать
FastLED.delay(meshdelay*100); // Here's our notamesh wait upon keypress. Oh god I'm so sorry there's a delay statement here. At least it's only used upon mode change keypress.
Библиотека его, настраивается также.
Индикатор подключается к пинам как предложил avtopilot1 10 октября (к 2 и 3)
Кнопка 1 подключена к пину как у Гувера в его гирлянде (тоже к 2 пину)
Для работы поменяйте настройки пинов как у вас, т.к пины пересекаются
Схема включения индикатора как у Гувера?
это я не понял, схем у Гувера много где используется индикатор
работает, но при выключении с кнопки однократным нажатием — не включается. надо подключать плату к юсв, тогда включается. режимы переключаются двойным нажатием. как то так. )
Дмитрий, в первую очередь хотелось бы Вас поблагодарить за очень большую проделанную работу, гирлянда получается просто замечательная. Не хватает лишь одной опции, которая бы сделала для меня этот проект идеальным. Я пытался разобраться, как сделать это самостоятельно, чтобы Вас не беспокоить лишний раз. Но, видимо, я и программирование — вещи не совместимые.
Я не понимаю логики смены палитр с пульта (автосмена выключена). Палитра вроде бы меняется, но проходит один цикл, и после этого изменения откатываются. При этом случайные цвета меняются на другие случайные. Можно ли как-то сделать, чтобы это работало как, например, в механических клавиатурах: выбираешь желаемый режим мигания светодиодов (их здесь вроде бы 40), и, при заданном режиме, кнопками переключаешь палитры? В том числе, простые однотонные (дитё просит розовую елочку :) ). Может это уже как-то реализовано, и я просто не разобрался где это включить?
про умолчанию идет перебор палитр.
По командам перебора палитр Command_Palette_Previous или Command_Palette_Next происходит останов автоматического перебора палитр
для восстановления автоматического перебора надо запустить команду Command_Palette_Auto
для установки нужной палитры, достаточно выполнить поиск палитры командой Command_Palette_Next
Да, но, как я написал выше, новая палитра применяется ровно на один цикл, а затем сбрасывается на ту, с которой этот режим начался. Т.е., например, бегает по гирлянде желтая полоска -> нажимаю кнопку следующей палитры -> желтая полоска становится, например, голубой -> через несколько секунд само откатывается на желтую.
Выбрал 4 режим. Там переливающийся градиент из синего+желтого+красного (что-то вроде этого). 3 раза нажал кнопку смены палитры, 3 раза появлялись другие цвета, но через несколько секунд возвращались на изначальные синий+желтый+красный.
Так, извиняюсь за беспокойство, вроде бы разобрался. Сделал немного по-другому. У меня #define PALETTE_TIME стояло 0, и так почему-то не работало. Сейчас поставил 5, и если после автоматической смены я начинаю менять вручную (т.е. отключаю автосмену), то всё отлично меняется и сохраняется.
Спасибо еще раз за потраченное время и замечательный проект.
Все сделаю, последовательно, перевожу сейчас на ESP32 (памяти море, на 4000 светодиодов заработала но медленно, контроллер не успевает) доделаю и займусь палитрой
Еще один небольшой вопрос, если можно. У моей ленты очень странные цвета, но, как оказалось, в FastLED можно легко корректировать их. Попробовал на простом скетче — работает отлично. Но в notamesh почему-то не работает, как я ни старался. В интернете тоже очень мало информации на эту тему.
Поставили в тупик, я корректировками не занимался.
В поиске находится только способ корректировки в момент инициализации 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 с использованием данного скетча, все развитие темы перейдет туда.
В прошлом году успел изготовить гирлянду на 100 диодов, с вашей прошивкой четвертой версии, с пультом. Народ тупо залипал, дети пищали от восторга! Спасибо вам за труды и советы в течение всего года!
Скоро Новый год, хочу добавить еще сотню диодов.
Вопрос — можно просто прошить ардуинку последней прошивкой notamesh4Biblio, изменив количество диодов, или какие-то изменения необходимы еще?
Просто как-то подзабылось все уже за год, с октября по новой все изучаю.
Купил ESP, жду, когда придет, но просто уже не успею собрать, очевидно…
Если помните какой версией шили, то достаточно в той версии поменять количество светодиодов и прошится
Для последнего варианта настройки те же, но их стало больше и они перекочевали в главный файл.
Если пульт не используете то надо поставить правильно несколько параметров порты и тип гирлянды и должно работать
если есть пульт, то надо скопировать коды клавиш со старого на новый, ну или настроить заново, по инструкции в шапке.
Спасибо!
Сейчас пробую уже подключить и прошить.
Пульт куда-то дел, найду позже.
Пока нашел вторую платку, без пульта, с кнопкой и с прошивкой notamesh4Gyver.
Вопрос по кнопке, можно ли ее использовать параллельно с пультом.
В новой прошивке указано:
#define BTN1_PIN 34 // Номер пина, куда подключена кнопка 1,
в прошивке notamesh4Gyver:
#define BTN1_PIN 3 // Номер пина, куда подключена кнопка 1 (так и подключено)
Кнопка живет своей жизнью.
По однократному нажатию может выключить, а может и нет. Также и с включением. Переключение эффектов (2х-3х кратное нажатие) и изменение яркости (удержание) не работает.
В новом скетче можно использовать и пульт и кнопки, в новом скетче добавлены команды, по аналогии с теми что использовал Гайвер, также добавлены новые команды как раз что бы отказаться от пульта в пользу 4 кнопок и
двухцветного светодиода, именно в такой конфигурации стартует проект на ESP32 ( 4 кнопки и 2 светодиода) и пойдет развитие в сторону Wifi, SD card.
Также будет адаптация под ESP8266 (4 кнопки и 2 светодиода) макетку я сейчас делаю…
Будет время подправлю notamesh4Gyver.( там есть ошибки, т.к. строился на тестовом выходе notamesh4Biblio
По поводу пинов, я же не знаю куда на этой плате кнопка подключена
Спасибо, буду разбираться.
Вот адаптированный вариант под ESP8266 хотелось бы успеть до Нового года опробовать, тем более все комплектующие под руками…
Спасибо большое за проект! Сегодня получил светики, 100 штук. Подключил половину, запитал от лбп, потребление примерно 0.6 — 0.75А. Теперь жду термоусадку.
Не совсем, но стробоскопы полицейские тоже былоо-бы круто добавить если не трудно.
Про пульсацию я имел ввиду эффект показанный на этом видео вот ссылка youtu.be/ifYAJ5LyKDE?t=428
А мне задумывался такой эффект…
От начала гирлянды бежит ярко-белый огонек, оставляя за собой гаснущий след (градация белый-желтый-оранжевый-красный), такой «бикфордов шнур», по достижении конца гирлянды следует взрыв — белая вспышка всей гирлянды с переходом в произвольный эффект — падающая волна, радуга, да хоть что…
Но поскольку могу только повторить паяльником, да простой правкой прошивки под свое железо, идея остается идеей…
У меня в голове уйма идей для эффектов. Изначально как раз и планировал как-то под себя их поменять/дописать недостающие, поэтому заказал Ардуинку, а не готовый контроллер с 300+ эффектами. Реальность оказалась суровей, и программист из меня не получился :D
Надеюсь до НГ найти где-то хаб с большим количеством готовых эффектов, и научиться их вручную добавлять в этот проект.
В данной теме уживались в ограниченности ресурсов NANO. Сложно будет добавить… Сейчас проще использовать что то из ESP и ресурсов побольше и тоже самое работает.
Если надо что то, добавлю, только опишите
Спасибо огромное за ответ и готовность помочь, но не наберусь наглости тратить Ваше время на хотелки, которые, скорее всего, кроме меня одного никому не нужны :) Тем более, у Вас добавился еще один проект.
Единственное, был бы Вам очень сильно благодарен, если бы Вы помогли с включением/выключением гирлянды. Скорее всего это уже есть, но, к своему стыду, я не нашел. Как сделать, чтобы на одну и ту же кнопку пульта гирлянда включалась и выключалась? Например на IR_Key_Solid_Black. Если при этом еще будет включаться на последнем эффекте и палитре — вообще идеально, но совершенно не обязательно.
там проект в виде кода*я так понимаю ето вкладки для скетча)
с веб управлением и веб приложением
вот ето проект, но я не знаю как скачат его, я вижу вкладки и не знаю как использовать
А мне задумывался такой эффект…
От начала гирлянды бежит ярко-белый огонек, оставляя за собой гаснущий след (градация белый-желтый-оранжевый-красный), такой «бикфордов шнур», по достижении конца гирлянды следует взрыв — белая вспышка всей гирлянды с переходом в произвольный эффект — падающая волна, радуга, да хоть что…
Но поскольку могу только повторить паяльником, да простой правкой прошивки под свое железо, идея остается идеей…
я ответил
Понял, добавлю
Где здесь ваш вопрос
задал вопрос повторителю и вам задаю.как там с кодов слепить скетч?
и этот
там проект в виде кода*я так понимаю ето вкладки для скетча)
с веб управлением и веб приложением
вот ето проект, но я не знаю как скачат его, я вижу вкладки и не знаю как использовать
как из етих кодов на гитхабе сделать скетч? www.youtube.com/watch?v=h7lKsczEI7E сделайте пожалуйста.
я прошью.
считаю ето наилучшим проектом.где ест все что мне нужно и даже больше.и веб
Гайвер сказал что на заказ не делает.
говорю твоя гирлянда говно, есть с веб управленем, даже тут вам человек показывал еффекты. нескольких у вас точно нет. говорит гирлянда не умный дом, может быть и говном.
поставил ваш скетч.какое то переливание сплошное быстрое.
еще такой прикол… вы мне как делали мегу, там под 2812.дж р б
у меня 2811.сменил на жрб и огонь еффект синий а не красный))
по ходу дальше гдето изменено что ли… в скетче.
Разработчики как правило молчат.есть проект выложенный на гитхабе.
готов заплатить за преобразование его в скетч.
// Настройка FastLED
#define MAX_LEDS 200 // Максимальное количество светодиодов, очень влияет на память
#define COLOR_ORDER GRB //Очередность цвета светодиодов RGB или GRB
надо ставить или COLOR_ORDER GRB или COLOR_ORDER RGB
Для проекта notamesh4ESP32 цвет задается при помощи кнопок или
при установленной EXTEND_FLAG 0 задается также как в проекте notamesh4Biblio
Я буду заниматься другим проектом, если те кто подписан на проекты notamesh4Biblio и notamesh4ESP32 согласятся, что я не буду заниматься их проектом и заброшу его на год.
не бижайтесь, проекты на кнопках и еффекты полная фигня.в сравнении с 2мя веб, описываемыми ранее.
ищу пока под свои.нашел проект который компилируется в непонятной проге
второй по блютусу или включается тиристором с подачей питания на вход ардуино, третий говорит у меня есть веб, еффекты в виде кодов будут, скрипты…
-аааа!
вы стараетесь, пишете новые еффекты и добавляете функции, а все лучшее уже есть
в веб версиях есть авто перебор еффектов.но они такие краткие что там не видно где какая функция.
естьконтролер от итайцев.там хоть 200 еффектов, но все надоели и фуфло.а обовлять они 2 года не спешат.
кстати прошивки Гайвера часто ругаюся на кирилицу или библиотеки.ваши ложаться без руганий.я уже все по очереди пробую, посмотрев перед етим что там есть.веб, еффекты, кнопки.на отсуствие… лутуса.Демо ищу.
я не понимать если в прошивке есть строки где задаются точка доступа и пароль,
зачем заходить в примеры и там прописывать… что то у меня не вяжется.
говорите что должны работать 11 вместо 12х.библиотека под 12е написана.
не поможете вы-найду прошивку с веб с еффектами поблескивания и бегущих красивых огней, а то все ети какая то фигня.или мутные 11 диоды.12е лучше светят.может потому такое впечатление плохое о переливании цветов…
Вы тоже не обижайтесь, Управление по веб это баловство и хвастовство, не более,
Зачем светофору веб интерфейс, включили и он работает
Контроллеру елки также, подали питание и он работает,
Если не нравится проект не используйте, выберите другой или напишите сами как вам надо,
не переделываете чужие проекты а 2 года тому ето сделали и морочите его до сих пор.5 версий по версии раз в пол года..)
вам трудно дописать в свой веб или такие еффекты которых нету в вашем проекте.
веб потому что там например из 55 еффектов 10 супер клевые.а у вас их намного больше, и включен либо весь перебор, либо нечего перебирать ибо таковых нет.
целиком логично взять проект получше чем тот что 2 года тому.
но вы еще меня тут забаните, больше ничего, молчу.
Да я долго разбирался в чужом проекте я его теперь веду и выпускаю версии,
Для вашего сведенья я на ESP32 перешел меньше месяца, все в этой теме мне ставят в вину что нет веб, я за этот месяц успел только исправить ошибки.
ВЫ теперь мне настойчиво говорите его бросить и делать другой проект, я считаю это трата моего личного времени впустую.
Я буду развивать свой проект как считаю нужным…
Я устану и просто удалю эти две темы, я банить никого не буду, И поймите я никому ничего не должен,
Дмитрий, поражаюсь Вашему терпению, выдержке и такту. Просто диву даюсь, какие кадры иногда попадаются в комментариях.
Ну и трудолюбию, само собой. Многие уже давно бы забросили. Что-то подсказывает мне, что вы на НГ будете смотреть на эти переливающиеся огоньки с немного другими чувствами, нежели мы :)
Еще раз огромное спасибо и низкий поклон за этот замечательный проект.
вот у меня пиково было 6а на 300штук 2811..а так 2-3 максимум 5
в скетче 5 выставлено
мигает белым с остатком зеленого.поставлю 6
вопрос: поставил без резистора на порту, быстро мерцает.ето потому может быть или не хватает питания?
и кстати 2812 прописаны в скетче, а диоды 2811 не работают хоть застрели.
уже взял другую ардуину.прошивка от мега168 пошла.иду notamesh4 поставлю.
вайфая там нет, кнопки нет, елка на улице.бужет перебор еффектов.
хотелось бы вместе с теми что у вас в скетче з 3мя кнопками.кажется вы мне часть давали чтоб еффект добавить
Я не знаю про какую библиотеку (какой скетч) У FastLED проблем не замечал с работой 2811 и 2812 все работает как часы, особенно если правильно прописать все.
Если контроллер работает от 5 В (нано, уно, мега) то должно работать без резистора
Если контроллер работает от 3.3В то надо ставить преобразователь из 3,3 вольт в 5 вольт
Я считаю резистор вредным, он ток уменьшает
Из опыта, если начинает мигать гирлянда самопроизвольно от соприкосновения руки, то это говорит что пин неправильно указан, или оборвался провод от пина.
Я вот все слышу про елку на улице, а контроллер, блок питания и гирлянда защищены от влаги? может поэтому и не работает
вот етот скетч как бы под 2811 pikabu.ru/story/prostaya_girlyanda_na_rgb_svetodiodakh_5589134
и тот с ютуба.называется «готовимся к новому году.мегакрутая гирлянда».
опыт есть, скетч шьется… что еще неправильно…
без резистора Гайвер говорил что можно выход сжечь.но их там несколько))
с резистором на 220м 300 2811 перебор еффектов прекратился.красный цвет и все.
Не дело в том что на улице, если не работает то сразу, а не перестает работать.Вемос коннектится, ето видно по вебсервере.типа кнопки тыкаешь в веб а диоды не светсяся.зараза!!!
вот попробую потом 2812. мне кажется что заведется.
сампроизвольно у меня не работает… что 5 амер что 7, нотамеш4 чуть ли не хаотично моргает, броуновское движение.очень быстро проходят еффекты и часто мигает.хм…
попробую старые версии. те еффекты что вы мне выбрали для мега 128 наилучше.
поставлю версию постарее. вообще у меня начало гирлянды сверху.но не думаю что оно так могло повлиять на все еффекты.
я вижу ваши скетчи отличаются пояснениями и детальной настройкой.
вот хотелось бы тот с веб включит демо, и хз где ето. скетчи очень компактные, хм…
я на улице втулил 15 амерный по 5 в блок о компа.со временем решил заменить на 5-6а.но пока так.
Проект под ESP8266 контроллер имеет выводы под 3,3 В, гирлянде надо размах 5 вольт, вы еще резистор ставите, И еще наверно длинный провод. и получается по сигнальной линии напряжение снижается до 2,8 вольт вот у вас и не работает.
Ставьте преобразователь с 3,3 на 5 вольт и будет счастье ставить надо как можно ближе к контроллеру.
если WS2812FX написана правильно и тайминги соблюдены, то должны работать что 2812 так и 2811, главное преобразователь уровней
Гайвер говорил про короткие провода и если случайно закоротить, а зачем вам коротить?
да.сигнальный провод 2-3 метра.каждые 100 диодов дополнительное питание.ето да, проверено на практике.да 5 вольт.там все ок.
другой проект же работает.
почему то ваши еффекты слишком быстро отображаются.получается какой то хаос.
убедился что мой вемос ардуина программируется но не работает.
возник вопрос могу ли я сам добавлять и запрещать ефекты?
вот насколько я шарю, у вас 40 еффектов написано, вижу окк 20ти.
их просто закомментировать? запретить
новые добавить ето вкладку и там дописать?))
Я уже тоже испытал проблемы с контроллерами 3,3 вольтовыми
Можно поставить 2 транзистора, или один по схеме, я обычно ставлю логический элемент например такой SN74LVC1G08DBVR ну либо купить китайский модуль, их много
Мои проекты можно настраивать. Время отображения эффекта настраивается тут
#define DEMO_TIME 60 // Время отображение эффекта в демо режиме в секундах
можно поставить время 240 секунд
Эффекты можно выбирать тут
#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 отключаются
при этом демо режим надо выбирать или 3 или 4 #define DEMO_MODE
Ну вот же он, распаян на out, R1, 75 ом, подстраховывает саму микросхему.
Иногда, просто чтобы запустить ленту, достаточно перепаять первый светодиод поближе к esp, он «поймает» сигнал, а дальше пойдет уже «правильного» уровня. Это если ничего под рукой нет и нужно проверить — влияет ли емкость сигнального провода или нет.
Хорошо я увидел, но это не доказывает, что надо ставить сопротивление у контроллера
Во первых нет сопротивления на выходе на этой плате, как по даташиту
Во вторых, зачем ставить после контроллера, если сопротивление стоит у светодиода, опять же по даташиту нет сопротивления у контроллера.
С перепайкой поближе как вариант, все же, преобразователя уровня из 3,3 в 5 вольт
На передачу больше влияет нормальные уровни напряжения, чем согласование линии.
Хотя вы и правы, когда плохо работает на длинных линиях можно поиграться с сопротивлением, но это все пассивные элементы, они вносят свои искажения, я привык применять активные, мне проще 485 интерфейс кинуть и не думать, будет работать завтра или нет
Во первых нет сопротивления на выходе на этой плате, как по даташиту
Как раз наоборот, сопротивление стоит на выходе. В идеале там должно быть 2x33 Ом, один на вход, один на выход — но вы же знаете этих китайцев, экономят даже на этом. Итого — на входе у нас ничего нет.
Отсюда и танцуем.
PS: в тру-варианте, т.е. коммерческом и/или массовом, который должен работать всегда и везде, желательно ставить и согласование уровней и защитное сопротивление. Потому что мы не имеем представление, какая у нас будет лента и на какую длину мы работаем. Тот случай, когда кашу маслом не испортишь.
но это не доказывает, что надо ставить сопротивление у контроллера
Вообще это мы даже не там смотрим, надо открывать даташит на контроллер — зная нагрузочную способность пина, зная примерную емкость нагрузки, частоту/скважность, прикинуть будем мы в параметрах или нет. И ставить это сопротивление нужно как можно ближе к пину контроллера, перед светодиодом оно нам уже не поможет )
Если есть эта плата прозвоните, сопротивление стоит на входе
Убедили, буду ставить сопротивление, но преобразователи уровня тоже ставить надо, с двумя сопротивлениями сильно затухает сигнал. много раз спотыкался на этом.
На днях должна придти, обязательно посмотрю. Но если там входе — то это вообще ни в какие ворота, согласитесь.
но преобразователи уровня тоже ставить надо
Безусловно, я категорически за. Возможно, хватить только преобразователя (по факту достаточно простого повторителя, все равно сигнал идет в одну сторону).
1. 200 светодиодов.
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 для нового проекта. Но сначала хочу довести этот проект до логического конца.
Спасибо
Пульт работает корректно процентов 50-70, просто к этому надо привыкнуть, нажали, не сработало, отпустили, нажали заново
Я это описывал тут
и потом тут
Еще раз прочитал Вашу ссылку.
Вы пишете: «я хотел выжать максимум, на что способен Нано здесь идет жесточайшая экономия памяти с максимальными возможностями»
Вопрос:
Так как я докупил MEGA 2560, у которого больше памяти,:
1. Поможет это для корректной работы пульта?
2 Можете ли Вы дописать скетч от 22.10.20 с учетом MEGA 2560 и для корректной работы пульта?
Хочется добиться работы гирлянды и закончить этот проект.
Если FastLED перевести на SPI или i2s до будет работать, На ESP32 есть движения в этом направлении, тогда прерывания отключать не будут, и пульт заработает
По пульту повторяю, библиотеки FastLED и IRremote в стандартном режиме вместе не работают
IRremote подключается к таймеру и считает тики приходящие с пульта
FastLED в момент отправки FastLED.show(); Таймер отключается (отключаются прерывания)
Поэтому если нажата кнопка пульта и в этот момент идет отправка, то данные о нажатой кнопки пульта теряются.
Я в скетче применил проверку, если идет подсчет тиков (нажата кнопка пульта, то отправка откладывается while (!irrecv.isIdle());
Пульт стал вести себя более предсказуемо
Если светодиодов много, то время на передачу увеличивается. и вероятность попадания нажатия кнопки в момент отправки тоже увеличиваются.
Что делать.
1. Ничего не делать, просто если не сработало на пульте нажать еще раз
2. Отказаться от пульта или отказаться от этого проекта
3. Ждать пока разработчик библиотеки FastLED исправит ситуацию, перейдет на аппаратную передачу данных
я в отчаянии.нужен совет.
ест опыт 2 лампы Гайвера и гирлянды 2.
ардуино вемос д1 мини шьется, не работают.диоды 2811.
ругается что есть лишние библиотеки, но ето ничего.веб работает.то есть программировал гирлянду с управлением по вайфаю.веб есть, диоды не светят. думал может выход спалил.менял на 2й.не помогло.
3 проекта так не работаеют.диоды проверял на работоспособность.
гирлянда работает на другой плате ардуино.я ваш проект брал и дописывал кол свтодиодов, такое…
как бы проблема в ардуино.или несовместимость где то или плата такая не рабочая.
толком проверю когда опять придут заказанные 2812.
помнил что может быть что 4й выход ето 5 например… подставлял.диоды бы засветились сразу при втыке.а может и нет.
сейчас пошел проверять на модуле свтодиодном.вроде 2812.тоже нет.но замигали вместе.
2811 вместо 12 взаимозаменяемы, должны работать?
скетчи разных проектов.
поскольку прежний опыт есть успешный,4 платы 3 проекта.
то могу предположить что пин 5й по факту 6й например.
но ету версию проверял.не хочет
д1 вемос самый дешевый.может брак какой то.компилируется нормально.
вариантов ошибиться платой всего 2.думаю 2 подходящие.wemos d1 и d1 mini.
вот как то бы проверить выдает ли ардуина на выходе.
спасибо за внимание.
я в позапрошлом году, когда только автор выложил проект, запускал на wemos. пин к сожалению не вспомню, но светодиодам хватало 3,3 вольта (для управления, питал отдельно 5 вольт). Работало все прекрасно, даже ДУ. только смысла в этом без приложения нет.
Скажите, пожалуйста, а можно каждой лампочке в гирлянде WS2812 присвоить порядковый номер и прописать скетч, чтобы например сперва загорелись лампочки: 5, 15, 23, 46,112, затем они потухли и загорелись лампочки 12, 25, 47, 83;? Если можно напишите пожалуйста как это прописать в скетче, через какие функции.
Это я хотел сделать для реализации: Есть гирлянда WS2812 из 200 лампочек (50х4), эту гирлянду повесить на елку по принципу «серпантин», и чтобы загоралось сперва верхнее (первое) кольцо (лампочки 1-5), затем второе кольцо (лампочки 6-23), далее третье кольцо (лампочки 24-54) и т.д.
Или также гирлянда-серпантин. Сперва загоралось первое кольцо — полностью (лампочки 1-5), затем во втором кольце загорались только те лампочки, которые расположены под лампочками первого кольца (лампочки 9, 13, 16, 19, 22) и т.д. Чтобы получился эффект бегущего огонька по прямой сверху вниз.
Такие эффекты можно прописать только после повешивания гирлянды на елку. И для каждой елки будет индивидуальный скетч.
Скажите, пожалуйста, можно это реализовать или нет? Если да, то КАК?
это называется матрица соответствия (таблица соответствия)
Это будет реализовано в проекте на ESP32
Создается дополнительно массив итоговой, который будет выводится
В цикле переносится согласно матрицы соответствия, данные из массива расчета в массив итоговой при каждой прорисовке
в 6 утра родил еффект)
2811 не хотели работать вместо 2812. библиотеки написаны пож дж р б.ето как минимум.и под 2812.
уже отчаялся и думал искать скетч под 2811 диоды.
но сделал все как надо и пошло.гирлянда на веб управлении ето не кнопки.еффекты натомеш лучше, есть автоперебор.
поскольку моя гирлянда на улице, вывел 2 провода для подключения ардиуно в комнате.метров 7-10))
по дата проводу пошли наводки.часть гирлянды то светится частично то мигает.
прошивка скомпилировалась и работает не по тому порту выходу что программировалась.хм…
Вы зачем пишите сюда не по теме, Людей вводите в заблуждение, У данной разработки нет веб управления, есть пульт.
Если к текущему проекту сделали веб интерфейс, то я рад за вас
Если хотите обсуждать свой проект, создайте тему и пишите туда, вам ответят и там подскажут,
#define TOP_POSITION 2 // Позиция вершины елки (используется только в эффекте огня)
// 0 - не определена 1 - Вершина в начале гирлянды 2 - Вершина в конце гирлянды
#define TOP_LENGTH 0 // Выделять вершину цветом 0 - не выделять, больше 0 сколько светодиодов выделять в вершине
#define TOP_COLOR CRGB::Red // Цвет выделения вершины
#define TOP_EFFECT 2 // 0 - Просто залить цветом, 1 - случайное переливание, 2- переливание сверху вниз 3- переливание снизу вверх
#define TOP_DELAY 150 // Задержка эффекта в милисекундах
#define TOP_FADING 5 // Затухание
TOP_POSITION — это только для эффекта огня (потом будет использоваться и в других местах
Остальные параметры для задания эффектов для вершины гирлянды (например можно сделать звезду, снежинку, Черепушку, голову Д.Мороза и т.д) TOP_LENGTH — задает сколько светодиодов используется в вершине, если 0 то отключено и память не расходует TOP_COLOR — задает основной цвет, вокруг которого будут все эффекты CRGB::Red -красный, CRGB::Blue — синий Цвета можно брать отсюда готовые TOP_EFFECT — задает эффект TOP_DELAY — задает время паузы между следующим состоянием в миллисекундах, Чем меньше число, тем быстрее эффект. TOP_FADING — задает скорость затухания цвета до черного. Чем больше число, тем быстрее цвет станет черным
параметрами TOP_DELAY и TOP_FADING можно поиграться и найти очень интересные эффекты
Добавил этот блок в скетч. 200 диодов в гирлянде, последних (для звезды) обозначил 6. Компиляция и загрузка проходит корректно. Выделения шести последних диодов визуально не наблюдается. Или выделение только на эффекте пламени?
Специально подписался, чтобы сказать ОГРОМНОЕ СПАСИБО за разработку и поддержку этого проекта. И отдельное спасибо за бесконечную выдержку и такт в топике (Сразу видно наше родное Советское воспитание:). Ваш яндекс кошелек в скетче правильный? Вчера запустил гирлянду, любуемся всей семьей, так что хочу шампанским на Новый год угостить!
Спасибо. за добрые слова, Но развитие данной темы не представляется возможным из за нехватки памяти. Идей много и развитие пойдет в ветке ESP32 (ESP8266). Яндекс кошелек правильный. 410011655180757
Готово. Буду следить за новой веткой. Но этот проект, думаю, еще долго будет актуален. Скетч работает, ардуинок еще много в запасе, так что можно всю квартиру гирляндами завесить:) Управление всеми свести на один пульт и все, новогоднее украшение готово.
Добрый день, друзья а не поделитесь ссылочкой (лучше видео) на пошаговую инструкцию для настройки. А то почитал эту тему, и загорелся желанием сделать такую гирлянду, заказал ARDUINO Nano V 3.0 и 2 такие ленты.
До этого дела с ARDUINO вообще не имел. Вот и хотелось бы найти инструкцию для дураков, чтобы поэтапно что установить и куда нажать.
А то в этой инструкции написано добавьте скетчи, а как это сделать, что куда нажимать не понятно.
Буду использовать на уличной елке, соответсвенно кнопки и пульта не надо, достаточно чтобы при подачи питания включался режим авто и прогонялись все подряд режимы.
Может есть готовая прошивка со всеми настройками?
Заранее спасибо.
все фуфло.реккомендую.ставится просто.без заморочек со скетчами.все управление в веб.просто афигеть.долго выбирал, нашел качество www.youtube.com/watch?v=h7lKsczEI7E
Я в шоке, в 8 кб памяти програм, это куда не шло но оперативы всего 512 байт один стек скушает половину
Максимум что можно это демо пример библиотеки FastLED на 50 светодиодов
минимум это ATMEGA168A в шапке есть скетч.
Подскажите пожалуйста, можно ли сделать на светодиодах GS8208 0,5W 12V, если да, то там четыре провода +12, GND, DI1 и DI2, ну питание и земля понятно, а как быть с di1 и di 2?
Во время экспериментов я использовал 2 источника питания, на 12 и на 5 вольт, 5 питает контроллер Nano, 12 вольт сами диоды, землю от диодов тоже на контроллер, на тот же пин, что и земля от 5 вольт. Хочу Ваш скетч, завтра попробую поковыряться. Спасибо.
возникла проблема с пультом
датчик у меня «для тупых», распаяный на пате с обвязкой и индикацией
так вот индикация указывает на наличие сигнала, когда его нет (не на всех режимах, закономерность отследить не было времени), после чего ардуина вообще отказывается отзываться на пульт до перезагрузки
куда копать? питаю телефонный БП, 50 диодов, по напряжению есть просадка, хотя тока должно быть с запасом (ток ограничиваю в прошивке) может добавить конденсаторы для сглаживания? электролит и керамику для надежности… или вообще разворачиваться в стороу нормального БП
сорян, если обсудалось, но вроде всю тему просмотрел
Потребность в блоке питания проверяется подключением USB (разъем должен быть на плате)
во первых вы подаете стабильное напряжение,
Во вторых можно посмотреть лог
мы говорим про скетч notamesh4Biblio
Все управление и настройки теперь в одном месте в главном файле notamesh4Biblio.ino
Команды в конце
со строки 270
Читайте комментарии там все показано как делать
Может кто знает почему кнопка с пульта определяется несколькими кодами? В предыдущей версии прошивки можно было выбрать тип пульта. В последней не нашёл такой настройки, может в этом дело?
Добрый вечер! как сделать чтоб параметр Glitter (блеск) по умолчанию был выключен, в настройках эффектов параметр GLITER_ON ставил и 0 и 1 всё равно по умолчанию включен, только кнопкой выключается.
режим GLITER теперь хранится в EEPROM
Один из вариантов, который нравится:
1) Либо Устанавливаете как надо и нажимаете кнопку с командой
Setup_Command_Setup_Mode_Off ( Выход из режима настройки)
2) либо Закомментируйте 317 строку файла _main.ino
Теперь настройки Очередность Цветов, включения блеска, заполнения фона и включения свечей берется из настроек
3) либо просто отключить запись в EEPROM для этого SAVE_EEPROM сделать равным 0
Вечер добрый.
Как сделать чтобы в эффекте огонь не менялось направление? А то получается задаем верхушку елки, но через некоторое время меняется направление и верхушка становится снизу.
#define TOP_POSITION 0 // Позиция вершины елки (используется только в эффекте огня)
// 0 - не определена 1 - Вершина в начале гирлянды 2 - Вершина в конце гирлянды
Исправил ошибки скетча
1) направление огня теперь правильно отрабатывает
2) ввел параметр SAVE_EEPROM 2 (это когда не используется вход в режим настройки)
#define SAVE_EEPROM 2 // Сохранять настройки запуска в EEPROM
// 0 - ничего не хранить
// 1 - хранить стартовый режим, длинна гирлянды, скорости и расширенные настройки
// (очередность цвета,состояние блеска, фона, свечей)
// 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 и все, все настройки готовы
Я все изменения по файлу notamesh4Biblio.ino публикую новым комментарием, достаточно прочитать, и подкорректировать если надо
Вечер добрый.
Подскажите пожалуйста сигнальный провод на диоды 2812 подойдет по сечению как от шлейфа IDE?
По питанию понял, что желательно не менее 0,14 и отдельно на каждые 100 диодов, а на сигнальный пойдет тонкий?
Добрый день! подскажите можно ли где то подкорректировать цвета, у меня красный горит вместо синего и наоборот. Проверял выставлением на аналоговые кнопки включение основных цветов в RGB, в GRB вообще ни один не на своем месте.
Ставите свойство SAVE_EEPROM 0 (или SAVE_EEPROM 2 в последнем изменении) и корректируете
#define COLOR_ORDER RGB //Очередность цвета светодиодов RGB или GRB
// если стоит SAVE_EEPROM 1 , то очередность цветов регулируется в режиме настройки
Да, именно так и делаю (скачал сегодня последнюю версию, SAVE_EEPROM стоит 2), ставлю RGB — итог — зелёный-зелёным, синий-красным, красный синим, ставлю GBR -итог- зелёный-синим, синий-красным, красный-синим, любые другие вариации дают такой же результат, как и GBR,
Эффект огонь, у меня сине-голубой, как только включаю, вся гирлянда загорается красным цветом и первый эффект начинается заполнение снизу вверх синим цветом. Я так понимаю, что из за несоответствия цветов я вижу эффекты не так как Вы их задумывали.
не подтвердилось.
Скачал последний скетч
ничего не менял (там стоит SAVE_EEPROM 2 и COLOR_ORDER RGB)
загрузил в NANO
на верху гирлянды мигает красным (у меня подключены светодиоды WS2811)
Поменял COLOR_ORDER на GRB
Загрузил в NANO
на верху гирлянды мигает зеленым
Поверьте.
К любым двум свободным пинам, обычно не к аналоговым например D6 или D7, я использовал двойной светодиод с общим коллектором, но это не принципиально, все настраивается, Если сразу будут светится то меняем эти строки
На моей гирлянде тоже такое проявляться начало, именно после монтажа на елку. До этого спираль из 200 светодиодов была намотана на трубу пластиковую d110 мм (испытательный стенд), работало без затыков на БП 3А (ограничение в скетче ставил в 2А), после установки елки подключил БП 5А, ограничение поставил 3А. Может вечер проработать без неожиданного уменьшения яркости, может в течение часа и два, и три раза неожиданно уменьшить яркость до минимума, эффекты работать при этом продолжают…
Непонятки какие-то…
Елка далековато стоит от компа, попробую на ноут ArduinoIDE поставить, посмотреть логи…
Дорброго дня.
Прошу прощения за невнимательность, но не могу найти, на каком этапе появилось ЛЕД1 и ЛЕД2. Ведь гирлянда одна!
Дайте ссылку на схему. Или на дату, где началось обсуждение.
Спасибо
Началось отсюда
Выход на гирлянду один, гирлянд может быть несколько (на ESP32 может работать до 80 гирлянд по 50 светодиодов в каждой) Вы можете подсоединить несколько гирлянд последовательно по цепочке столько сколько хватит памяти в устройстве.
Светодиоды LED1 и LED2 введены для индикации, не каждому удобно к елке подключать лог.
На данный момент LED1 завязан на кнопки Gyvera, LED2 показывает вход в режим настройки
Пользователь может самостоятельно их переназначить
Схему подключения Индикаторных светодиодов можно взять в интернете
я правильно понимаю что палитра стала «белой»?
попробовал подменить файл что был у автора файлом данным вами… кардинальных изменений не заметил, показалось более «белым»(бесцветным) свечение.
Что бы использовать мой файл с палитрами нужно поместить его в папку с файлами проекта и в файле _main.ino заменить
#include «gradient_palettes.h»
на
#include «gradient_palettes2.h»
примерно в 242 строке.
зачем так сложно? а просто переименовать «gradient_palettes2» в «gradient_palettes»? или программисты не ищут легких путей?
Я заменил файл в папке, и мне показалась палитра белой. но я все эффекты не перебирал, просмотрел штук 5
ага, спасибо за картинки, теперь явно видно преобладание светлых тонов. предыдущая палитра НА КАРТИНКЕ была более темной, а вживую диоды светились «цветом», на новой палитре более желто-белое, что вживую дает свечение диодов белым цветом, и желтым не отличимым от белого.
Это мое мнение, но предыдущая градация цветов мне больше нравится… я-б немного изменил — зеленого добавил. (в палитру автора)
Можно и так. Писал для себя, и, что бы не удалять файлы из прошивки (что бы можно было вернуться к первоначальному состоянию) создал новый файл с другим именем.
Сравнил сейчас картинки палитр: да, в моём наборе палитр больше белого, чем в изначальном наборе. Будет время ещё поэкспериментирую с палитрами. Еще бы разобраться как используются палитры: по времени изменяется цвет по палитре, по местоположению диода, по яркости или еще как…
Мне ваша палитра больше понравилась. В ней цветов больше и некоторые эффекты стали смотреться более интереснее. Но я также соглашусь, что белого цвета стало через чур много. Убавить бы белого. Тогда было бы отлично.
Тут режимы настолько невзрачные, что для меня они все слились в бесконечное переливание цветов. Посоветуйте, на каком режиме лучше тестировать палитры, чтобы разницу было заметно?
Да нормально тут с эффектами. Просто их тут больше, чем во многих других проектах. И со стандартными палитрами многие кажутся очень похожими друг на друга. С альтернативными ( по-моему мнению) стало заметно разницу между похожими эффектами.
И ещё в других проектах ( обычно) не более 10. Так и тут можно выбрать самые крутые и их зациклить. И будет всё тоже самое. ИМХО конечно
Да, дело вкуса конечно. Но что я, что домашние, между доброй половиной эффектов особой разницы не заметили :) Надо прям сидеть и внимательно вглядываться, особенно если отключить анимацию перехода. Хочется хотя бы несколько простых и понятных вариантов как в обычных гирляндах или RGB-девайсах игровых, на фоне которых замороченные лгбт-переливания будут смотреться еще выигрышней. Но опять же, это вкусовщина полнейшая, это понятно.
Надеюсь, что в следующем году можно будет собрать прошивку со своим набором эффектов.
оригинальных эффектов 17, остальные эффекты образованы настройками параметров этих эффектов,
Да в планах есть добавление эффектов, но сейчас я сосредоточен прикручиванием bluetooth к esp32.
В исходных палитрах было больше синего, зеленого и фиолетового (картинка с исходными палитрами: yadi.sk/d/ntxpV4_-Mwq8VQ). Добавил больше красного и желтого.
Есть какая-то программа на смартфон, чтобы управлять гирляндой, через ИК-порт? Стоит Galaxy S4 Universal Remote, где можно добавлять кнопки и прописывать к ним коды, десятиричные и шестьнадцатиричные. А тут формат другой.
Дмитрий, спасибо большое за Ваш скетч!!! Такой вопрос. Можно ли сделать, чтобы было 2-3 группы демо режимов выбранных эффектов и нажатием на кнопку можно было их выбрать. Например, MY_MODE_1 0,1,2,3,4,5 и MY_MODE_2 11,22,33,44,55,66. Допустим, жена включает кнопкой свои избранные эффекты, я – свои. Если можно, то как? (В программировании не силён)
Подскажите плиз, а как в этот вариант Четвертый ПЛЮС вариант скетча — добавить управление одной кнопкой? Заранее спасибо.
Или в том варианте что Вы даете в начале с управлением кнопкой там столько же эффектов?
В четвертом плюс управление только пультом и аналоговой кнопкой
далее четвертый плюс обновился в четвертый библио с добавлением библиотек Гайвера
Если вам надо именно четвертый плюс он у гайвера в проекте елки
Я вам рекомендую взять четвертую библио с настройками под одну кнопку
Спасибо большое за ответ, взял то что Вы посоветовали, буду пробовать. Пытался сделать с пультом, но почему то мой датчик не считывает пульт. В консоли выдаёт что подключено, нажимаю кнопки мигает индикатор на платке с диодом но код не получаю( поэтому решил оставить просто на кнопке)
Подскажите пожалуйста что может быть не так, взял 4ю библио что ссылку дали выше с настройками на одну кнопку, но почему то не переключается кнопкой( Настройки вроде все проверил.
А как правильно этот лог вытащить? Я правильно понял если тут стоит вот так
#define LOG_ON 1 // Включить лог 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) действительно выглядит как оранжевый.
Если у вас есть догадки, из-за чего это может быть, подскажите пожалуйста. Переделывать каждую палитру в фотошопе боюсь до НГ не успеть :) Вряд ли это могут быть проблемы с питанием, т.к. вывод сплошных цветов не через палитры даёт правильные цвета, о чём я писал выше.
Вопрос снят, разобрался. Всё правильно там скрипт конвертирует. Он пишет про gamma 2.2, а по факту использует что-то типа 0.45, что похоже на правду. В общем, еще чуть-чуть повозиться, и будут правильные цвета.
Заметил, что при выборе эффекта (у меня настроено, чтобы в этом случае перебор останавливался) вместе с перебором эффектов останавливается и перебор палитр. Причем, я даже пробовал нажимать кнопку возобновления перебора с пульта. Я вижу в логе строчку 'Continuous palette change', но перебор не стартует. Эффекты выбираю те, в которых есть возможность смены палитр. Версия скетча вроде бы последняя, все библиотеки обновлены.
Можно ли это поправить? Спасибо большое заранее.
Здравствуйте Дмитрий. Спасибо за труд. Собрал гирлянду на мелких, и на первый взгляд классных светодиодах от BTF-LIGHTING, о которых уже писали выше, но как оказалось желтый на них выглядит как зеленый. Путем перебора нашел что-то похожее на желтый CRGB(255,65,0) и оранжевый CRGB(255,28,0). Т.е. можно смело уменьшать кол-во зеленого минимум процентов на 60, а то и 70, чтобы цвета были нормальными. Как-то можно это сделать в вашей прошивке или только все палитры править руками? Вроде как fastled позволяет делать коррекцию — ссылка. Можете, пожалуйста, добавить такую возможность или подсказать как это можно сделать? Спасибо.
Это нормально, что зелёный светодиод ярче других, это не говорит о качестве. У Дмитрия вроде бы есть в планах добавить коррекцию цвета, пока могу рассказать, как её сделал я. Это не так сложно.
На вкладке main с 383 строки идёт 4 варианта инициализации гирлянды. Найдите ваш, в зависимости от типа диодов и RGB или GRB очерёдности. Например, у меня 2811 RGB, это 386 строчка, там код:
3 числа в скобках — это яркость красного, зелёного и синего светодиодов. В вашем случае второе число нужно уменьшить, значение подбирайте опытным путём :) Например (255,150,255). Палитры править точно не нужно.
Здравствуйте! Собрал гирлянду на Wemos mini. Хочу все эффекты вашего скетча с использованием кнопки. Скетчи компилируются без ошибок. Запускается только номер 3 и то без кнопки. Четвертый с расширенными библиотеками не работает. Компиляция и загрузка проходит. Что можно сделать? Я только начал разбираться в этом.
Программа автономная, должна работать без периферии, если правильно указан пин выхода на гирлянду
Берете последний скетч заходите в настройку (файл notamesh4Biblio.ino)
И отключаете периферию
#define FastLED_ON 1 // Если равен 1 используется FastLED (даже если 0 все равно используется FastLED :)
#define LED_ON 0 // Количество светодиодов (0- светодиоды не используются, максимум 2 светодиода
#define IR_ON 0 // Если равен 1 используется пульт библиотеки IRremote
#define KEY_ADC_ON 0 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define KEY_GYVER_ON 0 // Количество кнопок подключенных к библиотеке GyverButton (0- библиотека отключена, максимум 4 кнопки)
#define TM1637_ON 0 // Если равен 1 используются индикатор из библиотеки GyverTM1637
указываете правильно пин и все если ресурсов контроллера хватает, то должно работать
А потом спокойно добавляете периферию если оно надо
Без периферии действительно все заработало! Спасибо! Осталось разобраться с кнопкой. Кнопка сенсорная, подключена к пину D6. Перепробовал все варианты прописания в скетче. Не получается. Просто гирлянда не запускается. Подсажете как прописать правильно? Может пин не верный? По Вашей картинке вроде назначение похоже.
Есть уточнение по кнопке. Перемычку «А» замкнул, так как на других скетчах без этого не прошивалось и не работала гирлянда. Может в ней дело…
#define BTN1_LOW 1 // Кнопка 1 0- привязка к питанию 1- привязка к земле
#define BTN2_LOW 1 // Кнопка 2 0- привязка к питанию 1- привязка к земле
#define BTN3_LOW 1 // Кнопка 3 0- привязка к питанию 1- привязка к земле
#define BTN4_LOW 1 // Кнопка 4 0- привязка к питанию 1- привязка к земле
Здравствуйте! Всех С Новым Годом и Рождеством! Дмитрий спасибо за проделанную работу! Главный праздник прошел и можно заняться работой над ошибками дальнейшим усовершенствованием. У меня маленькая елочка и на ней поместилось всего 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 ее включает
Не понимаю почему вы не можете включить
Я забегался, поэтому и не отвечал.Вопросов много.
Если это ошибка я исправлю
Вы ведь в курсе, что не все эффекты имеют палитры (то есть переключение палитр не возможно)
с пульта или с кнопки просто выбрать эффект (Command_Next_mode) и все если палитра не переключается то командаCommand_Palette_Auto ее включает
Именно так и делаю. Выбираю эффект, отключается автосмена эффектов, и смена палитр тоже отключается (соответствующее сообщение об этом в логе не выводится кстати). Я жму кнопку с пульта, я вижу сообщения 'Continuous palette change' в логе, но автосмена палитр не включается. Пробую на эффектах где смена палитр возможна.
А можете давать ссылки на обновлённые версии? Или номеровать "_****1.2", "_****1,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, считая её самой актуальной.
Думаю, стоит оставить текущее разделение, но добавить нумерацию версий.
Но вообще, ничего удобней гитхаба пока не придумано. Там не только удобно следить за обновлениями, там еще можно публиковать список изменений. Если ты год не следил за развитием проекта, сейчас узнать обо всех нововведениях ты можешь только прочитав все комментарии.
Точно надо ввести версионность и разделить по веткам( типам платформ). Я так пока не въехал, какой последний проект под NANO. И какие точно библиотеки.
И надо WiKi.
Сообщество поможет. Я считаю что те, кто скачал и поставил морально обязаны черкнуть хоть пару абзацев. А это наиболее нудная часть работы. Готов поучаствовать. Если/когда сам разберусь)
А про GitHub и речи нет. Тут без вариантов. Размещать и даже не думать!
Сделал несколько подарочных гирлянд на Новый Год. Но к сожалению на всех проявился один и тот же эффект — через некоторое время гирлянда уходит в чёрный режим и больше не на что не реагирует (ни не кнопку, ни на пульт). Поставил в режим лога и наблюдал за поведение системы. Гирлянда работала в режиме последовательного перебора всех эффектов. После завершения первого круга заново пошёл эффект 0, 1 и на 2 ушла в чёрный цвет. Интересно то, что ЛОГ продолжал работать и эффекты переключались, но гирлянда оставалась в «чёрном» режиме (вообще не светилась) и кнопка с пультом не меняли программы. С чем это может быть связано?
у меня 3 гирлянды все 3 работают идеально
1.диодная лента на окне. WS2812 (ардуино)
2.купленная на али проводная лента на елке. WS2812 (есп32)
3.купленная на али проводная ламповая(диодная) на крыше дома. WS2811 (ардуино)
все 3 гирлянды работают по 3-5 часов без перерыва и проблем.
проверяйте блок питания, напряжение, нано может работать и при напряжении 1,8 вольт, а светодиоды нет, программа работала неделю без выключения без сбоев
С напряжением точно всё в порядке. Интересное выявилось поведение: если долго не подходить, то через время чёрный цвет меняется на слабое свечение и отработку эффекта, но потом снова уходит в чёрный режим. Пока две гипотезы: 1) палитра (но по логу этого не видно) и 2) яркость уходит в 0. Второе похоже на правду, так как яркость иногда снижается сама и с пульта её приходится поднимать. Может быть какой-то эффект даёт изменение переменной яркости?!
Ну или аппаратный глюк ардуинки.
Но у меня 6 гирлянд и все ведут себя примерно одинаково
по второму, перепроверил установкой яркости занимается команда setBrightness.
упоминается в 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) нет управления яркостью
Если вы установили скетч с форума Гайвера то ищите ошибки там, у него, в его скетче полно ошибок Поставьте нормальный скетч, настройте и будет вам счастье
Это я уже сам дописал «Brightness:” команду для наблюдения за переменной. Но Вы правы, возможно я таки взял скетч с того форума. Решил, что они одинаковые… Спасибо ещё раз за помощь и советы. Попробую с «чистого листа».
Там у него идет управление с кнопки, по идее кнопка не должна нажиматься, даже если не подключена, либо глюк в библиотеке,
Если делали по схеме гайвера, попробуйте поставить сопротивление от 1 до 10 кОм между питанием и ножкой кнопки,
так будет правильнее,
Вы кнопки используете (кроме пульта)?
Попробуйте скетч отсюда, там все выведено в лог и легко найти проблему
Кнопка у меня подключена но без резистора (напрямую на пины GRD и D3). Похоже, что в таком подключении идёт «дребезг контактов». По правде говоря физическую кнопку не использую, так как пульт отлично выполняет свои функции.
Программно отключил кнопку через #define USE_BTN 0 и уже 30 мин работает!!! Вероятно таки глюки библиотеки GyverButton.h :(
Спасибо ещё раз за помощь!
Дмитрий, извините за беспокойство, но ссылки на скетчи не открываются. Браузер висит и не выдаёт переход кроме как на эту же самую страницу. Причём все ссылки как те, что в теле статьи, так и та, что Вы мне порекомендовали в комментарии выше. Там нужны ещё какие-то права помимо регистрации на сайте?
vskorohod,
Вы точно описали поведение моей гирлянды, 200 светодиодов, БП 5А, ограничение в скетче 3А.
Позже тоже отключу кнопку, все равно управляем только с пульта.
Но факт такой — до монтажа на елку гирлянда была намотана на «испытательный стенд» — пластовую трубу d110 мм, испытывалась около 2-х месяцев, ни одного подобного сбоя не было…
После программного отключения кнопки работает без проблем. Раньше также в тестовом режиме работала без проблем. Но тогда монтаж был открытым без упаковки в коробочку.
У меня следующее электромеханическое объяснение: возможно из-за наводок от сигнального кабеля гирлянды. Там высокая частота и может вызывать «дребезг» если провода расположены рядом. Но это лишь гипотеза.
Для этого и надо ставить сопротивление от 1 до 10 кОм между питанием и ножкой кнопки.
Хотя контроллер должен подтягивать сопротивление сам, но если их в внутри контроллера нет, или они слишком большие, то появляется шум
Ну точно так же…
Обкатывал на монтажной плате, после запихивания в коробочку и монтажа на елку начались безобразия с угасанием и пропаданием…
Со Старым Новым Годом!
Звезду брал в FixPrice, аккуратно раскрыл ее, потрошки выкинул убрал в загашник, вставил в звезду 6 конечных диодов.
ну для кого как,
Я на базе своего сайта решил сделать цикл статей, форум и FAQ по этому проекту, тут уже превышен лимит по объему и искать невозможно и неудобно все. Все запутались.
Ранее писал в версии notamesh4biblio у меня не хотела работать кнопка, потом после долгих мучений и чтения заработала. НО! не все комбинации нажатий. Некоторые команды у меня прописаны и для IR-пульта и для кнопки.
А получается — нельзя прописать одну и ту же команду и для пульта и для кнопки. Будет работать только та которая прописана первой одна, не важно для чего прописана первой — для пульта или кнопки. Можно это как то победить?
или еще вариант от разработчика
Посмотрите как сделана команда Setup_Command_Setup_Mode_Off
давайте для примера добавим еще одну команду на на примере Command_Stop Как сейчас:
Добрый вечер! Появилась потребность управлять гирляндой одной сенсорной кнопкой. Не могли бы подсказать, какая прошивка из всех существующих подходит для этой цели? А то, боюсь, тут столько новой информации, что не осилить…
Добрый вечер! Помогите разобраться с прошивкой. Есть лента 2811 2х50, планирую использовать на улице. Кнопка и пульт не нужны.
Достаточно режима ДЕМО. Порекомендуйте версию и что в ней нужно исправить. Сам в этом разбираюсь плохо.
на данный момент можно использовать 2 платформы ардуино: на базе AVR (NANO, UNO, MEGA и др) и ESP (ESP32, ESP8266 (говорят работает)
Демо режим работает автоматом везде, можно ничего не припаивать из периферии, кроме выхода на гирлянду.
для AVR последний скетч
для ESP последний скетч
отличаются только периферией, в демо режиме они одинаковые
Настройки выставляются в заголовочном файле, если будут проблемы пишите
да, надо ставить отдельно, вот проверенный FastLED или можно скачать последнюю версию с официального сайта
Ставится легко, Заходите в папку с установленной arduino IDE, в ней есть папка libraries, в папку положить разархивированный архив (в моем случае это C:\Arduino\libraries\FastLED-master)
скачал, открыл в ide в первой вкладке в перифирии оставил- #define FastLED_ON 1 -изменил тип микросхемы, закоментировал /#define PIN_IR 8
//#def/ine IR_REPEAT 1
вопрос: кнопки и команды также закоментировать или они уже не будут вызываться?
И что означают эти команды: #define LED1_PIN 26
#define LED2_PIN 25
Поставьте так, коментирование не нужно — могут быть проблемы
// Подключенная периферия
#define FastLED_ON 1 // Если равен 1 используется FastLED (даже если 0 все равно используется FastLED :)
#define LED_ON 0 // Количество светодиодов (0- светодиоды не используются, максимум 2 светодиода
#define IR_ON 0 // Если равен 1 используется пульт библиотеки IRremote
#define KEY_ADC_ON 0 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define KEY_GYVER_ON 0 // Количество кнопок подключенных к библиотеке GyverButton (0- библиотека отключена, максимум 4 кнопки)
#define TM1637_ON 0 // Если равен 1 используются индикатор из библиотеки GyverTM1637
#define LOG_ON 1 // Включить лог 1 - включить лог
Вывод лога тоже можно отключить, поставив «0»
что означают эти команды: #define LED1_PIN 26
#define LED2_PIN 25
это подключение двухцветного светодиода для индикации «служебных режимов», таких как Включение режима настройки,
Прошил, собрал гирлянду все работает. Питание 12v, контроллер NANO, резистор не ставил вроде работает нормально. Вопрос по цветам, тип изменил на WS2811, а RGB надо менять на GRB?
без кнопок, дополнительно отключить хранение RGB в EEPROM
#define SAVE_EEPROM 0 // Сохранять настройки запуска в EEPROM
// 0 - ничего не хранить
// 1 - хранить стартовый режим, длинна гирлянды, скорости и расширенные настройки
// (очередность цвета,состояние блеска, фона, свечей)
// 2 - хранить стартовый режим, длинна гирлянды, скорости
и выставить правильно очередность цвета
#define COLOR_ORDER RGB //Очередность цвета светодиодов RGB или GRB
// если стоит SAVE_EEPROM 1 , то очередность цветов регулируется в режиме настройки
поменяйте вторую строку на solid = CRGB::Red это при старте теперь должен быть красный цвет, если он будет зеленый, то RGB не правильно стоит, надо GRB
ТОВАРИЩИ ПОМОГИТЕ!!!
Бьюсь уже месяц! эти гады переписали библиотеку IRremote теперь не могу подружить ни один пульт с гирляндой. В декабре 20-го сделал, только голову сломал какие коды пульта подставлять в скетч. Вариант — запустить из примеров IRrecvDemo и из него переписать — не работает, у кого работает по шагам с примерами в студию пожалуйста! Спасло ситуацию включение в IRremote.h функции DEBUG, только так удалось отследить какие команды декодирует скетч, так вот они оказались вообще третьим набором кодов, не похожие на первые два из примеров IRremote и IRLremote. К сожалению все наработки пропали вместе с компьютером.
Только что загрузил в ардуину скетч Цветомузыки Гайвера, там библиотека IRLremote и коды кнопок отличаются от IRremote от того же пульта! Так с IRLremote библиотекой нормально пульт работает! Значит всё-таки проблема в обновлении IRremote. Подскажите, у кого работает, а лучше скиньте весь проект с библиотеками ( [email protected] ). Задолбался уже!
Конкретно с примером пожалуйста какой код вы видите в скетче примера 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 активирована.
Кому интересна переделанная версия скетча под это приложение, и само приложение пожалуйста… поделюсь.
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
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Доброго здоровья, Только что скачал 4 plus.
запустил IDE Arduino: 1.8.13 (Windows 10),
выбрана Плата:«Arduino Nano, ATmega328P
Скетч не менял, все откомпилировалось
Я поставил среду IDE 1.8.15 и получил ваши ошибки
Причина, файл в формате UTF-8 и в начале есть служебный символ (его не видно) и При компиляции идет сбой
Самое простое решение, удалить первый символ в файле и записать его заново (в моем случае символ «решетка»)
и так сделать во всех файлах, где ошибка
Всем привет! Помогите разобраться, где я «косячу» Сам в программировании я не спец.
Когда в скетче notamesh4plus в строке 33 #define IR_ON 0 стоит 0, то есть работа без пульта, скетч прекрасно компилируется.
но если поставлю 1 ( использование пульта) получаю вот это Error compiling for the Arduino Nano board.
Что не так?
Доброго здоровья Ошибка переводится «Ошибка компиляции для платы Arduino Nano»
Вы наверное не все сюда вывели из того что было в логе.
могу только гадать, ошибка связана с библиотекой пульта
Вот полный текст
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.
Спасибо за быстрый ответ!
Эту библиотеку я уже установил. Однако в списке библиотек в среде Ардуино заметил, что присутствует наличие Робота. Удалил его отовсюду. Но он, зараза, таки сидит в списке. Как от него избавиться — ума не приложу. Весь комп через «поиск» прошерстил — нету! А в списке — есть!
Здравствуйте! После успешных испытаний варианта на ESP32 BLE, решил попробовать собрать гирлянду на notamesh4Biblio без IR, с 4-я кнопками от Гайвера и дисплеем от него же. Скетч компилируется хорошо! Но возникает один вопрос — Куда подключать эти самые кнопки? В скетче указаны пины 34,35,32,33. Но сколько я не разглядывал свою Нану, пинов с такими номерами не нашёл! Ясен-тополь, что нужно использовать другие «ноги». И, как я своим умишком понимаю, ноги должны быть с буквой D. Подскажите, пожалуйста, есть ли какие-то специальные условия для подключения этих «конечностей», или я могу использовать любые на свой цвет и вкус?
Доброго здоровья!
Вы должны заменить номера пинов на свои, куда вы подключили кнопки, пины любые можно и аналоговые, подробно тут (можно без буквы или с буквой A) вот первоисточник как подключать кнопки
И еще, если будите подключать по способу Гайвера, не забудьте поставить
#define BTN1_LOW 0 // Кнопка 1 0- привязка к питанию 1- привязка к земле
#define BTN2_LOW 0 // Кнопка 2 0- привязка к питанию 1- привязка к земле
#define BTN3_LOW 0 // Кнопка 3 0- привязка к питанию 1- привязка к земле
#define BTN4_LOW 0 // Кнопка 4 0- привязка к питанию 1- привязка к земле
Спасибо! Только что собрал и запустил. И, естесссно, сделал ошибку с привязкой. Сейчас поправлю. Но почему-то дисплей не запустился. Вроде все верно соединил… Будем искать!..
С дисплеем всё отлично! Работает как надо! Просто у одного человека (не будем на меня пальцем показывать) мозг переклинило.
А вот с кнопками Гайвера — беда! Уверенно и адекватно работает только 1-я. Остальные — никак. Но до меня таки дошло, что если в логе посмотреть какая команда высвечивается, то… Открывается обширное поле для творчества.
Фуф! Хорошо, что я сейчас занялся этим делом! До Нового года должен успеть! :)
Поздравляю!, Я рад, что еще один человек стал изучать тему электроники и контроллеров.
С кнопками есть одна беда, которую Гайвер не озвучивает.
По всем канонам электроники, если вы кнопку закорачиваете на землю то должны поставить подтягивающий резистор к питанию, и наоборот, если кнопку коротите на питание, должны поставить подтягивающие сопротивления к земле.
Внутри контроллера есть внутри маленькие сопротивления, и как бы драйвер Гайвера их включает, но… иногда этих сопротивлений может не быть, а иногда на длинных проводах, кнопка, может срабатывать самопроизвольно,
Если паять сопротивления никах, попробуйте заменить пин.
Спасибо! К электронике меня давно «тянуло», с детства. Но, как-то не сложилось. Заниматься более-менее плотно начал пару лет назад. Благо появилась возможность весьма дёшево покупать детали в Поднебесной. Но пока из уровня дилетантства я не вышел, да и вряд ли уже выйду.
Но это дело мне нравится! Благодаря интернету и таким людям, как Вы, есть возможность учится, и делать что-то своими руками!
Подтягивающие сопротивления по 1кОм поставил. Сделал так, как показано на рисунке в теме про ESP32.
Всё, останавливаюсь на этом варианте — 4 гайверовские кнопки и дисплей. Работает как и дОлжно! Конечно, надо бы ещё скетч под себя «причисать» — объяснить кнопками, что я от них хочу. Но без фанатизма! Например, выполнять глубокую настройку через кнопки делать не буду. Это ж неудобно! Да и… Через полгода я забуду, как это делается! А писать подробную инструкцию… А оно надо?! Чем проще — тем лучше! По крайней мере для меня. Включил — заработало! Кнопками выбрал режим и алга! А если что, так USB порт всегда доступен!
проект делался как автономный, включил питание и все, остальное от лукавого…
Если нужны подсказки, то все же рекомендую esp32 и телефон, там подсказки отображаются.
Скоро доделаю и будет все хорошо
Ну Дмитрий, так не пойдёт! Я уже «причесал» под себя скетч, подобрал корпус, кнопки, кабеля и проч. арматуру! А тут… На тебе! Скоро будет что-то новое! Нет, я понимаю — совершенству нет предела! И что мне теперь делать?!
Ну а если серьёзно, то вариант с ESP32 мне нравится больше. Просто у меня «не пошло» (от слова «идти»). Да, кстати, дисплей TM1632 наотрез отказался работать с ESP… Или наоборот… Но, опять же, это не критично!
Так что… Ждём'с!
Профинансировать? Да не проблема! Хорошему человеку всегда рад помочь.
Наезды? А вот с этого места, пожалуйста, поточнее! В чём усматривается наезд? По крайне мере, с моей стороны его нет! А вот Вы, похоже, пытаетесь это сделать. Либо у Вас проблемы с чувством юмора, либо Вы невнимательно прочитали моё сообщение, адресованное Дмитрию.
Здравствуйте, Дмитрий! Как я уже писал, собрал замечательную гирлянду на Nano, 4 гайверских кнопки и его же дисплей. Пока 100 диодов, но планирую удвоить. Прошивка 4biblio. Без пульта.
Уже несколько дней гирлянда «пашет» без нареканий! Однако возник у меня вопрос. Можно ли в скетче изменить изначальную яркость светодиодов? При включении они светят сразу на максимум. А мне желательно примерно 50%. Конечно, можно кнопками это дело урегулировать, но… Каждые раз привключении давить на кнопки… Сам я не нашёл, где и как это подправить.
Здравствуйте, Дмитрий! Подскажите пожалуйста, где в скетче можно увидеть номер и описание эффекта, что бы выбрать наиболее понравившиеся (я наверное это где-то пропустил).Или, если не трудно, напишите допустим:1-- радуга,2 — бегущий огонь и тд.
Зарание спасибо!
Здравствуйте В логе, в нем отображается номер эффекта. (Меню/Инструменты/монитор порта), С описанием сложнее, я не знаю как одним двумя словами выразить описание эффекта (практически везде перетекание радуги в другую радугу)
Странно, проверьте скорость (внизу монитора порта) должно быть 115200 или можно использовать стороннюю программу например эту, там надо правильно выбрать порт, скорость и нажать Connect
Подскажите пожалуйста. Какие проблемы могут возникнуть при использовании блока питания от ПК, 250w? Есть гирлянда ws2811, 5v, 200 диодов + Arduino Nano.
Судя по моим тестам (особенно в Дополнительном разделе) для питания большой мощности не нужно 3 Ампера хватает на 400 светодиодов.
Главное:
1) запустите этот блок питания (не все умеют)
2) не перепутайте провода (надо Общий и 5 Вольт)
3) правильно подсоедините питание( должны быть отдельный нормальный провод на контроллер и через каждые 100 светодиодов)
Добрый день, у меня 200 светодиодов с пультом, Arduino Nano, есть зависания светодиодов, может кто подскажет что отключить чтоб памяти меньше стала жрать?
То-же самое. Имею 200 диодов ws2811, Arduino Nano. Без пульта и кнопок. Загрузил 'Плюс', зависание минут через 30. Отключение питания и новый запуск не помогает уйти от этого зависания. Помогает только перепрошивка. Пробовал БП на 5А и от ПК. Отключал Лог, не помогает. С скетчем Гайвер работает стабильно, но в Плюсе больше нравятся эффекты.
Примерно так же зависает через минут 20-30 работы скетчем Гайвер, питание 5 В. 8А. три дополнительных подключения по питанию, тестировал на 100 светодиодах, работает стабильно, просто не хватает памяти, не знаю как удалить пару эффектов для освобождения памяти.
Глобальные переменные используют 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
// От размера этого числа зависит колличество используемой памяти
#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 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 // Включить эффекты бегущего огня
Сейчас проблематично это сделать так как на работе. Дома комп в одной комнате, а гирлянда развешана пока на стене в другой комнате. Чтобы записать лог это же надо включить гирлянду, аурдинку подключить по USB к ПК и в скетче включить монитор? Просто я это не делал никогда.
13:20:07.399 -> Change palette off
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 эффекта, а гирлянда работает и переключается с эффекта на эффект в демо режиме пока нормально, монитурю далеше.
#define BLACKSTART 1 // Первый запуск делать с черного экрана 0- начинать с эффекта, 1- начинать с черного экрана
#define GLITER_ON 1 // Включить блеск 0 - блеск отключен, 1- блеск включен
#define CANDLE_KOL 20 // если больше 0 то будут включена эмитация свечей
// число задает через какое расстояние друг от друга располагать свечи
#define CANDLE_ON 0 // Если включена эмитация свечей то 1 = при запуске она будет включена
// 0 = при запуске она будет выключена
#define BACKGR_ON 1 // Включить заполнение черного цвета фоном
Спасибо за помощь, с питание все нормально, питаю диоды проводом 0,75 в начале на соединение 100 шт. и на соединение 150, выход источника 5 В по питанию стоят кондеры 1000 мкФ на входе в ленту и на ардуинке тоже 1000 мкФ. проседает в конце делал замер на постоянно горящем белом 2,85 В. на эффектах скачет 4- 4,5 иногда 3.7 В. поменял блок на 3А. поставил ограничения 3А и питался еще от USB снимая лог, зависание было на 55 -й минуте, уменьшил DEV_NOISE16 70 До 60-ти пока работает уже 80 минут.
::: В файле notamesh4plus.ino спускаемся на строку 663 — не нашел такую строку у меня последняя строка 463 462 с комментарием настройка закончена.
два года назад в плюсе была ошибка с зависанием, ее кстати Гайвер использовал у себя в проекте, я ошибку исправил, я на сайте у Гайвера с ошибкой так и висит проект
#define RUNNING_FIRE 0 // Включить эффекты бегущего огня
5) поотключать не используемые команды пульта В файле commands.h поставить 0 в неиспользуемых командах, либо просто удалить строки или закомментировать (поставить // перед строкой)
6) отключить эффекты. в файле notamesh4plus.ino спускаемся на строку 663 и комментируем не нужные команды (поставить // перед строкой)
Код
switch (mode) { // First time through a new mode, so let's initialize the variables for a given display.
case 0: if(mc) {thisdelay=10; palchg=0; } blendwave(); break;
case 1: if(mc) {thisdelay=10; palchg=0; } rainbow_beat(); break;
case 2: if(mc) {thisdelay=10; allfreq=2; thisspeed=1; thatspeed=2; thishue=0; thathue=128; thisdir=1; thisrot=1; thatrot=1; thiscutoff=128; thatcutoff=192;} two_sin(); break;
case 3: if(mc) {thisdelay=20; allfreq=4; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 4: if(mc) {thisdelay=10; } noise8_pal(); break;
case 5: if(mc) {thisdelay=10; allfreq=4; thisspeed=-1; thatspeed=0; thishue=64; thathue=192; thisdir=1; thisrot=0; thatrot=0; thiscutoff=64; thatcutoff=192;} two_sin(); break;
case 6: if(mc) {thisdelay=20; allfreq=10; bgclr=64; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 7: if(mc) {thisdelay=10; numdots=2; thisfade=16; thisbeat=8; thisdiff=64;} juggle_pal(); break;
case 8: if(mc) {thisdelay=40; thisindex=128; thisdir=1; thisrot=0; bgclr=200; bgbri=6;} matrix_pal(); break;
case 9: if(mc) {thisdelay=10; allfreq=6; thisspeed=2; thatspeed=3; thishue=96; thathue=224; thisdir=1; thisrot=0; thatrot=0; thiscutoff=64; thatcutoff=64;} two_sin(); break;
case 10: if(mc) {thisdelay=20; allfreq=16; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 11: if(mc) {thisdelay=50; mul1=5; mul2=8; mul3=7;} three_sin_pal(); break;
case 12: if(mc) {thisdelay=10; } serendipitous_pal(); break;
case 13: if(mc) {thisdelay=20; allfreq=8; bgclr=0; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 14: if(mc) {thisdelay=10; allfreq=20; thisspeed=2; thatspeed=-1; thishue=24; thathue=180; thisdir=1; thisrot=0; thatrot=1; thiscutoff=64; thatcutoff=128;} two_sin(); break;
case 15: if(mc) {thisdelay=50; thisindex=64; thisdir=-1; thisrot=1; bgclr=100; bgbri=10;} matrix_pal(); break;
case 16: if(mc) {thisdelay=10; } noise8_pal(); break; // By: Andrew Tuline
case 17: if(mc) {thisdelay=10; } plasma(11,23,4,18); break;
case 18: if(mc) {thisdelay=20; allfreq=10; thisspeed=1; thatspeed=-2; thishue=48; thathue=160; thisdir=-1; thisrot=1; thatrot=-1; thiscutoff=128; thatcutoff=192;} two_sin(); break;
case 19: if(mc) {thisdelay=50; palchg=0; thisdir=1; thisrot=1; thisdiff=1;} rainbow_march(); break;
case 20: if(mc) {thisdelay=10; mul1=6; mul2=9; mul3=11;} three_sin_pal(); break;
case 21: if(mc) {thisdelay=10; palchg=0; thisdir=1; thisrot=2; thisdiff=10;} rainbow_march(); break;
case 22: if(mc) {thisdelay=20; palchg=0; hxyinc = random16(1,15); octaves=random16(1,3); hue_octaves=random16(1,5); hue_scale=random16(10, 50); x=random16(); xscale=random16(); hxy= random16(); hue_time=random16(); hue_speed=random16(1,3); x_speed=random16(1,30);} noise16_pal(); break;
case 23: if(mc) {thisdelay=20; allfreq=6; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 24: if(mc) {thisdelay=10; } plasma(23,15,6,7); break;
case 25: if(mc) {thisdelay=20; thisinc=1; thisfade=2; thisdiff=32;} confetti_pal(); break;
case 26: if(mc) {thisdelay=10; thisspeed=2; thatspeed=3; thishue=96; thathue=224; thisdir=1; thisrot=1; thatrot=2; thiscutoff=128; thatcutoff=64;} two_sin(); break;
case 27: if(mc) {thisdelay=30; thisindex=192; thisdir=-1; thisrot=0; bgclr=50; bgbri=0;} matrix_pal(); break;
case 28: if(mc) {thisdelay=20; allfreq=20; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 29: if(mc) {thisdelay=20; thisinc=2; thisfade=8; thisdiff=64;} confetti_pal(); break;
case 30: if(mc) {thisdelay=10; } plasma(8,7,9,13); break;
case 31: if(mc) {thisdelay=10; numdots=4; thisfade=32; thisbeat=12; thisdiff=20;} juggle_pal(); break;
case 32: if(mc) {thisdelay=30; allfreq=4; bgclr=64; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=128; thisrot=1; thisspeed=8; wavebright=255;} one_sin_pal(); break;
case 33: if(mc) {thisdelay=50; mul1=3; mul2=4; mul3=5;} three_sin_pal(); break;
case 34: if(mc) {thisdelay=10; palchg=0; thisdir=-1; thisrot=1; thisdiff=5;} rainbow_march(); break;
case 35: if(mc) {thisdelay=10; } plasma(11,17,20,23); break;
case 36: if(mc) {thisdelay=20; thisinc=1; thisfade=1;} confetti_pal(); break;
case 37: if(mc) {thisdelay=20; palchg=0; octaves=1; hue_octaves=2; hxy=6000; x=5000; xscale=3000; hue_scale=50; hue_speed=15; x_speed=100;} noise16_pal(); break;
case 38: if(mc) {thisdelay=10; } noise8_pal(); break;
case 39: if(mc) {thisdelay=10; palchg=0;} fire(); break;
case 40: if(mc) {thisdelay=10; palchg=0;} candles(); break;
case 41: if(mc) {thisdelay=10; } colorwaves(); break;
// case 42 .. 121: if(mc) {thisdelay=10; } running_fire(9,3,1); break;
case 200: fill_solid(leds, MAX_LEDS, CRGB::Black); fill_solid(leds,NUM_LEDS,CRGB(255,255,255)); break; //Зажеч гирлянду длинной NUM_LEDS (регулировка длинны гирлянды)
case 201: fill_solid(leds, MAX_LEDS, CRGB::Black); fill_solid(leds,meshdelay,CRGB(255,255,255)); break; //Зажеч гирлянду длинной meshdelay
case 255: if(mc) {palchg=0; } fill_solid(leds, NUM_LEDS, solid);break; //Установить цвет
default :
#if RUNNING_FIRE == 1
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);
}
else
#endif
ledMode = 0;
break; //нет такого режима принудительно ставим нулевой
} // switch mode
есть функция в библиотеке FastLED fill_noise16 (как я понял она генерирует рисунок по определенному закону (16 bit, fixed point implementation of perlin's Simplex Noise) это единственная функция которая при запуске «жрет» много памяти, а раз памяти нету, то зависает
параметр DEV_NOISE16 бъёт всю ленту на части кусками (каждый кусок равен DEV_NOISE16) и над каждым куском происходит отдельный расчет fill_noise16, памяти расходуется меньше.
если DEV_NOISE16 больше или равен длине ленты, то разбивки не происходит.
Естественно генерация целостного эффекта лучше смотрится, когда разбивка не происходит, или происходит крупными частями.
Дмитрий, добрый день. У гайвера недавно вышла новая библиотека для кнопок «EncButton», которую он описывает как «легче и быстрее GYVERBUTTON при это с ней совместима», случайно не смотрели её? есть ли смысл в её портировании в Ваши проекты?
пробежался по быстрому по библиотеке. вкратце это все же управление энкодером, чем кнопками
есть не все, например я не нашел обработчика 3 клика и потом удержание
енкодер без экрана тоже себе удовольствие, 10 поворотов налево, 3 направо и затем клик, лучше и дешевле просто три кнопки поставить. проше и функционал шире
Спасибо. Отлично я программирование не силен, но хотя бы с настройкой кнопкой разобрался. Смутило высказывание, что она «легче» при этом это симбиоз его двух библиотек gyverencoder и GyverButton
Дмитрий, подскажите пожалуйста. Собираю гирлянду на кнопках и дисплее tm1637 (ИК пульт не использую). Согласно библиотеке GyverButton, 1х, 2х, 3х, 4х-кратные клики кнопки распознаются как отдельные команды, хочется реализовать следующее для кнопки переключения эффектов:
1. При 2х, 3х, 4х и т.д. кратных нажатиях эффект переключался на номер соответствующий — ("№ текущего эффекта"+«кол-во нажатий»)
2. При удержании кнопки смены эффектов шла прокрутка эффектов, при отпускании включался соответствующий, прокрутку номеров отслеживать в реальном времени на tm1637.
По текущему пункту есть идеи по реализации алгоритма:
а) Прокрутка номеров эффектов происходит после удержания кнопки в течении 1,5-2 секунд;
б) скорость прокрутки сделать 2х ступенчатой, т.е. первый десяток номеров прокручивать к примеру за 4 секунды, последующие 10 номеров за 2 секунды (какую именно скорость настроить нужно выяснить опытным путем).
По моему такое управление сменой эффектов удобное, логичное и интуитивно понятное. Эффектов много, закомментировать «ненужные» совсем не хочется, т.к. это вкусовщина сегодня он не нравится а завтра понравился, поэтому пусть будут все. Зато можно запомнить пяток номеров любимых эффектов и при необходимости быстро удобно его выбрать. Знаю что через ИК пульт это делается на раз, можно ввести нужный номер, но лично мне его неудобно использовать, тем более судя по вышеописанным комментарием его библиотека с fastled работает весьма криво. Лично я за то чтобы гирлянда была автономным и не зависимым устройством.
1. При 2х, 3х, 4х и т.д. кратных нажатиях эффект переключался на номер соответствующий — ("№ текущего эффекта"+«кол-во нажатий»)
не понял
есть команды выбора эффекта
Код
//Вариант выбора используя кнопки 0-9 кнопками 0-9 число сдвигается на разряд и добавляется единица, соответствующая номеру кнопки
#define Command_SetMode_0 0xFF20DF //0 // Набор номера выбор эффекта сдвиг + кнопка 0
#define Command_SetMode_1 0xFFC03F //1 // Набор номера выбор эффекта сдвиг + кнопка 1
#define Command_SetMode_2 0xFFE01F //2 // Набор номера выбор эффекта сдвиг + кнопка 2
#define Command_SetMode_3 0xFFD02F //3 // Набор номера выбор эффекта сдвиг + кнопка 3
#define Command_SetMode_4 0xFFF00F //4 // Набор номера выбор эффекта сдвиг + кнопка 4
#define Command_SetMode_5 0xFF02FD //5 // Набор номера выбор эффекта сдвиг + кнопка 5
#define Command_SetMode_6 0xFF22DD //6 // Набор номера выбор эффекта сдвиг + кнопка 6
#define Command_SetMode_7 0xFF12ED //7 // Набор номера выбор эффекта сдвиг + кнопка 7
#define Command_SetMode_8 0xFF32CD //8 // Набор номера выбор эффекта сдвиг + кнопка 8
#define Command_SetMode_9 0xFF00FF //9 // Набор номера выбор эффекта сдвиг + кнопка 9
например можно сделать так, кнопка 1, быстро кликаете (выбор десятков) пауза, быстро кликаете (выбор единицы) то есть кликнули два раза и затем три раза выберется режим 23, для этого
просто добавляете команды на на 10 кликов сами вот тут
Код
// Команды связанные с действиями кнопки, менять не надо, просто используем
#define BTN1_1 1000 // кнопка 1 клик
#define BTN1_2 1001 // кнопка 1 два клика
#define BTN1_3 1002 // кнопка 1 три клика
#define BTN1_4 1003 // кнопка 1 четыре клика
#define BTN1_PRESS 1005 // кнопка 1 удержание
#define BTN1_1_PRESS 1006 // кнопка 1 один клик + удержание
#define BTN1_2_PRESS 1007 // кнопка 1 два клика + удержание
#define BTN1_3_PRESS 1008 // кнопка 1 три клика + удержание
#define BTN2_1 1100 // кнопка 2 клик
#define BTN2_2 1101 // кнопка 2 два клика
#define BTN2_3 1102 // кнопка 2 три клика
#define BTN2_4 1103 // кнопка 2 четыре клика
#define BTN2_PRESS 1105 // кнопка 2 удержание
#define BTN2_1_PRESS 1106 // кнопка 2 один клик + удержание
#define BTN2_2_PRESS 1107 // кнопка 2 два клика + удержание
#define BTN2_3_PRESS 1108 // кнопка 2 три клика + удержание
#define BTN3_1 1200 // кнопка 3 клик
#define BTN3_2 1201 // кнопка 3 два клика
#define BTN3_3 1202 // кнопка 3 три клика
#define BTN3_4 1203 // кнопка 3 четыре клика
#define BTN3_PRESS 1205 // кнопка 3 удержание
#define BTN3_1_PRESS 1206 // кнопка 3 один клик + удержание
#define BTN3_2_PRESS 1207 // кнопка 3 два клика + удержание
#define BTN3_3_PRESS 1208 // кнопка 3 три клика + удержание
#define BTN4_1 1300 // кнопка 4 клик
#define BTN4_2 1301 // кнопка 4 два клика
#define BTN4_3 1302 // кнопка 4 три клика
#define BTN4_4 1303 // кнопка 4 четыре клика
#define BTN4_PRESS 1305 // кнопка 4 удержание
#define BTN4_1_PRESS 1306 // кнопка 4 один клик + удержание
#define BTN4_2_PRESS 1307 // кнопка 4 два клика + удержание
#define BTN4_3_PRESS 1308 // кнопка 4 три клика + удержание
главное чтобы числа не повторялись например
#define BTN1_5 1015 // кнопка 1 четыре клика
#define BTN1_6 1016 // кнопка 1 четыре клика
#define BTN1_7 1017 // кнопка 1 четыре клика
и т.д
ну и вставляете коды кликов в команды
т.е. тем самым я задам новые функции для обработки n-кликов при том судя по последнему коду в спойлере для кнопки 1 диапазон свободных кодов кликов — от 1008 до 1100 верно?
например можно сделать так, кнопка 1, быстро кликаете (выбор десятков) пауза, быстро кликаете (выбор единицы) то есть кликнули два раза и затем три раза выберется режим 23, для этого
просто добавляете команды на на 10 кликов сами вот тут
такой способ на практике оказался весьма удобным, однако описанную Вами кнопку «1» нельзя использовать для команды 1 клик, (смена эффекта или любую другую команду), возникает конфликт команд, например нужно выбрать эффект 11 — клик-пауза-клик, по факту же 2 раза сменили эффект, получается, что набор десятков и единиц нужно организовывать на отдельную кнопку, либо же делать некий режим ввода числа
2. При удержании кнопки смены эффектов шла прокрутка эффектов, при отпускании включался соответствующий, прокрутку номеров отслеживать в реальном времени на tm1637.
будет время сделаю а пока можно накликать
а) Прокрутка номеров эффектов происходит после удержания кнопки в течении 1,5-2 секунд;
б) скорость прокрутки сделать 2х ступенчатой, т.е. первый десяток номеров прокручивать к примеру за 4 секунды, последующие 10 номеров за 2 секунды (какую именно скорость настроить нужно выяснить опытным путем).
не у всех есть экран, как я понимаю этот функционал единичный случай только для вас, будет время сделаю. а так вы можете сами добавить, и то что получится добавить в шапку темы
Сейчас самый удобный вариант, это управление с телефона, там экран больше и сразу все видно и по стоимости получается дешевле, (не надо покупать кнопки и экран)
Лично я за то чтобы гирлянда была автономным и не зависимым устройством.
я изначально так и делал, подал питание и все. Вы сами поймете, лежа под елкой не захотите эффекты переключать, Неделю поиграетесь и надоест.
по пробую поковыряться с прокруткой. Направьте пожалуйста ход мыслей:
-получен код клика соответствующий удержанию, запускаем цикл для увеличения переменной на единицу
-проверяем код кнопки //осталась ли она зажатой
-если истина, то задержка на n-секунд и продолжаем цикл, иначе выход из цикла.
-инициализируем номер эффекта. //какая переменная содержит номер эффекта?
-складываем результат цикла с текущим переменной
не у всех есть экран, как я понимаю этот функционал единичный случай только для вас, будет время сделаю. а так вы можете сами добавить, и то что получится добавить в шапку темы
Сейчас самый удобный вариант, это управление с телефона, там экран больше и сразу все видно и по стоимости получается дешевле, (не надо покупать кнопки и экран)
ну почему же единичный, это пригодится всем кто будет использовать 1637, его же поддержку Вы включили в проект, а это так сказать расширение функционала индикатора
я изначально так и делал, подал питание и все. Вы сами поймете, лежа под елкой не захотите эффекты переключать, Неделю поиграетесь и надоест.
возможно Вы правы насчет недели, но когда надоест, лезть в телефон запускать приложение, проверять «коннект» тоже вряд ли захочется, тем более все равно нужно идти к розетке заодно и кликнуть кнопочку при необходимости можно
буду очень благодарен.
Я так поражен Вашей отзывчивостью буквально на каждый комментарий, и огромным старанием, желанием помочь всем и каждому это достойно уважения, спасибо огромное за Ваши труды.
Помогите пожалуйста настроить пульт, что я только не делал, не получается, стоит только выключить ПК или отсоединить ардуино от ПК и запитать от блока питания ик порт перестаёт работать, когда ардуино подключено к ПК и ПК включено лампочка RX реагирует на нажатие на пульте миганием, стоит только подключить ардуино от блока питания реагировать на нажатие перестаёт.
Типичная проблема тонких проводов. При отключении USB питание на контроллере становится значительно меньше, что приводит к сбою.
Проложите питание дополнительно нормальным проводом.
Старая версия двухлетней давности, ее полностью заменит.notamesh4.2_(Biblio).zip или notamesh4.2_(Gyver).zip
Есть готовые (в личку), есть у Гайвера, все подробно расписано
Если самому, то рабочий минимум купить блок питания, гирлянду и плату ардуино, припаять 3 провода и все работает.
Если припаять кнопку, то уже можно что-то переключать.
Есть вариант управления с телефона по BlueTooth., тут даже кнопок не надо паять.
Для программирования не обязательно знать язык программирования, достаточно подключить к USB и потыкать мышкой. Если есть проблемы, то пишем здесь, помогу.
Итак определитесь в том что я написал, и я подскажу что делать дальше и что покупать
Подойдет любая, но если вы про контроллер из этой темы, то заморочек меньше будет у 5 вольтовой гирлянды, подключил и работает, у 12 вольтовой надо еще понижайку ставить с 12 вольт в 5 (не думаю что тот что стоит на контроллере справится и не перегреется.
12 вольтовая хороша тем, что потерь в проводах меньше если подключите от 3 гирлянд в цепочку
Не стоит забывать, что в 12В гирляндах все светодиоды соединены по 3 шт последовательно, т.е. 3 светодиода работает как один, а это уже не так интересно, эффекты будут выглядеть не так красочно, а такие режимы как бегущий огонь и вовсе потеряют актуальность. По поводу 4pin как правило в таких гирляндах дублируется «data» или содержит доп. пин «BI» который подключать никак не надо, как я понял он нужен для работы собственного микроконтроллера, подробнее почитайте в гайде гайвера.
Да действительно, спасибо Дмитрий. В таком случае её использовать вообще нецелесообразно, т.к. при том же «свете» нужно иметь блок питания в 2,4 раза, ради того чтобы добить лишнего тепловыделения
Сделал из таких на 200 диодов. После 100 диодов подвёл дополнительное питание. Загрузил прошивку Biblio и всё отлично работает. Уже получил несколько заказов на изготовление такой гирлянды. Вечерами сижу паяю.
Поставил notamesh4plus. Гирлянда на 100 диодов. В начале все работало, потом примерно в середине вышел из строя один светодиод, следовательно цепочка прервалась. Я удалил его, прописал 99(пробовал и 100) диодов но теперь не горят в конце 17 диодов. Если загрузить пример из FastLed то все работает. Где нужно искать причину.
#define MAX_LEDS 100 // Максимальное количество светодиодов, очень влияет на память
// если стоит SAVE_EEPROM 1 , то число светодиодов регулируется в режиме настройки
и
#define SAVE_EEPROM 0 // Сохранять настройки запуска в EEPROM
// 0 - ничего не хранить
// 1 - хранить стартовый режим, длинна гирлянды, скорости и расширенные настройки
// (очередность цвета,состояние блеска, фона, свечей)
// 2 - хранить стартовый режим, длинна гирлянды, скорости
Тип гирлянды правильный. #define SAVE_EEPROM не нашел( пробовал прописывать не помогло) или я не там ищу, на мониторе порта есть строчка: Initial strand length: 82 LEDs. Эти 82 как раз и горят из 99. Буду копать дальше
перепутал с версией библио. тогда ставьте #define MAX_LEDS 100
#define IR_ON 0
Initial strand length: 82 говорите, значит записано в EEPROM,
либо отключаете пульт или с пульта увеличьте длину, команды IR_Key_Length_Garland_plus
IR_Key_Length_Garland_minus
Спасибо вам за помощь! отключил пульт и все светодиоды заработали. возможно у меня пульт работает не корректно, до этого я на пульте нажимал кнопку уменьшения количества диодов но нечего не уменьшилось (хотя на ардуино мигал индикатор ). Наверно последние нажатия кнопки записались в память и не стерлись. нажатия для увеличения не помогло. также несолько раз перезаписывал разные версии notamesh в ардуино Буду дорабатывать пульт задействую только небходимые функции, а то у меня были включены все кнопки на пульте.
Просмотрел, там проскакивают не правильные коды. Думаю дело в ик-приемнике от старого телевизора, есть другой в металлическом корпусе попробую его, пульт новый от цифровой приставки. Гирлянду брал типа «капли» с жёсткими одножильным проводами( если кто такие брал и у вас остановились эффекты на каком то участке, попробуйте пошевелить провод на последнем работающим и первым не работающим светодиоде. Там внутри на некоторых недопай. У меня такое было и мне помогло)
Версия notamesh4Biblio.У кого не корректно отображаются цвета и изменения в COLOR ORDER (RGB, GBR и т.д) не помогают, попробуйте в main примерно в 401 строке и выше в строках поменять очередность (RGB, GBR) на BGR(в color order тоже). Я свою исправил так.
Доброго времени суток! Поставил notamesh4plus, 115 светодиодов без пульта. Все работает. Подскажите, пожалуйста, как изменить цвет фона на зеленый. Сейчас он у меня синий.
Извиняюсь, что быстро не ответил.
в файле 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].b +=CRGB(5,5,5) на leds[i].b +=CRGB(0,5,0) или на leds[i].b +=CRGB(5,0,0) и т. д не приводит к смене фона. Он так и остается синий. Использовал библиотеку FastLed 3.4 Не может ли быть это причиной? Хотелось бы, чтобы елочка была зеленой в отсутствии эффектов, но пока никак не получается.
Ситуация такая. Скетч последний notamesh4plus. Лента на 100 штук с жёсткими каплями 2812 но тот же эффект и при включении ленты 2813. При включении режима свечи, когда светодиоды горят ярко через заранее заданное количество штук, например 3. Они включаются до середины ленты, далее нет. И зажигаются вначале штук 5, 6,7 случайным образом пропущено, потом горят через заданное количество, но с середины ленты уже эффект отсутствует
Привет всем! Всех с наступающим! dmitrybik огромное спасибо за ваш труд!
В общем ребенку хочу устроить яркий праздник, скачал все согласно ссылок с этого сайта и… понеслась )) В общем при компиляции 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 (ноль)
Спасибо, нашел этот косяк чуть раньше чем увидел ответ. В общем как обычно, сам дурак ))) Не подумал, что в файле могут быть уже прописаны такие же команды как у моего пульта, только на других совсем кнопках. И кстати, используя указанные на странице сайта библиотеки, все пошло и в версии IDE 1.8.15. Еще раз спасибо!
In file included from sketch\IRremote.h:24: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
Ничего не трогал в прошивке кроме пинов для кнопки. И пина для контроллера ленты.
Не подскажете что не хватет.
Пробовал и другие скетчи такая же история.
// Если у вас установлены разные гирлянды (с разной очередностью цветов), то можно цвета их сделать одинаковыми
#define COOP_COLOR_START 101 // Если 0 ничего не делаем, начальный светодиод очередность цвета у которого отличается от основного
#define COOP_COLOR_END 200 // конечный светодиод очередность цвета у которого отличается от основного, но не больше MAX_LEDS
#define COOP_COLOR_WHAT RB // варианты RB - красный и синий, RG - красный и зеленый, GB - синий и зеленый
добавлены команды для перехода с режима на режим с учетом списка MY_MODE
#define Command_Previous_my_mode 0xff50af // Down // Предыдущий эффект с учетом выбраных режимов. Отключает демонстрационный режим
#define Command_Previous_my_mode_Demo 0 // Предыдущий эффект с учетом выбраных режимов. Оставляет демонстрационный режим
#define Command_Next_my_mode 0xff28d7 // Up // Следующий эффект с учетом выбраных режимов. Отключает демонстрационный режим
#define Command_Next_my_mode_Demo 0 // Следующий эффект с учетом выбраных режимов. Оставлякт демонстрационный режим
добавлены команды для перехода с режима на режим с учетом списка MY_MODE
а вот за это отдельный респект, очень, очень и очень нужная функция т.к. до этого было нелогично, создаешь свой список эффектов, а в ручную переключаться по нему не можешь. Спасибо Вам Дмитрий за труды.
Такой вопрос: если включаю заполнение фона (#define BACKGR_ON 1 ), то фон заполняется исключительно синим цветом.
Насколько я понимаю (исходя из своих невеликих знаний ардуинского языка), за цвет фона отвечает переменная bgclr.
И вот здесь в разных эффектах должно задаваться разное значение данной переменной.
Почему же тогда цвет не меняется?
Еще один вопрос: что из себя представляет имитация свечей? На своей гирлянде я ее не заметил. Если можно, тыкните носом во временную отметку на видео в посте, где можно ее увидеть?
Спасибо!
Было бы замечательно, если бы в следующих версиях скетча появилась опция плавного изменения цвета фона.
Например, чтобы изначальный CRGB(5,0,0) изменялся каждые 2-3 минуты:
CRGB(4,1,0)
CRGB(3,2,0)
…
CRGB(0,5,0)
CRGB(0,4,1)
и т.д.
во первых выяснилось что не все китайские светодиоды могут отображать все что меньше 5
во вторых изначально я хотел сделать 9 вариантов, но смеси типа CRGB(5,5,0) светят серым
в третих памяти в нане использовано уже близко к 100% пихать уже некуда
Заканчиваю сборку гирлянды с TM1637, скоро выложу подробный отчет.
На текущем этапе столкнулся со следующей проблемой: от блока управления у меня идет 3 жилы провода длиной 1 м, сигнальный и "-" скрутил в витую пару, но помехи ловит все равно большие, особенно от прикосновений к проводу, иной раз отказывается запускаться пока несколько раз не коснешься, или же наоборот случайно коснувшись, возникают артефакты на гирлянде, поделитесь опытом кто как решал эту проблему.
Спасибо сегодня по пробую, заодно измерю напряжение. Дмитрий не сочтите за наглость, подскажите возможно ли рассчитывать на адаптацию IR_REPEAT для тактовой кнопки, чтобы при удержании пролистывались эффекты, а прокрутку номеров отслеживать на 1637? очень уж не хватает этой функции среди такого обилия эффектов.
Дак это уже есть
на кнопку переключить GyverButton узнайте пин тактовой кнопки и пропишите в кнопке,
далее смотрим лог, если кнопка постоянно нажата то поменять у кнопки BTNх_LOW,
а 1637 итак работает
Дак это уже есть
на кнопку переключить GyverButton узнайте пин тактовой кнопки и пропишите в кнопке,
Да действительно удержание кнопки прекрасно отработано в GyverButton и на дисплее номера меняются в реальном времени, всё как я и хотел, но в таком случае переключать эффекты можно только или кликом или удержанием, а логично бы было сделать и так и так (как у любого электронного девайса).
Решил попробовать сам разобраться как это реализовать. Почитал гайд по языку ардуино, в частности про операторы 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
}
в моем случае вот этот код:
Дополнительная информация
case Command_Previous_my_mode: /////////////////////////////////////////////////////////////////////////// Предыдущий эффект с учетом выбраных режимов. Отключает демонстрационный режим
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:
Дополнительная информация
case duplicate_Command_Previous_my_mode: /////////////////////////////////////////////////////////////////////////// дубликат команды: Предыдущий эффект с учетом выбраных режимов. Отключает демонстрационный режим
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:
Дополнительная информация
case duplicate_Command_Next_my_mode: /////////////////////////////////////////////////////////////////////////////// дубликат команды: Следующий эффект с учетом выбраных режимов. Отключает демонстрационный режим
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 эта где смена эффектов проходит похожим образом но нето.
А так это notamesh4, 1) не правильно настроена гирлянда, зеленый поменян с красным, палитра не меняется на всем протяжении видео.
notamesh4,1_(plus)? Автор видео говорит что заливал именно библио и в скетче при этом ничего не менял. Дело в том, что мне понравилась последовательность эффектов и я хотел бы ее повторить. Но пока не могу добиться такого результата… Кстати, подскажите как отключить смену палитр пожалуйста.
все прошивки notamesh4 одинаковые по эффектам, я там ничего не менял,
Добавлен только бегущий огонь (плюс и старше) в библио сменил палитры (добавил и зеленые закомментировал)
если надо соответствия, то
1) разложите также гирлянду змейкой
2)настройте неправильно цвета (зеленый поменять с красным)
3) пультом поищите эффекты
4) смотрите на гирлянду через фотоаппарат
Это видео моей гирлянды. Что там не правильно в настройках? Цвета настроены правильно я так понимаю, если огонь красного цвета. Пульт не использую. Менял время отображения эффекта на 40 секунд. Менял #define DEV_NOISE16 100, на 80, так как зависала.
отлично, я судил о настройках косвенно, если огонь правильный, красный то конечно цвета настроены правильно, я же об этом писал…
Кстати поздравляю с вашей работой, выглядит красиво.
То что я говорил что настроено не правильно, это ответ на вопрос priormen
ваш ответ разубедил меня
.
Спасибо Вам за проделанную работу которая радует. Перед Новым годом успел сделать 4 гирлянды по 200 диодов WS2811. Все обладатели гирлянд очень довольны. Еще сделал гирлянду-матрицу от Гайвера на окно. 14х18 на светодиодах WS2812b. Теперь Челябинск за окном радует.
У вас все нормально, там где ошибка, идем вверх открытого текста и стираем самый верхний первый символ # в строке #if и пишем его заново, и все…
Это глюки новой среды разработки Arduino IDE
Сделал по Вашему совету. Все получилось.
В первой строчке #ifndef убрал с нова ввел знак #.
В Arduino IDE строка с черного цвета сменилась на темно-зеленый. Поправил во всех библиотеках, которые выдавали ошибку. Скетч скомпилировался и залился в Ардуину. Все заработало.
Ура! Новый год получится!!!
Вы нажали кнопку откомпилировать и загрузить
Компиляция прошла без ошибок, а загрузка в устройство не удалась, вы выбрали загрузку через ДУДУ
Если у вас воткнут контроллер в компьютер по usb то возможно драйвер не установлен, должен появится COM порт
доброго времени суток, всех с наступающим, на елку зарядил 300св, плата нано, хотел использовать прошивку notamesh3, но
вот такая ошибка, есть ли ей решени? зарядил 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
Всем доброго дня. Наконец таки собрал и довёл «до ума» свою гирлянду на 250 светодиодов WS2811 для ёлки 2,2 м.
Подробнее о процессе изготовления под спойлером
Дополнительная информация
Впервые о данной гирлянде узнал еще год назад у гайвера в видео, и сразу понял, что к следующему НГ нужно обязательно сделать себе. И вот закупившись в октябре всем необходимым, начал погружаться «в матрицу», шучу, вникать в прошивку. Знаний в программировании хоть у меня и не много, понять ± принцип работы получилось.
На этом этапе стразу понял, что гайвер сделал лишь разовую оптимизацию прошивки в своей самоделке без дальнейшей её поддержки и доработке (однако спасибо алексу за билиотеки GyverButton и GyverTM1637), а некий автор с ником dmitrybik ведет достаточно давно проект гирлянды на ардуинке, выпустил несколько версий прошивок и до сих пор помогает людям с их вопросами и просьбами.
Изначально как только первый раз прочитал страницу с проектом Дмитрия планировал делать управление через ик-пульт, но чем больше я погружался в изучение темы, тем меньше мне хотелось его использовать. Во-первых нужно иметь отдельный путь, т. к. пульт от основного телика где стоит ёлка постоянно будет конфликтовать. Во-вторых — кривая совместная работа библиотек IRremote и FastLED из-за их плохой совместимости. Поэтому решил делать на 4х тактовых кнопках, на одной кнопке как у алекса я делать не хотел, т.к. при таком обилии эффектов и функций это совсем неудобно. Далее меня ждало 2 часа увлекательного чтения всех комментариев к посту проекта. Там я наткнулся на комментарий пользователя avtopilot1
который реализовал работу дисплея TM1637, за что ему спасибо, а также спасибо Дмитрию, что добавил в проект. Я сразу понял — это то, что мне нужно, ведь эффектов много практически все они интересные, однако у каждого наверняка есть 5-7 эффектов самых любимых, как установить нужный если даже не знаешь какой номер сейчас запущен? Благодаря дисплею можно видеть номер текущего эффекта, и переключение на нужный другой, стало очень удобным.
Далее стояла задача как компактно, удобно и красиво разместить в корпусе все компоненты. Использовать какой либо готовый подручный корпус не решал ни одно из моих требований. Поэтому решил спроектировать корпус и в дальнейшем распечатать его на 3D принтере. Корпус получился из двух частей, в одной саморезами крепится дисплей, на другой ардуинка и кнопки. Цвет пластика красный (какой был), что не в тему, покрасил в зеленый, так смотрится по лучше. По итогу блок управления получился как и хотел компактный (49х63х18 мм габариты), удобно лежит в руке. Далее настроил под себя управление, на поиск оптимальной и удобной конфигурации ушел месяц, очень много вариантов перепробовал, конечный вариант зафиксировал в своей некой инструкции.
Далее пришла идея отразить инструкцию на самом корпусе, с помощью лазерной маркировки/гравировки, теперь мануал всегда под рукой, и если нужно поменять настройки гирлянды то не нужно искать бумажный вариант. Поместились кстати почти все команды.
Потом пришла еще одна идея по поводу размещения блока управления на самой гирлянде. Изначально собирался сделать по типовому варианту расположив её сразу после блока питания, но так неудобно переключать эффекты, ведь каждый раз нужно наклонятся под елку. Суть идеи в том, что я сделал от блока управления к началу гирлянды хвост длиной 1,4 м, 90 см я вплел по направлению гирлянды (от БП к вершине), оставшиеся 50 см просто отвел в сторону, сделал как отросток. После намотки гирлянды на елку этот отросток я вывел на удобную высоту (у меня получился 1 м от пола), и его конец прикрутил проволочкой к ветке ёлки. Стоя переключать стало удобно, не нужно наклонятся
По итогу, результат впечатлил, ёлка просто бомба, жена в восторге, друзья и родственники открывают рты))). Эффекты все без исключения интересные(хотя некоторые очень схожи), а некоторые из них просто «пушка».
Фотоотчёт:
Дополнительная информация
Спасибо Дмитрию за большую, продуктивную работу и поддержку проекта по сей день, а также всем кто подкидывал и реализовывал идеи, Вы многим повысили новогоднее настроения и доставили радость. Теперь когда видишь обычные гирлянды (с 8мью эффектами которые с 2000-ных не изменились даже), понимаешь насколько они скучные, примитивные и не радуют.
Всем хорошего новогоднего настроения и с наступающим 2022 годом!
Спасибо за теплые сова, отлично получилось.
В ближайшее время собираюсь сделать свою библиотеку кнопок, чтобы задействовать комбинации кнопок, то есть, например, удержание первой и 3 клика второй
Здравствуйте, добрый человек. А могли бы вы поделиться своими настройками (уж больно мне всё понравилось) или непосредственно скетчем, а Я бы уже подправил под себя. Всё как вы и говорили пультом муторно, а кнопкой не понятно что за эффект. У меня почему то в режиме DEMO_MODE 3, таких бомбических эффектов нет.
Времени на разбираться уже особо нет)
Дмитрий, добрый день. По поводу случайного перебора. Заметил следующую особенность. В режиме DEMO_MODE 4 (случайный перебор выбранных), логика перебора такова, что при включении следующего эффекта не учитываются эффекты которые были до этого, т.е. например списком я определил эффекты с 0 по 10, в режиме DEMO_MODE 4 часто бывает, что в течении получаса запускаются эффекты, 7,4,1,4,7,4 а эффекта 9 можно не дождаться вовсе, т.е. правильнее бы чтобы при переключении на следующий, функция случайного перебора выбирала из списка, номера которые не воспроизводились до этого. Как я думаю нужно ввести какой то счетчик (переменная/массив), который бы записывал номера воспроизведенных эффектов, и при запуске проверялся этот счетчик. По пробую поковыряться но пока не уверен, что достигну успеха
Доброго здоровья, счетчик можно сделать но… На нано нехватка памяти. а счетчик отъест прилично на каждый эффект по байту, я поразбираюсь, сделаю но с возможностью отключения.
Добрый день. эффекты на видео:
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 // Включит демо режим (Случайно) из выбранных
сработает если добавите еще 3 строки как описано тут
для Command_Demo_Random_Select
строки
#if Command_Demo_Random_Select1
case Command_Demo_Random_Select1:
#endif
эти строки надо вставить в файл getirl.h после строк
#if Command_Demo_Random_Select
case Command_Demo_Random_Select : ///////////////////////////////////////////////////////////////////////////// Включит демо режим из выбранных режимов (Случайно)
это где-то 160 строка
и тогда Ваши строки будут
#define Command_Demo_Random_Select 0xFF6996 // Info // Включит демо режим (Случайно) из выбранных
#define Command_Demo_Random_Select1 BTN2_1 // Info // Включит демо режим (Случайно) из выбранных
Всех с Наступающим Новым Годом!!! Хочу показать во что превратился у меня данный проект за два года его модернизации. Гирлянда находится на лоджии второго этажа. Дети рады, соседи в экстазе, после сегодняшней доработки скетча с помощью Дмитрия, жена будет счастлива. Собран на ардуино Нано.
Собрано из 9-ти гирлянд по 90 адресных диодов. Применял ленты ws2812b, 60 smd на метр. Выход Ардуины нагрузил на буферный повторитель с инверсией 74hc04 (аналог к561лн2) на вход первого буфера, выход первого буфера на 3 и входа последующих буферов параллельно, их выхода подключил на прямую, каждый с 3 мя параллельно включенными входами светодиодных лент. Еще раз огромное спасибо Дмитрию за его отзывчивость и желание помогать людям нести праздник в Новогодний дом.
На следующий год думаю перейти на проект Дмитрия с использованием ESP32, есть новые задумки.
#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 — демо режим с случайным перебором выбранных эффектов
Это настройки для окна. Ёлочку планирую украсить на следующий год на новом ESP32 контроллере. Уже есть кое какие задумки с использованием наработок с окна и конечно Вашего проекта.
Доброго времени суток, схем под рукой нет, и делал всё из головы, эти Новогодние хлопоты не позволяют быстренько нарисовать и опубликовать схему. Думаю 2 го числа выду на сутки на работу, выкраю время, накидаю схемку и выложу.
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.
Всех с Наступившим, Новым, 2022 Годом!!! Здоровья, счастья, удачи!!!
Спасибо тем кто повторил танный проект, для вас старался, чтобы ваши успехи в освоении электроники и микроконтроллеров были очередной ступенькой, чтобы вы смогли себе сказать, я смог…
Спасибо тем кто подержал меня финансово, значить будем продолжать развивать этот проект.
Впереди поддержка WiFi (модули закуплены, жду посылку.)
Здравствуйте. С Новым Годом. Дмитрий подскажите пожалуйста можно ли как то проверить саму ленту не подключая к Arduino?
У меня лента с 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, для этого есть параметр
#define DEV_NOISE16 100 // если Зависает на 22 и 37 режимах, то уменьшаем число
подробно описано тут
Включите лог, и в мониторе все видно будет
Здравствуйте, Дмитрий.Вопрос немного не в тему, а касательно.
Как можно плавно зажигать и потом также плавно тушить гирлянду(на ws2812b) при заранее предустановленной яркости примерно 20 процентов?
Хочу такую гирлянду поместить в звезду на верхушку, что бы она пульсировала.Скетч наверное простой, но я ещё не очень разбираюсь как это сделать.
Спасибо за ответ.Я так понимаю что это в последней, обновлённой, версии, а то в 4 плюс я этого не видел.
А если отдельным проектом, то где можно посмотреть пример скетча плавного зажигания и затухания ленты?
Ещё раз спасибо за отзывчивость.
Вы хороший человек!
.С вариантом 4 плюс уже второй Новый год гирлянда на ёлочке моргает.Захотел анимировать и верхушку, вот и возник вопрос.Тему не перечитывал.
Спасибо за интересные проекты. Очень, хорошо, что можно «отделить» часть диодов. С этой фичей я реализовал вариант советской «звезды» (на коммутаторных лампах). Вместо лам установил 5 диодов из гирлянды ws2811. Плюс написал к ней еще несколько эффектов и запустил их переключаться случайным образом. Еще раз сенкс.
делаю notamesh5 изменений столько, что надо новую тему делать.
Из стремления
прошивка гайвера на нано будет поддерживать 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 байт.
#define FastLED_ON 1 // Если равен 1 используется FastLED (даже если 0 все равно используется FastLED :)
#define LED_ON 0 // Количество светодиодов (0- светодиоды не используются, максимум 2 светодиода
#define IR_ON 0 // Если равен 1 используется пульт библиотеки IRremote
#define KEY_ADC_ON 0 // Если равен 1 используются кнопки подключенные к аналоговому входу
#define KEY_GYVER_ON 0 // Количество кнопок подключенных к библиотеке GyverButton (0- библиотека отключена, максимум 4 кнопки)
#define KEYS_MY 0 // Количество кнопок подключенных к моей библиотеке обработки кнопок (0- библиотека отключена, максимум 7 кнопок)
#define TM1637_ON 0 // Если равен 1 используются индикатор из библиотеки GyverTM1637
#define LOG_ON 0 // Включить лог 1 - включить лог
0 выключено
настройка вершины тут
Код
#define TOP_POSITION 2 // Позиция вершины елки (используется только в эффекте огня)
// 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 1 // Разрешать блестеть вершине 1 разрешено 0 запрещено
и независимо что прописываю 1 или 2, вершина определяется постоянно в конце гирлянды.
#define TOP_POSITION 1 // Позиция вершины елки (используется только в эффекте огня)
// 0 - не определена 1 - Вершина в начале гирлянды 2 - Вершина в конце гирлянды
#define TOP_LENGTH 5 // Выделять вершину цветом 0 - не выделять, больше 0 сколько светодиодов выделять в вершине
#define TOP_COLOR CRGB::Red // Цвет выделения вершины
#define TOP_EFFECT 0 // 0 - Просто залить цветом, 1 - случайное переливание, 2- переливание сверху вниз 3- переливание снизу вверх
#define TOP_DELAY 150 // Задержка эффекта в милисекундах
#define TOP_FADING 5 // Затухание
Добрый день! Arduino: 1.8.16 (Windows 8.1) Скетч: notamesh4.2_(Biblio) При включении ИК пульта при компиляции:
#define IR_ON 1 // Если равен 1 используется пульт библиотеки IRremote
exit status 1 ошибка компиляции для платы arduino nano.
Если #define IR_ON 0 // Если равен 1 используется пульт библиотеки IRremote
все компилируется. Может кто-то сталкивался с этим явлением? Подскажите где у меня ошибка. Спасибо.
Проект в этой теме совсем другой он одномерный (одна полоса но очень длинная) для гирлянды намотанной на елку
У вас он двухмерный (можно сказать прямоугольная форма намотки гирлянды) в этом случае можно формировать изображения и выводить текст
Я знаю только 2 проекта это
1) матрица Гайвера (на ее основе сделаны много проектов, лампа Гайвера, окно Гайвера, Портфель Гайвера и др) Очень много людей, которые добавляют в этот проект свои эффекты (в лампе гайвера я насчитал больше 100) то что вы показали это и есть матрица Гайвера
2) проект на основе jinx
пример на моем балконе
возможностей намного больше, можно накладывать эффекты друг на друга (до 8 эффектов одновременно разными способами) Эффектов много готовых, есть язык макросов для создания нового эффекта, хоть игру в тетрис, можно вставлять анимированные гивки и просто любой фильм как один из эффектов. Минус только в том, что эффекты формируются на компьютере и после переносятся на микро контроллер на карте памяти
Появятся у меня что то подобное? да, на балконе ведь работает, но когда конкретно не скажу, нет времени
Если это один проект, то можно скопировать, но надо еще их прописать, чтобы программа их увидела.
Если мне память не изменяет Каждый новый эффект прописывается строкой в switch case и плюс увеличивается константа количества эффектов. но это не точно (проект все же не мой)
Доброго времени суток! Я скинул на ардуино нано скетч Andrew Tuline переделка и дополнение октябрь 2021 Бикин Дмитрий notamesh4Gyver, но хочу ещё сделать подсветку на компьютер без дополнительных кнопок, просто платку запитаю с материнки, но мне бы уменьшить яркость, подскажите пж, как это сделать? Заранее благодарен.
Здраствуйте. помогите пожалуйста включить управление одной кнопкой указать пин подключения и назначить действия для 1.2.3.4.5 кликов кнопкой. На данный момент мне удалось загрузить прошивку notamesh4Gyver и лента мигает. даже удалось настроить выделение последних ледов другим цветом. но дальше мне не удается продвинуться.
Доброго здоровья.
Итак по порядку. Скачиваем последний скетч там 2 ссылки, отличаются только настройками, Библио лучше, там информация полнее, поэтому я расскажу на ее основе, скетч гайвера настраивается аналогично.
Все настройки находятся в файле notamesh4Biblio.ino для Библио и в файле notamesh4Gyver.inoдля версии Gyver
идем в раздел Параметры кнопок подключенных к библиотеке GyverButton
Фрагмент кода
//""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
// Параметры кнопок подключенных к библиотеке GyverButton
// Максимальное количество кнопок 4
//
#define BTN1_PIN 34 // Номер пина, куда подключена кнопка 1
#define BTN2_PIN 35 // Номер пина, куда подключена кнопка 2
#define BTN3_PIN 32 // Номер пина, куда подключена кнопка 3
#define BTN4_PIN 33 // Номер пина, куда подключена кнопка 4
#define BTN1_LOW 1 // Кнопка 1 0- привязка к питанию 1- привязка к земле
#define BTN2_LOW 1 // Кнопка 2 0- привязка к питанию 1- привязка к земле
#define BTN3_LOW 1 // Кнопка 3 0- привязка к питанию 1- привязка к земле
#define BTN4_LOW 1 // Кнопка 4 0- привязка к питанию 1- привязка к земле
// Команды связанные с действиями кнопки, менять не надо, просто используем
#define BTN1_1 1000 // кнопка 1 клик
#define BTN1_2 1001 // кнопка 1 два клика
#define BTN1_3 1002 // кнопка 1 три клика
#define BTN1_4 1003 // кнопка 1 четыре клика
#define BTN1_PRESS 1005 // кнопка 1 удержание
#define BTN1_1_PRESS 1006 // кнопка 1 один клик + удержание
#define BTN1_2_PRESS 1007 // кнопка 1 два клика + удержание
#define BTN1_3_PRESS 1008 // кнопка 1 три клика + удержание
#define BTN2_1 1100 // кнопка 2 клик
#define BTN2_2 1101 // кнопка 2 два клика
#define BTN2_3 1102 // кнопка 2 три клика
#define BTN2_4 1103 // кнопка 2 четыре клика
#define BTN2_PRESS 1105 // кнопка 2 удержание
#define BTN2_1_PRESS 1106 // кнопка 2 один клик + удержание
#define BTN2_2_PRESS 1107 // кнопка 2 два клика + удержание
#define BTN2_3_PRESS 1108 // кнопка 2 три клика + удержание
#define BTN3_1 1200 // кнопка 3 клик
#define BTN3_2 1201 // кнопка 3 два клика
#define BTN3_3 1202 // кнопка 3 три клика
#define BTN3_4 1203 // кнопка 3 четыре клика
#define BTN3_PRESS 1205 // кнопка 3 удержание
#define BTN3_1_PRESS 1206 // кнопка 3 один клик + удержание
#define BTN3_2_PRESS 1207 // кнопка 3 два клика + удержание
#define BTN3_3_PRESS 1208 // кнопка 3 три клика + удержание
#define BTN4_1 1300 // кнопка 4 клик
#define BTN4_2 1301 // кнопка 4 два клика
#define BTN4_3 1302 // кнопка 4 три клика
#define BTN4_4 1303 // кнопка 4 четыре клика
#define BTN4_PRESS 1305 // кнопка 4 удержание
#define BTN4_1_PRESS 1306 // кнопка 4 один клик + удержание
#define BTN4_2_PRESS 1307 // кнопка 4 два клика + удержание
#define BTN4_3_PRESS 1308 // кнопка 4 три клика + удержание
Теперь выставляем соответствие действий нажатиям кнопкам, идем в раздел Все команды которые обрабатывает скетч
Фрагмент кода (не полный)
/// Все команды которые обрабатывает скетч
//формат такой
// #define Command_XXXX YYYYY
// где Command_XXXX - код команды, это лучше не менять
// YYYYY - код обработчика ( это либо число получаемое кри нажатии кнопки пульта
// либо Значение соответствующее нажатой кнопке аналоговой клавиатуры, это мы определили выше как значения KEY_0, KEY_1, KEY_2 и подобные
// либо Значение соответствующее нажатой кнопке библиотеке GyverButton, это мы определили выше как значения BTN_1, BTN_2, BTN_3, BTN_4 и BTN_PRESS
// либо Значение 0 если команда не используется )
// Если команда не используется то тогда надо YYYYY заменить на 0 или закомментировать строку
// значения кнопок пульта получаются следующим способом:
// загружаем пример из библиотеки IRremote с названием IRrecvDemo и смотрим в мониторе коды клавиш
// число должно иметь вид 0x00ff4ab5 (шестнадцатеричное число)
// Пример: #define Command_Brightness_plus 0xff4ab5 Установить обработку команды "Увеличить максимальную яркость" на кнопку с кодом 0xff4ab5 с пульта
// #define Command_Brightness_plus KEY_0 Установить обработку команды "Увеличить максимальную яркость" на 0 кнопку подключенную к аналоговому входу
// #define Command_Brightness_plus BTN_1 Установить обработку команды "Увеличить максимальную яркость" на нажатие кнопки подключенной к библиотеке GyverButton
// #define Command_Brightness_minus BTN_2 Установить обработку команды "Уменьшить максимальную яркость" на двойное нажатие кнопки подключенной к библиотеке GyverButton
// кнопка на моем пульте
#define Command_Brightness_plus 0xff4ab5 // N/P // Увеличить максимальную яркость и остановится если достигли максимума
#define Command_Brightness_plus_R BTN1_PRESS // Увеличить максимальную яркость, при достижения максимума начать с минимума
#define Command_Brightness_minus 0xff6a95 // Repeat // Уменьшить максимальную яркость и остановится если достигли максимума
#define Command_Brightness_minus_R 0 // Уменьшить максимальную яркость, при достижения минимума начать с максимума
#define Command_Reset 0xffca35 // Power // Сброс всех настроек и перезагрузка
#define Command_Stop 0xFF52AD // Stop // Останов Черный цвет
#define Command_Start 0xFF42BD // Play // Продолжение работы
#define Command_Start_Stop BTN1_1 // Старт/стоп
#define Command_Demo_On 0 // Востановим демо режим (какой был до этого)
#define Command_Demo_Sequence 0xfffa05 // Open // Включит демо режим (перебор)
#define Command_Demo_Random 0xffda25 // Prog // Включит демо режим (Случайно)
#define Command_Demo_Sequence_Select 0xff5aa5 // A-B // Включит демо режим (перебор)
#define Command_Demo_Random_Select 0xff7a85 // RAN // Включит демо режим (Случайно)
. . .
Выбираем в этом списке нужную команду например перейти на следующий эффект при двойном клике, при этом работа демо режима продолжается (через некоторое время будет переход на следующий режим) этому соответствует строка
#define Command_Next_mode_Demo 0 // Следующий эффект. Оставляет демонстрационный режим
Для выставления команды пишем вместо 0 слово BTN1_2 должно получится так:
#define Command_Next_mode_Demo BTN1_2 // Следующий эффект. Оставляет демонстрационный режим
После этого обязательно проверяем отсутствие команд, где встречается также BTN1_2, кроме той что мы написали, если такие строки есть, то в них надо BTN1_2 заменить на 0
Или вообще удалить как сделано в скетче Gyver, Там все команды удалены, оставлены только работающие
#define Command_Brightness_plus_R BTN1_PRESS // Увеличить максимальную яркость, при достижения максимума начать с минимума
#define Command_Start_Stop BTN1_1 // Старт/стоп
#define Command_Glitter BTN1_4 // Включить/выключить сверкание
#define Command_Previous_my_mode BTN1_3 // Предыдущий эффект. Отключает демонстрационный режим
#define Command_Next_my_mode BTN1_2 // Следующий эффект. Отключает демонстрационный режим
Спасибо огромное, кажется я что-то начинаю понимать) а почему при указании пина кнопки D3 как у гайвера у меня пишет ошибку? Я пытаюсь указать пин куда подключены аналоговые кнопки а он не компилируется( или нужно где-то в другом месте указать куда кнопка подключена?
Не понял про D3 (Не нашел у него в скетче версии 1,1)
Настройка аналоговых кнопок
Итак по порядку. Скачиваем последний скетч там 2 ссылки, отличаются только настройками, Библио лучше, там информация полнее, поэтому я расскажу на ее основе, скетч гайвера настраивается аналогично.
Все настройки находятся в файле notamesh4Biblio.ino для Библио и в файле notamesh4Gyver.inoдля версии Gyver
первое включаем кнопки
#define KEY_ADC_ON 1 // Если равен 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 PIN_KEY A3 // Номер пина, куда подключены кнопки
четвертое, включаем лог, компилируем, загружаем прошивку, включаем монитор порта. нажимаем кнопки поочереди и смотрим значения в логе и заполняем код
Фрагмент кода
#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, то кнопка не используется
То есть, если нажали первую кнопку у вас было число 100, то в данной строке ставим значение 100
#define KEY_1 100 // Значение соответствующее нажатой 1 кнопке
при нажатии второй кнопки было число 200, то ставим число 200
#define KEY_2 200 // Значение соответствующее нажатой 2 кнопке
если у вас меньше 7 кнопок, то в неиспользуемых кнопках ставим значение 1
запоминаем имена KEY_1, KEY_2, KEY_3,… имена тех кнопок, которые вы используете
пятое, Теперь выставляем соответствие действий нажатиям кнопкам, идем в раздел Все команды которые обрабатывает скетч и делаем по аналогии как описано для кнопок гайвера, только вместо BTN1_1, BTN1_2, BTN1_3, ставим KEY_1, KEY_2, KEY_3, ....
Спасибо огромное за максимально понятную инструкцию!!! Теперь точно все получится) единственное последний вопрос — в место пина А3 Я указываю D3 и мне выдает ошибку. Я хотел использовать D3 потому что он уже подтянут резистором и по идеи можно просто кнопку поставить между D3 и GND. Или лучше оставить пин А3 и сделать подтяжку как в схемах для кнопки через резистор?
Пин с названием начинающимся на D для аналоговых кнопок использовать нельзя. Эти входы не умеют мерять напряжение, надо выбирать из тех, которые начинаются на A
А вот этого не знал. У гайвера был пин D3 и обычная кнопка, я думал так же сделать но не смог настроить. Я сделаю по вашей инструкции и подключусь к А3 одной кнопкой. Скажите пожалуйста нужен ли резистор для подтяжки + если кнопка будет замыкать GND?
Ой извините я опечатался- PCB. Сама плата ардуино. Я вчера смотрел официальную распиновка в даташите но не сработало. Скажите пожалуйста если подключать на пин А3 как в прошивке нужно добавлять резистор для подтяжки +? Если кнопка будет замыкать GND
Ух, вы запутались и меня запутали.
Есть просто кнопка она включается в любой пин хоть D хоть в A, для этого используется библиотека гайвера GyverButton.
Подтягивающий резистор ей идеально нужен, но не обязателен (внутри микроконтроллера он есть и его можно включить) вот схема
Но тут получается одна кнопка один вывод микроконтроллера
Когда выводов мало, а кнопок подключить хочется много, то можно подключить аналоговые кнопки, но обязательно во вход A Кнопки подключаются через резисторы, схем подключения много, например
Извините пожалуйста что вас запутал, я даже сам запутался)в моем проекте только одна кнопка будет вот пришлось на одну команды думать) последний вопрос- а вершину можно только одним цветом настроить? не получается найти где включить смену палитры
Главное что разобрались.
Да вершина одним цветом, это все таки гирлянда на елку, вершина обычно звезда или снежинка (красная или синяя) Если сделать перемигивание, то мне кажется будет выглядеть непонятно.
Но я подумаю, может сделаю другие режимы вершины.
Смена палитры это про вершину?, а так на основной гирлянде, есть смена палитры
Понял спасибо буду очень ждать возможность смены палитры на вершине) у меня это не ёлка а другая штука) скажите пожалуйста как я могу вас финансово отблагодарить?
#define TOP_POSITION 0 // Позиция вершины елки (используется только в эффекте огня)
// 0 - не определена 1 - Вершина в начале гирлянды 2 - Вершина в конце гирлянды
#define TOP_LENGTH 0 // Выделять вершину цветом 0 - не выделять, больше 0 сколько светодиодов выделять в вершине
#define TOP_SET_COLOR 0 // Установка цвета выделения вершины 0 - цвет брать из TOP_COLOR, 1 - Цвет брать из палитры заданной в TOP_PALETTE, 2 - Цвет брать из общей палитры гирлянды
#define TOP_COLOR CRGB::Red // Цвет выделения вершины
#define TOP_PALETTE 1000 // Номер палитры с которой будем брать цвет для вершины Номер берется или из лога или из файла gradient_palettes.h вконце есть массив const TProgmemRGBGradientPalettePtr gGradientPalettes[] номер по счету, первый элемент начинается с 0
#define TOP_EFFECT 1 // 0 - Просто залить цветом, 1 - случайное переливание, 2- переливание сверху вниз 3- переливание снизу вверх
#define TOP_DELAY 150 // Задержка эффекта в милисекундах
#define TOP_FADING 5 // Затухание
#define TOP_GLITER_ON 0 // Разрешать блестеть вершине
извините я чтото туплю( скачал по ссылке открыл а там тоже самое #define TOP_POSITION 2 // Позиция вершины елки (используется только в эффекте огня)
// 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 // Разрешать блестеть вершине
добрый вечер! все шикарно работает- бежит сверху в низ и меняет цвета не зависимо от основной ленты))) СПАСИБО Вам огромное)))если кто будет так же собирать то чуть-чуть горит красным но если уменьшить время задержки эффекта в мили секундах то становится не заметно)))
все получилось спасибо! кнопку подключил к А3 привязка к питанию резистором 10к а кнопка замыкает GND. есть список режимов или их только через логи смотреть? к примеру я выберу номера режимов и укажу в списке режимов, а как например выбрать зеленый цвет по мимо команды установить зеленый цвет? чтобы например 4 режим это был просто зеленый?
Список режимов описать не возможно, везде переливание. поэтому есть 3 способа настроить
1. Включаем лог и сами переключаем и записываем на бумажку то что нравится
2. посмотреть на видео
3. чисто технически список эффектов находится в файле _main.ino где то на 680 строке
Фрагмент кода
switch (mode) { // First time through a new mode, so let's initialize the variables for a given display.
case 0: if(mc) {thisdelay=10; palchg=0; } blendwave(); break;
case 1: if(mc) {thisdelay=10; palchg=0; } rainbow_beat(); break;
case 2: if(mc) {thisdelay=10; allfreq=2; thisspeed=1; thatspeed=2; thishue=0; thathue=128; thisdir=1; thisrot=1; thatrot=1; thiscutoff=128; thatcutoff=192;} two_sin(); break;
case 3: if(mc) {thisdelay=20; allfreq=4; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 4: if(mc) {thisdelay=10; } noise8_pal(); break;
case 5: if(mc) {thisdelay=10; allfreq=4; thisspeed=-1; thatspeed=0; thishue=64; thathue=192; thisdir=1; thisrot=0; thatrot=0; thiscutoff=64; thatcutoff=192;} two_sin(); break;
case 6: if(mc) {thisdelay=20; allfreq=10; bgclr=64; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 7: if(mc) {thisdelay=10; numdots=2; thisfade=16; thisbeat=8; thisdiff=64;} juggle_pal(); break;
case 8: if(mc) {thisdelay=40; thisindex=128; thisdir=1; thisrot=0; bgclr=200; bgbri=6;} matrix_pal(); break;
case 9: if(mc) {thisdelay=10; allfreq=6; thisspeed=2; thatspeed=3; thishue=96; thathue=224; thisdir=1; thisrot=0; thatrot=0; thiscutoff=64; thatcutoff=64;} two_sin(); break;
case 10: if(mc) {thisdelay=20; allfreq=16; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 11: if(mc) {thisdelay=50; mul1=5; mul2=8; mul3=7;} three_sin_pal(); break;
case 12: if(mc) {thisdelay=10; } serendipitous_pal(); break;
case 13: if(mc) {thisdelay=20; allfreq=8; bgclr=0; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 14: if(mc) {thisdelay=10; allfreq=20; thisspeed=2; thatspeed=-1; thishue=24; thathue=180; thisdir=1; thisrot=0; thatrot=1; thiscutoff=64; thatcutoff=128;} two_sin(); break;
case 15: if(mc) {thisdelay=50; thisindex=64; thisdir=-1; thisrot=1; bgclr=100; bgbri=10;} matrix_pal(); break;
case 16: if(mc) {thisdelay=10; } noise8_pal(); break; // By: Andrew Tuline
case 17: if(mc) {thisdelay=10; } plasma(11,23,4,18); break;
case 18: if(mc) {thisdelay=20; allfreq=10; thisspeed=1; thatspeed=-2; thishue=48; thathue=160; thisdir=-1; thisrot=1; thatrot=-1; thiscutoff=128; thatcutoff=192;} two_sin(); break;
case 19: if(mc) {thisdelay=50; palchg=0; thisdir=1; thisrot=1; thisdiff=1;} rainbow_march(); break;
case 20: if(mc) {thisdelay=10; mul1=6; mul2=9; mul3=11;} three_sin_pal(); break;
case 21: if(mc) {thisdelay=10; palchg=0; thisdir=1; thisrot=2; thisdiff=10;} rainbow_march(); break;
case 22: if(mc) {thisdelay=20; palchg=0; hxyinc = random16(1,15); octaves=random16(1,3); hue_octaves=random16(1,5); hue_scale=random16(10, 50); x=random16(); xscale=random16(); hxy= random16(); hue_time=random16(); hue_speed=random16(1,3); x_speed=random16(1,30);} noise16_pal(); break;
case 23: if(mc) {thisdelay=20; allfreq=6; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 24: if(mc) {thisdelay=10; } plasma(23,15,6,7); break;
case 25: if(mc) {thisdelay=20; thisinc=1; thisfade=2; thisdiff=32;} confetti_pal(); break;
case 26: if(mc) {thisdelay=10; thisspeed=2; thatspeed=3; thishue=96; thathue=224; thisdir=1; thisrot=1; thatrot=2; thiscutoff=128; thatcutoff=64;} two_sin(); break;
case 27: if(mc) {thisdelay=30; thisindex=192; thisdir=-1; thisrot=0; bgclr=50; bgbri=0;} matrix_pal(); break;
case 28: if(mc) {thisdelay=20; allfreq=20; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 29: if(mc) {thisdelay=20; thisinc=2; thisfade=8; thisdiff=64;} confetti_pal(); break;
case 30: if(mc) {thisdelay=10; } plasma(8,7,9,13); break;
case 31: if(mc) {thisdelay=10; numdots=4; thisfade=32; thisbeat=12; thisdiff=20;} juggle_pal(); break;
case 32: if(mc) {thisdelay=30; allfreq=4; bgclr=64; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=128; thisrot=1; thisspeed=8; wavebright=255;} one_sin_pal(); break;
case 33: if(mc) {thisdelay=50; mul1=3; mul2=4; mul3=5;} three_sin_pal(); break;
case 34: if(mc) {thisdelay=10; palchg=0; thisdir=-1; thisrot=1; thisdiff=5;} rainbow_march(); break;
case 35: if(mc) {thisdelay=10; } plasma(11,17,20,23); break;
case 36: if(mc) {thisdelay=20; thisinc=1; thisfade=1;} confetti_pal(); break;
case 37: if(mc) {thisdelay=20; palchg=0; octaves=1; hue_octaves=2; hxy=6000; x=5000; xscale=3000; hue_scale=50; hue_speed=15; x_speed=100;} noise16_pal(); break;
case 38: if(mc) {thisdelay=10; } noise8_pal(); break;
case 39: if(mc) {thisdelay=10; palchg=0;} fire(); break;
case 40: if(mc) {thisdelay=10; palchg=0;} candles(); break;
case 41: if(mc) {thisdelay=10; } colorwaves(); break;
// case 42 .. 121: if(mc) {thisdelay=10; } running_fire(9,3,1); break;
Я не понимаю зачем ставить однотонное закрашивание в зеленый цвет в автоматическом режиме.? то есть, шло переливание цветов, потом закрасилось все в зеленый цвет, и елка стоит две минуты зеленая, потом идет переход на следующий эффект.
Может для вашего проекта надо использовать дистанционный пульт и с него менять цвета?
Или перейти на ESP32, там все управление с телефона по bluetooth
Это будет скей доска с подсветкой и красивыми режимами, но в какой-то момент я захочу просто зелёную подсветку, потом другой цвет ну и в темноте можно включить белый как фары будет это по контуру доски, а то что в прошивке «вершина» это будет оптоволокно выходящие в верхушке доски ( прям под ногами) и там нужен эффект бегущий в перед(это я включил в вашей прошифке) а вот чтобы палитра менялась раз в цикл или через какое-то время не включить к сожалению
Ну тогда с минимальными переделками скажу как сделать монотонный цвет
Выбираешь режимы которые тебе не нравятся и вместо них вставляешь строку ledMode = 255; solid = CRGB::Green;
Например 39 режим тебе не нравится тогда вместо
case 39: if(mc) {thisdelay=10; palchg=0;} fire(); break;
Добрый день! Такой вопрос, ветки просмотрел и ответ на него не нашел. Так вот, перебрал все прошивки и на всех одна и та же проблема. Гирлянда представляет из себя не единое целое, а будто две разных гирлянды, соединенных в параллель. То есть перелив заканчиваетя не в конце гирлянды, а в середине (там где к первому отрезку присоединен другой). Соответственно и все эффекты одновременно начинаются с середины гирлянды и с ее начала, извините за тавталогию. В чем может быть проблема?
Привет! Всё отлично, не устраивает скорость эффектов. Напрягает глаза.
Как можно программно уменьшить скорость? Более плавнее.
Уделите пожалуйста пару минут на доработку скетча.
С уважением Евгений Боллингер FRG (Germany)
Приветствую.
За скорость эффектов отвечает переменная thisdelay.
В файле _main.ino есть где-то в районе 670 строки есть код
Здесь код
switch (mode) { // First time through a new mode, so let's initialize the variables for a given display.
case 0: if(mc) {thisdelay=10; palchg=0; } blendwave(); break;
case 1: if(mc) {thisdelay=10; palchg=0; } rainbow_beat(); break;
case 2: if(mc) {thisdelay=10; allfreq=2; thisspeed=1; thatspeed=2; thishue=0; thathue=128; thisdir=1; thisrot=1; thatrot=1; thiscutoff=128; thatcutoff=192;} two_sin(); break;
case 3: if(mc) {thisdelay=20; allfreq=4; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 4: if(mc) {thisdelay=10; } noise8_pal(); break;
case 5: if(mc) {thisdelay=10; allfreq=4; thisspeed=-1; thatspeed=0; thishue=64; thathue=192; thisdir=1; thisrot=0; thatrot=0; thiscutoff=64; thatcutoff=192;} two_sin(); break;
case 6: if(mc) {thisdelay=20; allfreq=10; bgclr=64; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 7: if(mc) {thisdelay=10; numdots=2; thisfade=16; thisbeat=8; thisdiff=64;} juggle_pal(); break;
case 8: if(mc) {thisdelay=40; thisindex=128; thisdir=-1; thisrot=0; bgclr=200; bgbri=6;} matrix_pal(); break;
case 9: if(mc) {thisdelay=10; allfreq=6; thisspeed=2; thatspeed=3; thishue=96; thathue=224; thisdir=1; thisrot=0; thatrot=0; thiscutoff=64; thatcutoff=64;} two_sin(); break;
case 10: if(mc) {thisdelay=20; allfreq=16; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 11: if(mc) {thisdelay=50; mul1=5; mul2=8; mul3=7;} three_sin_pal(); break;
case 12: if(mc) {thisdelay=10; } serendipitous_pal(); break;
case 13: if(mc) {thisdelay=20; allfreq=8; bgclr=0; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 14: if(mc) {thisdelay=10; allfreq=20; thisspeed=2; thatspeed=-1; thishue=24; thathue=180; thisdir=1; thisrot=0; thatrot=1; thiscutoff=64; thatcutoff=128;} two_sin(); break;
case 15: if(mc) {thisdelay=50; thisindex=64; thisdir=-1; thisrot=1; bgclr=100; bgbri=10;} matrix_pal(); break;
case 16: if(mc) {thisdelay=10; } noise8_pal(); break; // By: Andrew Tuline
case 17: if(mc) {thisdelay=10; } plasma(11,23,4,18); break;
case 18: if(mc) {thisdelay=20; allfreq=10; thisspeed=1; thatspeed=-2; thishue=48; thathue=160; thisdir=-1; thisrot=1; thatrot=-1; thiscutoff=128; thatcutoff=192;} two_sin(); break;
case 19: if(mc) {thisdelay=50; palchg=0; thisdir=1; thisrot=1; thisdiff=1;} rainbow_march(); break;
case 20: if(mc) {thisdelay=10; mul1=6; mul2=9; mul3=11;} three_sin_pal(); break;
case 21: if(mc) {thisdelay=10; palchg=0; thisdir=1; thisrot=2; thisdiff=10;} rainbow_march(); break;
case 22: if(mc) {thisdelay=20; palchg=0; hxyinc = random16(1,15); octaves=random16(1,3); hue_octaves=random16(1,5); hue_scale=random16(10, 50); x=random16(); xscale=random16(); hxy= random16(); hue_time=random16(); hue_speed=random16(1,3); x_speed=random16(1,30);} noise16_pal(); break;
case 23: if(mc) {thisdelay=20; allfreq=6; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 24: if(mc) {thisdelay=10; } plasma(23,15,6,7); break;
case 25: if(mc) {thisdelay=20; thisinc=1; thisfade=2; thisdiff=32;} confetti_pal(); break;
case 26: if(mc) {thisdelay=10; thisspeed=2; thatspeed=3; thishue=96; thathue=224; thisdir=1; thisrot=1; thatrot=2; thiscutoff=128; thatcutoff=64;} two_sin(); break;
case 27: if(mc) {thisdelay=30; thisindex=192; thisdir=-1; thisrot=0; bgclr=50; bgbri=0;} matrix_pal(); break;
case 28: if(mc) {thisdelay=20; allfreq=20; bgclr=0; bgbri=0; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=224; thisrot=0; thisspeed=4; wavebright=255;} one_sin_pal(); break;
case 29: if(mc) {thisdelay=20; thisinc=2; thisfade=8; thisdiff=64;} confetti_pal(); break;
case 30: if(mc) {thisdelay=10; } plasma(8,7,9,13); break;
case 31: if(mc) {thisdelay=10; numdots=4; thisfade=32; thisbeat=12; thisdiff=20;} juggle_pal(); break;
case 32: if(mc) {thisdelay=30; allfreq=4; bgclr=64; bgbri=4; startindex=64; thisinc=2; thiscutoff=224; thisphase=0; thiscutoff=128; thisrot=1; thisspeed=8; wavebright=255;} one_sin_pal(); break;
case 33: if(mc) {thisdelay=50; mul1=3; mul2=4; mul3=5;} three_sin_pal(); break;
case 34: if(mc) {thisdelay=10; palchg=0; thisdir=-1; thisrot=1; thisdiff=5;} rainbow_march(); break;
case 35: if(mc) {thisdelay=10; } plasma(11,17,20,23); break;
case 36: if(mc) {thisdelay=20; thisinc=1; thisfade=1;} confetti_pal(); break;
case 37: if(mc) {thisdelay=20; palchg=0; octaves=1; hue_octaves=2; hxy=6000; x=5000; xscale=3000; hue_scale=50; hue_speed=15; x_speed=100;} noise16_pal(); break;
case 38: if(mc) {thisdelay=10; } noise8_pal(); break;
case 39: if(mc) {thisdelay=10; palchg=0;} fire(); break;
case 40: if(mc) {thisdelay=10; palchg=0;} candles(); break;
case 41: if(mc) {thisdelay=10; } colorwaves(); break;
,,,,
каждая строка это эффект, в каждой строке есть задержка {thisdelay=10; } для уменьшения скорости значение надо увеличивать например {thisdelay=20; } уменьшит скорость в 2 раза
С наступающим Новым Годом!!!, Дед Мороз Бикин Дмитрий, СССР (Советский Союз) )))
зачем вы ардуину то мучаете
пульты какието…
esp32s2 mini
дешевле в разы
быстрее в разы
памяти овер много (макс под эффекты 1.5 процента ушло )
управляется по всякому с телефона(нафик пульт)
да хоть по инету
и самое важное гирлянда летает просто(приходится задержку делать)
адресная лента на 256 диодов…
на окне одна другая на елке
имеют свои имена во внутренней сети дома
работает в среде ардуино
тоесть скетч лего компилится от ардуинки
да что компилится это и так понятно
просто народ мучается с этой атмелкой древней
пора переходить на более быстрые контроллеры со встроенной вафлей
Я к примеру на Lolin S2 Mini собирал
и на елку и на окно гирлянду
сам приложуху на андроид через сайт сборщик написал
обе гирлянды интегрированы в домашнюю сеть
сенсор из коробки wifi из коробки rtc тоже
ну и зачем атмелка?
тем более чем больше светодиодов тем больше тормоза
да и памяти поболее
часть эффектов стырено у гоувера часть с других языков стянуто
и все равно пол памяти пусто…
Вы предлагаете удалить эту тему, потому что «народ мучается с этой атмелкой древней»
Кому надо могут использовать ESP8266, она еще дешевле вашей или ESP32, как у вас
Прошивки все есть на одно сообщение выше, я выкладывал,
То что Вы сделали, хорошо, я вас поздравляю, Когда чтото сделано своими руками оно всегда приятно
dmitrybik, большое спасибо за проект, за потраченное время и за то что подарили этот труд народу! Делал несколько вариантов начиная с гирлянды Гайвера. В этом году решил сделать универсальный вариант с возможностью модернизации, легким доступом к перепрошивке и самое главное с двумя микроконтроллерами ) Ардуино использует Ваш Notamesh 4.2 а ESP32 прошито Wled.
К сожалению максимально далек от программирования (
Есть вопрос по палитрам. Выбрал нужные эффекты, они крутятся по кругу, но смена палитр не особо нравиться, некоторые бледноваты и скучноваты. Можно как то исключить часть палитр?
Это палитра как Российский флаг 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 будет плавный переход с синего на красный
Всем привет. Шикарная реализация, но не работает пульт. Вроде все прописал, но реакции на кнопки нет. Библиотека Irremote выдает пульт NEC и код кнопки вида «0xFF30CF» Но что-то не работает. Пин приемника указан верно. Может версию библиотеки надо конкретную поставить?
Initial Random: 4090
DEMO MODE 1
---SETUP COMPLETE---
Mode: 0
4172
Change palette off
End SetMode
The function decode(&results)) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData..
Command: 0xFF728D
Solid_Violet
Command: 0xFF728D
Solid_Violet
Command: 0xFF609F
Command: 0xFF609F
Command: 0xFF32CD
Command: 0xFF32CD
Отлично
Теперь для скетча notamesh4.3_(Bluetooth) делаем следующее
Открываем файл notamesh4.3.ino в конце есть список команд вида
Пример кода
/// Все команды которые обрабатывает скетч
//формат такой
// #define Command_XXXX YYYYY
// где Command_XXXX - код команды, это лучше не менять
// YYYYY - код обработчика ( это либо число получаемое кри нажатии кнопки пульта
// либо Значение соответствующее нажатой кнопке аналоговой клавиатуры, это мы определили выше как значения KEY_0, KEY_1, KEY_2 и подобные
// либо Значение соответствующее нажатой кнопке библиотеке GyverButton, это мы определили выше как значения BTN_1, BTN_2, BTN_3, BTN_4 и BTN_PRESS
// либо Значение 0 если команда не используется )
// Если команда не используется то тогда надо YYYYY заменить на 0 или закомментировать строку
// значения кнопок пульта получаются следующим способом:
// загружаем пример из библиотеки IRremote с названием IRrecvDemo и смотрим в мониторе коды клавиш
// число должно иметь вид 0x00ff4ab5 (шестнадцатеричное число)
// Пример: #define Command_Brightness_plus 0xff4ab5 Установить обработку команды "Увеличить максимальную яркость" на кнопку с кодом 0xff4ab5 с пульта
// #define Command_Brightness_plus KEY_0 Установить обработку команды "Увеличить максимальную яркость" на 0 кнопку подключенную к аналоговому входу
// #define Command_Brightness_plus BTN_1 Установить обработку команды "Увеличить максимальную яркость" на нажатие кнопки подключенной к библиотеке GyverButton
// #define Command_Brightness_minus BTN_2 Установить обработку команды "Уменьшить максимальную яркость" на двойное нажатие кнопки подключенной к библиотеке GyverButton
// кнопка на моем пульте
#define Command_Brightness_plus BTN1_PRESS //Кн1 нажатие // Увеличить максимальную яркость и остановится если достигли максимума
#define Command_Brightness_plus_R 0 // Увеличить максимальную яркость, при достижения максимума начать с минимума
#define Command_Brightness_minus BTN3_PRESS //Кн3 нажатие // Уменьшить максимальную яркость и остановится если достигли максимума
#define Command_Brightness_minus_R 0 // Уменьшить максимальную яркость, при достижения минимума начать с максимума
#define Command_Reset 0 // Сброс всех настроек и перезагрузка
#define Command_Stop 0 // Останов Черный цвет
#define Command_Start 0 // Продолжение работы
#define Command_Start_Stop BTN1_2 //Кн1 2 клик // Старт/стоп
#define Command_Demo_On 0 // Востановим демо режим (какой был до этого)
#define Command_Demo_Sequence 0 // Включит демо режим (перебор)
#define Command_Demo_Random 0 // Включит демо режим (Случайно)
#define Command_Demo_Sequence_Select 0 // Включит демо режим (перебор)
#define Command_Demo_Random_Select 0 // Включит демо режим (Случайно)
#define Command_Setup_Mode_On BTN3_3_PRESS //Кн3 3 клика + удержание // Перейти в настройку программы
#define Command_Length_Garland_plus 0 // Увеличить количество светодиодов в гирлянде и перейти в режим настройки
#define Command_Length_Garland_minus 0 // Уменьшить количество светодиодов в гирлянде и перейти в режим настройки
#define Command_Rotate 0 // Сменить направление движения эффектов
#define Command_Speed_minus 0 // Замедлить движение
#define Command_Speed_plus 0 // Ускорить движение
......
Каждая строка это команда, в конце каждой команды нужно поставить код или 0 (если 0 или она закомментирована, то команда не используется)
В вашем случае, те коды, которые получили в логе, необходимо добавить в нужную команду.
Например, если на пульте кнопка, которую вы ходите использовать как переход на следующий режим, в логе выдает код 0xFF609F, то мы этот код должны вставить в команду
#define Command_Next_mode_Demo 0xFF609F // Следующий эффект. Оставлякт демонстрационный режим
#define Command_Length_Garland_plus 0xEC13FF00 // L/R -osd // Увеличить количество светодиодов в гирлянде
#define Command_Length_Garland_minus 0xA659FF00 // Slow // Уменьшить количество светодиодов в гирлянде
#define Command_Rotate 0xB847FF00 // Setup // Сменить направление движения эффектов
#define Command_Speed_minus 0xAF50FF00 // vol — // Замедлить движение
#define Command_Speed_plus 0xF708FF00 // vol + // Ускорить движение
С этим и не работает. Меня больше смущает сообщение 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 используется, за это отвечает строка
#define IR_ON 1 // Если равен 1 используется пульт библиотеки IRremote версии 3, поставте 2 для работы с IRremote версии 2
Если ставим 1, будет использоваться версия IRremote 3, если ставим 2 то все будет по старому IRremote 2
С отключенным логом в нану влезает версия 3
Попробую вторую версию библиотеки тогда. У меня стояла последняя.
У меня получилось для теста включить лог с 3 версией библиотеки на нано, пришлось только количество диодов сократить до 10 и отключить GyverButton
Перепроверил, все работает. во всех режимах, у вас все таки команды не прописаны
Строка The function decode(&results)) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData. не мешает работе, она выводится только один раз, мое устройство работает
Каждый год говорю, что добавлен тут
Если вам надо именно к этой плате добавить модуль 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')
Дмитрий, добрый день.
Arduino nano, скетч notamesh4.2_(Biblio), спаял последовательно 2 гирлянды на SK6812 по 50 диодов в каждой…
Работает только первая. У Вас было решение для ESP32, а вот для Arduino nano, что надо сделать, что бы работали обе гирлянды?
Увидел Ваше сообщение от 18 декабря 2022, 17:26
Попробую сделать.
Я правильно понял, что сигнал на управление второй гирляндой надо брать с того же, пина D6, что и для первой?
Доброго здоровья
Нет, там как раз на оборот выделяются для каждого отрезка свой пин
Для первой гирлянды свой и для второй свой в скетче надо выбрать эти пины
Контроллер первую. часть светодиодов выводит на первый пин, оставшуюся часть выводит на второй пин
и физически вторая гирлянда будет продолжением первой
Я вам сюда скину скетч с доделками сюда но чуть погодя
понедельник вторник (я какраз буду в Барнауле в командировке и будет свободное время)
Похоже, что у меня разные ленты, хотя выглядат одинаково и обе заявлялись продавцами как sk6812. Куплены в разное время.
У одной шина управления звонится на всю длину, а у второй нет.
Причём вторая, в гирлянде Гайвера, работала только если установить количество светодиодов 100 шт., а в ленте их 50.
Вот теперь пытаюсь их заставить работать вместе.
Добрый день.
Решил перезалить скетч с Уно на Нано
вылезла ошибка:
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 {
^~~~~~
заменял библиотеки с этого поста, а также пробовал почти все версии которые есть у автора. ничего не помогает, и ардуину ИДЕ ставил и 2.0 и 1.18 и переустанавливал обеи — результат один и тот же.
год назад делал — работало. сейчас нет.
Подскажите где исправить
удалил обе IDE и все папки с библиотеками и вообще все папки «Arduino...» в разных местах как тут описано ссылка.
поставил с нуля IDE 2.0
в ошибках оставил для пульта NEC
когда было несколько библиотек IRemote в логе показывало, что их две и какая используется. сейчас одна, а результат тот же. ошибки по пульту, причём не по всему списку, а по некоторым
Друзья, здравствуйте! Объясните пожалуйста вот что. Сделал гирлянду из пяти готовых, по 50 светодиодов каждая, с али. Каждая была со своим контролёром. Объединил в одну, соответственно 250 диодов получилось. В гирлянде дублируются диоды через каждые 50 штук. То есть 1, 51, 101, 201, затем 2, 52, 102, 202 и т.д. Настраивал и на 50 и на 250, и много других промежуточных вариантов, все одно и тоже. Запускал пример blink — тоже мигают через каждые 50шт. Диоды прописаны как 2812b, но пробовал все варианты из библиотеки, какие-то светят, какие-то нет, но если светят, то каждый через 50шт. Третий год пытаюсь довести ее до ума, а то некоторые эффекты теряются из-за дубляжа. А в целом работает без проблем, я с семьей и гости, все в восторге! Мое почтение всем причастным, может кто сможет пролить свет))
Вам нужен вариант как здесь
Многие накалываются, добавлю в основной скетч.
Если вкратце, надо для каждого отрезка свой пин Скетч автоматически из объединить.
До воскресенья сделаю
Всех приветствую, подскажите не компилируется прошивка notamashe4plus выдает такую ошибку:
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')
всем привет я неделями бьюсь с разными версиями программы и прошивки, у меня не компилируется, на старых версиях Arduino до 1.8 ошибок море, и по разным причинам, вот нашёл 1.8.9 на которой меньше всего, я умоляю скиньте кто ни будь версию для виндовс для adrduino nano, гирлянда ws2812b без пульта, потому что я раньше всё делал по инструкции и всё прекрасно работало прошивалось, а теперь не могу разобраться, или помогите с этой проблемой пожалуйста
Второй год использую версию notamesh4.zip просто в демо-режиме. Из скетча выбросил всё что связано с кнопками и IR пультом (в Новый год мне лень лазить под ёлку или тыкать в пульт), так же и логирование. Скомпилировал и загрузил в ESP-01S с шильдом для RGB и могу сказать по поводу «Зависания» что одна и та же версия скетча с включенным мерцанием, свечами, но с разным количеством диодов. Так вот, прошивка с KOL_LED = 100 ни разу не зависла за два года в течение новогодних выходных, прошивка с KOL_LED = 50 сожгла две гирлянды (зависает примерно через полчаса после включения), прошивка с KOL_LED = 64 зависала пару тройку раз за два года. Блоки питания используются одинаковые 5v 2A, зависания не зависят от конкретного БП, так как менял их местами ради эксперимента, ESP тоже можно исключить т.к. брал 20шт оптом и перепрошивал скомпилированными бинарниками под разное количество диодов.
Использовал такой шильд и такую гирлянду
Обновлен в скетч notamesh4.2_(Biblio) ссылка на скачивание (не изменилась)
Обновлен в скетч notamesh4.2_(Gyver) ссылка на скачивание (не изменилась)
Причина: исправлена ошибка
Далее сопоставляем коды с действиями, эти строки надо вставить в раздел
Раздел
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
/// Все команды которые обрабатывает скетч
//формат такой
// #define Command_XXXX YYYYY
// где Command_XXXX - код команды, это лучше не менять
// YYYYY - код обработчика ( это либо число получаемое кри нажатии кнопки пульта
// либо Значение соответствующее нажатой кнопке аналоговой клавиатуры, это мы определили выше как значения KEY_0, KEY_1, KEY_2 и подобные
// либо Значение соответствующее нажатой кнопке библиотеке GyverButton, это мы определили выше как значения BTN_1, BTN_2, BTN_3, BTN_4 и BTN_PRESS
// либо Значение 0 если команда не используется )
// Если команда не используется то тогда надо YYYYY заменить на 0 или закомментировать строку
// значения кнопок пульта получаются следующим способом:
// загружаем пример из библиотеки IRremote с названием IRrecvDemo и смотрим в мониторе коды клавиш
// число должно иметь вид 0x00ff4ab5 (шестнадцатеричное число)
// Пример: #define Command_Brightness_plus 0xff4ab5 Установить обработку команды "Увеличить максимальную яркость" на кнопку с кодом 0xff4ab5 с пульта
// #define Command_Brightness_plus KEY_0 Установить обработку команды "Увеличить максимальную яркость" на 0 кнопку подключенную к аналоговому входу
// #define Command_Brightness_plus BTN_1 Установить обработку команды "Увеличить максимальную яркость" на нажатие кнопки подключенной к библиотеке GyverButton
// #define Command_Brightness_minus BTN_2 Установить обработку команды "Уменьшить максимальную яркость" на двойное нажатие кнопки подключенной к библиотеке GyverButton
#define Command_Start_Stop BTN1_1 // Старт/стоп
#define Command_Previous_my_mode BTN1_3 // Предыдущий эффект с учетом выбранных режимов. Отключает демонстрационный режим
#define Command_Next_my_mode BTN1_2 // Следующий эффект с учетом выбраных режимов. Отключает демонстрационный режим
#define Command_Glitter BTN1_4 // Включить/выключить сверкание
#define Command_Brightness_plus_R BTN1_PRESS 1005 // Увеличить максимальную яркость, при достижения максимума начать с минимума
остальное в этом разделе надо удалить или закомментировать
/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
Менял скетчи, библиотеки, ставил как на компе, бесполезно. На компе всë работает, а мне нужно с телефона залить скетч, компиляция не проходит! Помогите пожалуйста что не так
Добрый день. Не могу скомпилировать проэкт notamesh4.ino, хотя до перестановки ОС все работало. выскакивает куча ошибок типа
In file included from C:\Users\User\Desktop\n4\notamesh4\notamesh4.ino:321:0:
rainbow_beat.h:14:2: error: #endif without #if
#endif
Во многих библиотеках. Как устранить?
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., которые переключаются сами по себе без пульта. типа (бегущие огоньки, по одному, по два, вперед, назад, от средины и т, д.)
Очень нужно для утренников.
СПАСИБО.
[email protected]
Собрал схему на 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. Подскажите, у кого работает, а лучше скиньте весь проект с библиотеками ( [email protected] ). Задолбался уже!
Конкретно с примером пожалуйста какой код вы видите в скетче примера 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 внес проблему, тогда надо откатить его не версию
Многие накалываются, добавлю в основной скетч.
Если вкратце, надо для каждого отрезка свой пин Скетч автоматически из объединить.
До воскресенья сделаю
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’
Обновлен в скетч 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
Во многих библиотеках. Как устранить?
вот ответы первый второй
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.