Продолжая тему «Подстраиваемого светодиода» и преследуя цель опробовать в деле умную светодиодную ленту на базе WS2812B (NeoPixels) родилось новое устройство — Adjusty strip — продвинутый индикатор уровня!
Ленту на пробу мне предоставил магазин DiyLab.com.ua Если Вам понравится устройство и Вы захотите его повторить, то ленту в Украине можно приобрести в этом-же магазине — ссылка на ленты. Для России ее можно приобрести еще у одного моего партнера TIXER.RU (обещались в ближайшее время пополнить ассортимент).
Переходим к конструкции.
Схема элементарна – на несколько деталек и ATtyni13. Надеюсь, знаете, как записать в МК прошивку? Нет? Тогда Вам сюда.
Длина ленты по умолчанию — 30 пикселей. Количество пикселей отображения можно изменить, указав в исходнике значение константы «Number_Pixels» равное реальному количеству пикселей (эффекты автоматически пересчитаются под новое значение).
Несмотря на простую схему, индикатор уровня получился интересный! С большим выбором вариантов отображения линейки. В устройстве задействована специальная палитра, стилизованная под пламя. Соответственно, каждому значению уровня будет соответствовать свой цвет из палитры:
Устройство
– визуально отображает на ленте уровень входного сигнала. Это, своего рода, большой светодиодный столбик.
Индикатор умеет работать в 9-ти режимах отображения входного уровня. Для перебора режимов нужно нажимать на кнопку «Режим». Выбранный режим запоминается в энергонезависимую память и при повторном старте устройства будет автоматически активирован.
Режимы:
0 – Off – лента выключена
1 – Simple – обычная одноцветная полоса
2 – Bar – линейка от синего к белому по палитре
3 – Inv_Bar – линейка от белого к синему по палитре
4 – Color – вся линейка подсвечивается одним цветом в зависимости от длины
5 – Point – цветная точка, отображающая уровень
6 – Solid_Color – все пиксели горят цветом, зависящим от величины уровня
7 – Fire – стилизованный огонь — чем больше уровень, тем больше пламя
8 – Chaos – хаотичные засветки пикселей (изменяются от уровня)
9 – Scroll – сдвиг уровня по полосе
Устройство, кроме того, что отображает уровень входного сигнала, еще может работать в автоматическом режиме. Для этого нужно замкнуть на землю переключатель «Демо». В Демо-режиме уровень устройства меняется случайным образом автоматически.
Так как устройство элементарно, для демонстрации его возможностей я собрал его на макетке, за пару минут:
И вот что получилось:
Материалы для сборки устройства:
120-Adjusty_WS2812B.zip (5193 Загрузки)
Область применения индикатора уровня Adjusty strip:
— Первое, что приходит на ум – визуализация музыки.
— Еще, думаю здорово будет смотреться, если им подсвечивать тахометр в машине (в зависимости от оборотов подсветка будет менять цвет).
— Дальше – подсветка ручек регуляторов уровня.
— Еще создание оригинальных светильников для автономной работы в демо-режиме (режим огня смотрится очень эффектно даже сам по себе).
— Визуализация температуры (например, можно задействовать дешевый аналоговый градусник LM35) …
Обновление 2016
viktor001 проделал большую работу по подключению звука к устройству. Получилось здорово. Прошивка тоже немного изменена — смотрите в архиве.
Схема к индикатору получилась до безобразия простой и собственно соответствует поставленной задаче — простата, легкодоступные компоненты и 100 процентная повторяемость. При правильной сборке работает сразу. Вся настройка сводится к выставлению уровней компрессии и выхода микрофонного усилителя. Главное и единственное требование — не выставлять усиление по максимуму. Наличие компрессора не является таблеткой от всех болезней и при работе от микрофона всё же имеет свои границы регулирования. Можно конечно «зажать» сигнал регулятором компрессии, но тогда страдает подвижность индикации. Лучшим средством является предусмотренный регулятор усиления Ку на первом операционнике фильтра нч. При работе от линейного входа, компрессор замечательно справляется без дополнительных регулировок.С питанием схемы всё ещё проще. Выбор блока питания исходил от требования ленты WS2812B, точнее от потребления тока, плюс небольшой запас. 10 вольт получаем через DC/DC преобразователь.
Кстати, что бы первые пиксели не светились в паузе между треками, на вход МК надо повесить резистор на 100к относительно массы. Я когда рисовал схему упустил этот момент.
В архиве есть печатки усилителей. Расположение деталей микрофонного усилителя я не стал указывать. Поэтому прилагаю плату МУ как отдельный блок. На ней всё указано. Обратите внимание на перемычки.
Да, автоматический загрузчик HEX-файлов для Arduino — читал. Осталось разобратся со схемой для Ардуино
Здравствуйте. Я собираю коллекцию советских светомузыкальных устройств, а также балуюсь изготовлением несложных устройств. Начал повторять схемы из интернета на адресных светодиодах и Ардуино. Очень понравились эффекты в вашей схеме, особенно точка (нигде не встречал). Но на ATtyni13 пока не пробовал делать. А в программировании только начинаю разбираться, дочь помогает. Не думали написать программу для Ардуино нано например ? Проект был бы намного легче для повторения (для таких как я).
Самый простой: формируется случайный шум (в нижней части огня), потом делается его размытие + сдвиг вверх с угасанием. И так повторяется в цикле.
А есть алгоритм отрисовки огня? Просто текстом, постараюсь повторить
Да работает 🙂 Но я подключил только пока один пиксель, цвет меняется, пока не могу определить визуально о корректной работе 🙂
Привет!
Да вроде должна работать и на 8МГц. Пробовал?
Доброго времени суток. Уважаемый автор. Не подскажете как отредактировать Вашу программу под ATtiny85 в среде разработки Algorithm Builder под частоту RC 8МГц, или как частоту подстроить на 9.6МГц, ато совсем запутался 🙂
Отлично прошивается при помощи ядра core.
attiny13 из Arduino IDE не получится прошить.
Нужно использовать программатор.
Еще можно использовать нестандартные методы работы с Arduino IDE. Например такие
https://www.hackster.io/taunoerik/programming-attiny13-with-arduino-uno-07beba
друг, как тебе жаль беспокоить тебя о том, что ты занят и у тебя нет свободного времени Я пытался создать программу на Arduino и мне удалось выполнить некоторые функции, но я пытался передать ее из Arduino в attiny13, и она не работает так же, как attiny85 и он не работает также с Atmega8, и он не работает, он будет отправлен вам, и вы расскажете мне, как это делается для работы с одним из этих трех микроконтроллеров. Большое спасибо заранее. пожалуйста, если у вас есть электронная почта где я могу общаться с вами или если у вас есть WhatsApp.
Привет!
Программа написана не на Arduino IDE.
Можешь посмотреть варианты модификаций в форуме
http://forum.getchip.net/search.php?keywords=mod%23120&terms=all&author=&sc=1&sf=titleonly&sk=t&sd=d&sr=posts&st=0&ch=300&t=0&submit=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA
А почему в архиве не представляется скетч? Только hex файл. Невозможно поменять количество светодиодов! ((((((
Привет!
Я готов помочь, но сейчас вообще нет времени свободного…
Как освобожусь — будем делать.
друг доброе утро, как тебе жаль беспокоить меня, ты мог бы помочь со светом ws2812b и attiny13a Я сделал один в Arduino, и он работает, но он очень большой, я хочу использовать меньший микроконтроллер, но я не знаю, как это сделать, большое спасибо за ваш помощь.
ОК.
Будет свободное время — сделаю.
Друг, доброе утро, спасибо за то, что я отвечаю за отличную работу. Я из Боготы Колумбии и поклонник электроники. Я хочу попросить вас о службе. У меня есть мотоцикл, и я хотел бы сделать некоторые огни с этим типом светодиодов ws2812 и attiny13a, чтобы разместить их в задней части мотоцикла что, когда вы наступаете на стоп-сигналы, все светодиоды ws2812 красные, когда вы поворачиваете левую половину светодиода ws2812 на левом оранжевом свете последовательно, когда вы поворачиваете вправо то же самое, и если нет, тогда которые все белые или синие цвета будут, что вы можете помочь мне, это мой адрес электронной почты, чтобы связаться с нами, спасибо большое. Julroj07@gmail.com
Появится время свободное — сделаю.
это будет не сложно.