Сердце на attiny13

Светомузыка на ATtiny13

Устройство снимает звуковой сигнал с электретного микрофона (можно взять любой, я брал с старого плеера), микрофон питается фантомным питанием через резистор в R5 10kOm. Сигнал с микрофона снимаем через разделительный конденсатор 0,1мкФ (можно отклониться в широких пределах) который отсекает постоянную составляющую сигнала.

После микрофона сигнал попадает на вход операционного усилителя LM358 (можно взять любой другой или собрать усилитель на транзисторе) и максимально усиливается, чтоб подать на вход микроконтроллера сигнал амплитудой от 0 до 5В.

Микроконтроллер ATtiny13 работает на частоте 9,6МГц и тактируется от внутренней РС цепочки, (прошивка и фьюзы будут в архиве ниже). Микроконтроллер проводит анализ подаваемого на вход сигнала и в зависимости от того какой он частоты зажигает один из четырех светодиодов. Вот и вся светомузыка!

Страничка проекта, там есть схема и прошивка

Дубликаты не найдены

TECHNO BROTHER

779 постов 7.5K подписчиков

Правила сообщества

1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.

3-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат — Нежелателен. Учитесь выражать мысли без матерщины

А видео как работает?

Добавлено, по просьбе трудящихся.

Нужна часовая версия что бы посмотреть как работает.

Соберите на макетке и тестируйте сколько влезет.

можно ж на дискретных элементах собрать

P.S. Сами вы наркоманы

попытался сделать сие чудо , не заработало не фига. и контролер прошивается и усилитель работает хорошо а не чего не мигает.

«Все смотрим как работает, всем пока! » xD

Есть ли схема простой рации?

Приветствую всех!
Как обычно, от нечего делать, пришла мне в голову мысль собрать относительно компактную рацию. Нужна больше для того, «чтобы было», но может и на выезде в лес пригодится.
Покопался в сети, но среди кучи схем так и не понял, что будет лучше для моих хотелок.

А хотелки следующие:
1. «Легальные» частоты, чтобы не быть радио хулиганом 😉
2. Относительно хорошая дальность (хватит по сути и 2-3км, но лучше с запасом).
3. Современная элементная база (большинство схем в сети чуть ли не на лампах).
4. Относительная компактность (размер барсетки вполне подойдёт).
5. Ну и сложность изготовления. Хотелось бы полностью аналоговую. Работать с микроконтроллерами не привык.

Буду рад услышать ваше мнение и по возможности увидеть схемы.

УМЗЧ ВВ Сухова 1989. Второй комплект. Восстановление

Второй собранный усилитель несколько лет простоял просто так. Что с ним я уже забыл, пришлось чинить как в первый раз с нуля.

Начал с блока питания, все 4 транзистора неисправны, заменил. Через токоограничительные резисторы в 15 ом включил, пошёл дымок из правого канала, сгорел резистор R25, ну понятно, пробит выходной каскад. Заменил КТ818Г и проверил все остальные силовые. В момент включения были подключены два осциллографа, заметил что в одном канале отсутствует сигнал с генератора НЧ, а во втором канале искажена синусоида. Вообще не характерные искажения, какие-то экспоненциально нарастающие пилы (забыл сфоткать). Решил выпаять все слаботочные транзисторы и проверить, у одного оказалось напряжение Uf = 2.9 в, (напряжение смещения Б-Э (открытия транзистора)) вместо положенных 0,5 в. Причём пару минут спустя показания менялись от 2,5 до 1,5. Исчезающий дефект самое неприятное занятие выискивать. Запаиваю обратно все транзисторы левого канала и приступаю к выпайке транзисторов из правого.

Тут вроде проще, но сложнее, дорожки поплыли, пятаки едва держатся. Ещё один ремонт эта плата не переживёт. Новую делать мне пока не хочется, пару битых транзисторов нашёл, и один КТ817Г вдруг показал 437 бетту! Не верю! Из закромов 147 показал, этому верю. Включаю, не работает! Плата защиты не отрабатывает реле. VT1, VT2, VT3 сгорели, и VD10. Ну всё вроде. Ток покоя 50 ма, уровень RMS сигнала на выходе 20 вольт на нагрузку 4 ома. Без нагрузки уровень клиппирования порядка 30 вольт. Но мне такого и не надо. 150 ватт на канал это и так перебор для комнаты в 16м кв. Двести он выдаёт на канал, но это честные ватты, не китайские. Но транзисторы выходные уже в зоне риска, поэтому и ограничил на безопасном уровне. Вес одного усилителя 14 килограммов.

Выходные транзисторы прикручены к уголкам без прокладок, а уголки через слюдяные прокладки к радиатору, для уменьшения теплового сопротивления.

Два трансформатора ТС-200, обмотки 2 мм диаметром.

TinyPocketRadio — ЧМ стерео радиоприемник на основе ATtiny13A и RDA5807MP

ATtiny13A RDA5807MP

Stefan Wagner

TinyPocketRadio – это простой ЧМ стерео радиоприемник, сделанный на основе микросхем ATtiny13A и RDA5807MP. Он питается от батарейки CR2032 таблеточного типа и может работать непосредственно на 32-омные наушники, подключаемые аудио разъемом 3.5 мм. Размеры печатной платы составляют 38 × 23 мм. На плате имеются выключатель питания и три кнопки: «Канал+», «Громкость–» и «Громкость+».

Аппаратная часть

Схема тюнера изображена на Рисунке 1. Все файлы проекта можно загрузить из источника [1].

Рисунок 1. Схема тюнера TinyPocketRadio.

Недорогой однокристальный ЧМ стерео тюнер RDA5807MP, предназначенный для приема радиовещательных станций, отличается хорошей избирательностью по ПЧ и содержит в себе полностью интегрированный синтезатор, декодер RDS/RBDS и декодер MPX. Тюнер выполнен по КМОП технологии, поддерживает несколько интерфейсов и требует минимального количества внешних компонентов. Все это делает его очень подходящим для портативных устройств.

Программная часть

Реализация протокола I 2 C

Исходный код программы доступен по ссылке [2]. Протокол I 2 C реализован методом программной эмуляции. Алгоритм специально разрабатывался под ограниченные ресурсы ATtiny10 и ATtiny13, но должен работать и на некоторых других контроллерах AVR. Благодаря низкой тактовой частоте процессора для правильного отсчета времени не требуется никаких задержек. В целях экономии ресурсов реализованы только основные функциональные возможности, необходимые для этого приложения.

Управление тюнером RDA5807

Микросхема ЧМ тюнера RDA5807MP управляется микроконтроллером ATtiny по шине I 2 C. Тюнер имеет шесть 16-разрядных регистров записи (адреса 0x02 – 0x07) и шесть 16-разрядных регистров чтения (адреса 0x0A – 0x0F). Поскольку считывать какие-либо данные с устройства для этого приложения не требуется, используются только регистры, доступные для записи. Доступ к регистрам RDA5807 для записи может осуществляться двумя методами: последовательным, при котором запись всегда происходит, начиная с адреса 0x02, и индексным, при котором сначала передается адрес регистра, а затем содержимое. Оба метода определяются разными адресами I 2 C. При передаче содержимого 16-разрядного регистра первым посылается старший бит. RDA5807 управляется установкой или очисткой определенных битов в соответствующих регистрах. Подробную информацию о значениях битов каждого регистра можно найти в техническом описании. Текущее содержимое регистров сохраняется в массиве RDA_regs.

Читайте также  Припои и флюсы

Главная функция

Для экономии энергии в коде используется функция снижения потребляемой мощности в спящем режиме. При каждом нажатии кнопки процессор пробуждается прерыванием по изменению состояния входа, передает соответствующую команду через I 2 C на RDA5807 и снова засыпает.

Компиляция и загрузка

Ввиду отсутствия на плате разъема внутрисхемного программирования (ICSP), запрограммировать ATtiny нужно либо перед запайкой, используя адаптер для корпусов SOIC-8, либо после пайки с помощью зажима для EEPROM. В этом может помочь AVR Programmer Adapter.

При использовании Arduino IDE

  • Удостоверьтесь, что ядро MicroCore [3] установлено.
  • Пройдите Tools -> Board -> MicroCore и выберите ATtiny13.
  • Откройте Tools и выберите следующие опции платы:
    • Clock: 1.2 MHz internal osc.
    • BOD: BOD disabled
    • Timing: Micros disabled
  • Подключите программатор к ПК и ATtiny.
  • Перейдите к Tools -> Programmer и выберите свой внутрисхемный программатор (то есть, USBAsp).
  • Перейдите к Tools -> Burn Bootloader для записи фьюзов.
  • Откройте скетч TinyPocketRadio и кликните Upload.

При использовании предварительно скомпилированного hex-файла

  • Удостоверьтесь, что консольная программа AVRDude [4] установлена.
  • Подключите программатор к ПК и ATtiny.
  • Откройте терминальную программу.
  • Перейдите в папку с hex-файлом.
  • Выполните следующую команду (при необходимости замените «usbasp» на имя того программатора, который используете вы):

avrdude -c usbasp -p t13 -U lfuse:w:0x2a:m -U hfuse:w:0xff:m -U flash:w:main.hex

Ссылки

  1. Файлы проекта TinyPocketRadio
  2. Исходный код программы TinyPocketRadio
  3. Комплект MicroCore
  4. Консольная программа AVRDude

Материалы по теме

  1. Datasheet Microchip ATtiny13
  2. Datasheet RDA Microelectronics RDA5807

Перевод: AlexAAN по заказу РадиоЛоцман

ЛАМПА НАСТРОЕНИЯ НА ATTINY13

Совсем немного осталось до Нового года 2021, а значит, по традиции, самое время задуматься о создании праздничной иллюминации (конечно собственными руками). Тем более что дни сейчас самые короткие и большую часть времени суток за окном темно, разноцветные светодиодные эффекты в темноте будут смотреться особенно эффектно. На мой взгляд, одним из лучших светодиодных эффектов является так называемая лампа настроения – она представляет собой обычный светильник, цвет которого плавно меняется от одного к другому в случайной последовательности. В отличие от многих других светодиодных эффектов, лампа настроения не напрягает зрение, ведь в ней отсутствуют каких-то резкие вспышки или мерцания света, смена цветов происходит абсолютно плавно. Использовать такую лампу можно в качестве универсального светильника, например, для подсветки новогодней ёлки вместо гирлянды, либо в качестве необычного ночника.

Схема RGB лампы на Attiny13

Схема для сборки лампы представлена ниже.

Детали для этой схемы, а также всё необходимое для сборки других электронных схем, в том числе инструменты, можно купить в магазине «Элирит». В каталоге присутствует большой ассортимент радиоэлектронных товаров, как отечественного производства, так и импортных, по весьма привлекательным ценам, имеется доставка по России.

Ключевым звеном является микроконтроллер Attiny13, один из самых распространённых и недорогих среди AVR. С его 5, 6 и 7 выводов снимается ШИМ-сигнал и поступает на затворы полевых транзисторов, управление яркостью осуществляется с помощью изменения скважности ШИМ. Частота ШИМ-сигнала в данной схеме составляет 130 Гц, этого достаточно для того, чтобы мерцание светодиода было совершенно незаметно для глаз.

Светодиод в схеме используется RGB – на одной подложке одновременно установлены три независимых светодиода, соответственно красный, зелёный и синий, путём комбинирования яркости этих цветов получаются различные другие цвета и оттенки. Использовать можно также и три отдельных светодиода, если под рукой нет RGB, однако в этом случае их нужно будет расположить как можно ближе друг другу и накрыть сверху рассеивающим экраном, чтобы цвета равномерно смешивались. На картинке ниже можно увидеть применённый мной RGB светодиод, он имеет 6 выводов – отдельные анод и катод для каждого цвета.

Несколько слов о деталях схемы. Предпочтительнее использовать элементы поверхностного монтажа, в этом случае вся конструкция получится весьма компактной и её можно будет встроить, например, в какой-нибудь готовый корпус. Помимо самого микроконтроллера, на схеме присутствуют три полевых транзистора – здесь важно использовать транзисторы с логическим уровнем затвора, идеальным вариантом будут указанные на схеме IRLML0030, они полностью открываются от 5-ти вольт.

Не лишним будет также установить токоограничивающие резисторы между выводами микроконтроллера и затворами, например, на 10-47 Ом, на печатной плате под них предусмотрены посадочные места. Также на схеме не указаны токоограничивающие резисторы для самих светодиодов – их сопротивление выбирается исходя из необходимого тока через светодиоды, и соответственно яркости свечения лампы. Оптимальным будет значение около 10 Ом для каждого светодиода (при питании схемы от 5 вольт), в этом случае и сами резисторы, и светодиод не будут сильно нагреваться, но общего уровня яркости хватит для большинства применений лампы.

Обратите внимание, что используемый RGB светодиод должен быть рассчитан на заданный ток, превышение допустимого тока светодиода приведёт к его быстрой деградации. Помимо этого, на плате также присутствует резистор 4,7 – 20 кОм для подтяжки RESET микроконтроллера к питанию, а также конденсаторы по питанию – не стоит ими пренебрегать, ведь ШИМ светодиодов может вызвать помехи по питанию, которые приведут к нестабильной работе микроконтроллера.

Печатная плата изготавливается методом ЛУТ, файл с платой прилагается к статье. В нижней части можно увидеть большой прямоугольный полигон, граничащий со светодиодом – он работает в роли небольшого теплоотвода. При небольшой мощности его достаточно, но если ток через светодиод достаточно велик, потребуется отдельный радиатор для охлаждения.

Сперва на плату устанавливается микроконтроллер и прошивается, прошивка также прилагается к статье. Использовать для этого можно любой подходящий программатор, например, USBasp, и соответствующую программу, инструкций в интернете предостаточно. После того, как микроконтроллер прошит, можно впаивать все остальные элементы.

Таким образом, получилась весьма миниатюрная плата с размерами 3х3 см. Для запуска схемы достаточно подвести питание в 5 вольт, микроконтроллер начнёт работу и светодиод сразу же начнёт светится.

Единственная настройка заключается в выравнивании яркости каждого из цветов RGB светодиода – дело в том, что разные цвета при одинаковых токоограничивающих резисторах имеют чуть разную яркость. На плате последовательно с основными токоограничивающими резисторами предусмотрены дополнительные посадочные места для резисторов 1 — 2,2 Ома, с помощью которых можно настроить отдельно яркость каждого цвета.

Проверить правильность настройки очень просто – достаточно подать на затворы каждого из транзисторов по 5 вольт, при этом светодиод должен светится белым цветом без каких-либо оттенков.ъ

Однако данная настройка не обязательна и можно просто впаять три нулевых резистора-перемычки, как я и сделал, качество работы лампы при этом практически не страдает.

В общем получился интересный, недорогой, а главное сделанный своими руками LED светильник. Получившуюся плату следует поместить в любой красивый корпус, желательно выбирать матовый, для дополнительного рассеивания света. Скачать файлы проекта. Автор материала misha1279.

  • Все
  • Тематические


    Программирование Arduino даёт не только огромный простор для фантазии и возможностей, но, как и любой фреймворк , одновременно навязывает свой стиль и ограничивает возможности.
    Поэтому, если чувствуется, что Arduino становится тесноват — можно не только перейти на 32-битные контроллеры (например, STM32), но и попробовать более низкоуровневое программирование контроллеров.

    Уходя ближе «к железу» — программировать придётся на более близком к железу уровне — и если это не ассемблер, то уж язык программирования Си — точно.
    Пример подобного программирования уже приводился в статье Arduino/CraftDuino и WinAVR — программируем на чистом С .
    У такого стандартного программирования микроконтроллеров есть существенное преимущество перед использованием Arduino-вских скетчей.
    Однако, за низкоуровневый полный контроль и возможность использовать все ресурсы микроконтроллера, приходится расплачиваться долгим и внимательным изучением документации (datasheet-а) на микроконтроллер.
    Т.е., если у вас ещё не было опыта работы с конкретным микроконтроллером — то вместо быстренького набрасывания скетча для решения своей задачи — вам придётся потратить дополнительное время на изучение мат. части.

    Разумеется, не всегда это может быть оправдано и если задачу нужно и можно быстро решить при помощи Arduino — то почему бы и нет?
    Однако, если решение задачи на Arduino невозможно, то придётся потратить время на получение ценных опыта и знаний, которые помогут открыть все возможности, которые под силу микроконтроллеру.

    Для примера, возьмём меленький, простой и дешёвый контроллер ATtiny13.

    ATtiny13

    8-битный AVR микроконтроллер с 1 КБ программируемой Flash памяти

    — RISC архитектура
    — 120 команд, (большинство выполняется за один такт)
    — 32 8-битных регистра общего применения
    — 1 КБ программируемой Flash памяти программы
    — 64 байта EEPROM памяти данных, (до 100 000 циклов записи/стирания)
    — 64 байта SRAM памяти (статическое ОЗУ)
    — Один 8-разрядный таймер/счётчик с отдельным предделителем и два ШИМ канала
    — 4-канальный 10-битный АЦП со встроенным ИОН
    — Программируемый сторожевой таймер (watchdog) со встроенным генератором
    — Встроенный аналоговый компаратор
    — Внутрисистемное программирование через SPI порт
    — Внешние и внутренние источники прерывания
    Корпусное исполнение:
    — 8-выводные PDIP и SOIC корпуса: 6 программируемых линий ввода-вывода

    Диапазон напряжения питания, частота:
    1.8 – 5.5В (для ATtiny13V) — до 10МГц
    2.7 – 5.5В (для ATtiny13) — до 20МГц

    Выводы микроконтроллера ATtiny13:

    Документация на ATtiny13:

    Как видим, микросхема микроконтроллера — маленькая — всего 8 ножек.
    Чтобы заставить её работать — нужно просто воткнуть её в макетную плату, подтянуть RESET (первый пин — на схеме обозначается — PB5) к шине питания через 10-килоомный резистор и подать питание — например, 5V снятые с пинов питания контроллера Arduino / CraftDuino.

    Разумеется, желательно, ещё повесить конденсатор в 0.1 мкФ между шинами питания.

    Подключение ATtiny13 через SPI к CraftDuino

    В статье Делаем ISP-программатор из Arduino , уже подробно расписано как нужно подключить микроконтроллер ATtiny13 к контроллеру Arduino или CraftDuino, чтобы его можно было программировать через выводы микросхемы FT232RL используя режим bit-bang (режим управления отдельными выводам микросхемы). Поэтому сразу переходим к софтовой части.

    Atmel Studio

    Раз решили программировать «по-взрослому», то и среда разработки нужна «взрослая».
    Идём на сайт Atmel -a, и скачиваем свежую версию Atmel Studio .

    Atmel Studio — (наследница AVR Studio) — это бесплатная среда разработки для микроконтроллеров Atmel.
    Сама IDE должна быть знакома, т.к. используется оболочка от Microsoft Visual Studio, однако следует обратить внимание, что в качестве компилятора используется GCC.

    После установки, на рабочем столе появится ярлык с симпатичной красной божьей коровкой. Запускаем IDE и привычным образом, быстренько создаём проект.
    File -> New -> Project.
    Выбираем С/С++ и GCC C Executable Project, пишем имя проекта, например, blink 🙂
    Затем, среда предложит выбрать тип используемого микроконтроллера — выбираем ATtiny13.
    Всё — шаблонный файл уже создан и можно начинать программировать:

    Предлагаемый шаблон программы — напоминает что-то знакомое :

    Соответствие функций Arduino на Си

    Описание работы портов микроконтроллера и используемых для насткройки и работы регистров, очень подробно приводится в документации на микроконтроллер — ATtiny13 datasheet .

    Как увидим далее, конфигурирование и работа с портами сводится к установке соответствующих битов в нужных регистрах микроконтроллера.
    Если вы уже имели дело с установкой/проверкой/очисткой битов (работа с битовыми масками), то вам будет проще разобраться в происходящем.
    Но, на всякий случай, напомню:
    чтобы установить бит N — нужно выполнить побитовое ИЛИ с числом, где этот бит установлен (чтобы получить такое число — мы побитово сдвигаем влево единицу на заданное число позиций).
    Соответственно, чтобы сбросить бит N — нужно выполнить побитовое И с числом в котором установлены все биты кроме заданного (чтобы получить такое «интвертированное число» — мы сначала получаем число в котором бит установлен, а потом применяем к нему операцию побитового НЕ).

    Так как процедура установки бита встречается чрезвычайно часто — для неё даже есть удобный макрос

    , который рекомендуется к использованию.

    Для простоты понимания Си-шных методов работы, сопоставим им функции Arduino.

    Базовые функции управления портами (см. datasheet стр. 48):

    В принципе, хотя у ATtiny13 всего 1 килобайт флеша на котором сильно не разгуляешься, но даже для этой крохи частично реализован Arduino-вский фреймворк — Core13 .
    В нём есть реализации для:

    Подробнее про использование Core13 можно прочитать здесь: Прошивка и программирование ATtiny13 при помощи Arduino .
    Но даже если использовать Arduino IDE не собираетесь — взглянуть на код всё равно стоит, чтобы проверить как работает и что скрывается за реализацией функций Arduino:

    Реализация функций digitalWrite() и digitalRead() из Core13 (core13_022_arduino_1_6)

    Даже здесь используется много проверок, что разумеется даёт «защиту от дурака», но и является причиной, почему при использовании Arduino-вских функций производительность кода будет ниже.

    Частота работы микроконтроллера

    По-умолчанию, микроконтроллер ATtiny13 работает на частоте 1.2 МГц — определяется фьюз-битами (так называются специальные конфигурационные биты, находящиеся в специальных ячейках памяти и отвечающие за параметры конфигурации всего МК).
    Младший фьюз-байт lfuse = 0x6A
    Старший фьюз-байт hfuse = 0xFF

    Посмотреть, что означают эти параметры можно в удобном калькуляторе фьюзов для AVR — AVR Fuse Calculator .
    В калькуляторе, можно увидеть, что меняя значение младшего фьюз-байта с 0x6A на 0x7A — мы получим работу микроконтроллера на частоте 9.6 МГц за счёт отключения делителя тактового сигнала на 8 (CKDIV8).
    9.6 МГц / 8 = 1.2 МГц.

    Посмотреть текущие значения фьзов можно при помощи avrdude, командой:

    — получим два файла — low_fuse_val.hex и high_fuse_val.hex с шестнацетиричным значением соответствующих фьюзов.

    Blink для ATtiny13

    Теперь, зная частоту работы контроллера и базовые методы работы с портами, можем написать микроконтроллерный Hello World — а именно — Arduino-вский — Blink:

    Выбираем тип сборки — Release и жмём F7 для сборки проекта (Build -> Build Solution).

    Чтобы проверить работу программы — подключаем к третьей ножке (PB4) светодиод с токоограничительным резистором:

    Прошивка МК ATtiny13

    Остаётся прошить наш микроконтроллер.
    Можно взять готовый hex-файл из папки проекта и используя avrdude, прошить МК командой:

    А можно, для удобства прошивки, соответствующим образом настроить Atmel Studio.

    Настройка Atmel Studio для прошивки МК ATtiny13 через avrdude

    Настроить Atmel Studio для прошивки МК ATtiny13 через avrdude, очень просто .

    Идём в меню
    Tools -> External Tools

    И добавляем нашу тулзу — avrdude:

    Title:
    Deploy ATtiny13

    Command:
    C:ArduBootavrdude.exe

    Arguments:
    -C C:ArduBootavrdude.conf -c ftbb -P ft0 -B 9600 -p attiny13 -U flash:w:$(TargetDir)$(TargetName).hex:i

    Чтобы видеть лог процесса прошивки — нужно поставить галочку рядом с пунктом «Use Output window».

    Вот и всё.
    Теперь, чтобы прошить МК нужно зайти в меню Tools и выбрать наш пункт «Deploy ATtiny13».

    Лампа настроения на Attiny13

    Хоть Новый год (как праздник, конечно же) уже кончился и вся возможна иллюминация несколько поднадоела, впереди длинные зимние каникулы, которые обязательно нужно провести с пользой, например, сделать что-нибудь своими руками. Ночи в январе всё ещё очень длинные, поэтому сделать можно интересную лампу-настроения, которая послужит в качестве лампы-ночника, либо может стать хорошим подарком, если оформить её в презентабельный корпус. Многие заводские гирлянды и всевозможные светящиеся в темноте огоньки, чаще всего, запрограммированы так, чтобы быстро мелькают — различные цвета постоянно прыгают перед глазами, и если это происходить на протяжении длительного времени, глаза устают. Противоположностью является лампа-настроения — в ней происходит плавная хаотичная смена цветов, без резких вспышек, эффект наоборот весьма успокаивающий — то что нужно перед сном. Схема такой лампы-настроения показана ниже.

    Напрямую подключать светодиоды к ножкам микроконтроллера нельзя — их нужно усилить полевыми транзисторами, идеальным вариантом будут полевые с логическим уровнем затвора, такие транзисторы открываются уже при 5-ти вольтах на затвора, именно то, что нужно для данной схемы. IRLML0030, указанные на схеме, выпускаются в корпусе для поверхностного монтажа — желательно собирать схему именно на таких деталях, в этом случае она не будет занимать много места и её можно будет встроить в любой подходящий корпус, например, из под какой-нибудь нерабочей игрушки. На схеме также не показаны резисторы, которые устанавливаются последовательно со светодиодами для задания рабочего тока, на печатной плате, приложенной к статье, места под резисторы присутствуют. Чем ниже сопротивление каждого из этих резисторов — тем ярче будет светить лампа, но соответственно и больше будет нагрев светодиода, больше будет и ток потребления лампы. Оптимальным можно назвать значение в 10 Ом, он обеспечит потребление тока около 300 мА, а светодиод будет греться умеренно и не потребует дополнительного радиатора, дальнейшее увеличение сопротивления приведёт к снижению яркость лампы. Есть один неочевидный нюанс — светодиоды разных цветов обладают разной яркостью при одинаковых токоограничивающих резисторах, эта разница не столь существенна и особо не влияет на работу лампы, однако её можно полностью устранить, настроив в отдельности каждый токоограничиваюший резистор, подключая последовательно с ним низкоомные на 1 — 2,2 Ом, на плате для этого также предусмотрены посадочные места. Если такая настройка не требуется, можно просто впаять перемычки.

    Вся схема собирается на печатной плате размерами 3х3 см, скачать плату можно в архиве в конце статьи. На одной половинке платы можно увидеть сплошной полигон, который также располагается под посадочным местом светодиода — это своеобразный радиатор, который чуть-чуть отводит тепло от светодиода. Поэтому при запайке на плату светодиода не лишним будет обеспечить хороший тепловой контакт с использованием термопасты, а если планируется работа с небольшой яркостью без существенного нагрева светодиода — можно просто убрать этот полигон, плата станет в два раза меньше.

    Микроконтроллер Attiny13 нужно прошить — удобнее всего после изготовления платы запаять его, подключиться проводами к соответствующим контактным площадкам на плате и прошить, а после этого уже запаять все остальные компоненты на плату. Прошивать можно с помощью удобного программатора UABasp, он стоит около 100 р на Али и в дальнейшем может пригодится ещё не раз при сборке устройств с микроконтроллерами.

    Вид готовой платы показан выше. Питание подводится по двум проводам — достаточно подать 5 В и лампа тут же начнёт светится, переливаясь различными цветами. Удачной сборки!