RGB PWM на ATtiny13 — DRIVE2
Дошли руки для интернета… как и обещал тут даю схему RGB контроллера. Только в предыдущем посте контроллер был на ATmega8, но случайно в столе нарыл пакетик с ATtiny13 и решил все переделать, а то 8ая мега тут жирновата.
Но без изврата конечно не обошлось)) тиньки были только в планаре, пришлось мудрить переходник от SO8 в DIP.
В лучших традициях жанра смоделировал схему в ISIS Proteus. Как не покажется банально, прошивку написал на Си в CodeVisionAVR, и залил в процЫк при помощи AVRprog(AVR910).
Особое внимание стоит уделить процессу прошивки МК. Дело в том, что в схеме силовые транзисторные ключи управляются как раз теми выводами, которые задействуются для программирования флешки по последовательному интерфейсу. Полевики типа МОП имеют большую входную емкость, которая может сильно исказить сигналы программатора, если программирование реализовать внутрисхемно. Так что придется МК программировать отдельно от основной платы, я для этого спаял специальный переходничек.
Вот здесь можно почитать про сборку простого программатора, которым можно прошить контроллер!
В работе это выглядит вот так:
Немного о функциональности:
1. Управление контролером осуществляется от одной кнопки
2. Коротким нажатием осуществляется выбор одного из эффектов в двух возможных режимах
3. Переключение режимов осуществляется длинным нажатием
4. Еще более длинное нажатие осуществляет выключение девайса
5. Последующее включение производится однократным нажатием кнопки
6. Возможны два режима: статический и динамический
7. В статическом режиме можно выбрать один из семи цветов
8. В динамическом режиме возможно плавное изменение цветов или пошаговое переключение
В планах:
1. В динамическом режиме добавить стробоскопов
2. Запоминать текущий режим работы в энергонезависимую память (а нужно ли это?)
4. Расширить цветовую гамму в статическом режиме (стоит ли ваще заморачиваться?)
5. Победить лень и переложить девайс на печатную плату в планаре для получения сверх компактного конструктива.
И главное, люди, не оставайтесь безучастными… спрашивайте, предлагайте… (при необходимости могу передать проект по электронке) — для этого есть коментарии)) ну и еще пару кнопок)))
Вот собственно сама схема… к стати, ценник получается в пределах 150р, так что все доводы про покупку китайского контроллера отклоняются сразу!
Электрическая схема RGB контроллера на ATtiny13
Текст прошивки в формате Intel HEX: (прямо как в старых журналах радио)))
:0A00000013C0FECFFDCFFCCFFBCFF5
:10000A00FACF18C1F8CFF7CFF6CF150000020000DB
:10002A00EE27ECBBE5BFF8E1A4B7A77FA4BFF1BDFB
:10003A00E1BDEAE1F0E0C8953196802DC895319688
:10004A00902D0097B9F0C8953196A02DC895319694
:10005A00B02DC8953196102CC89531966E2F7F2FEA
:10006A00F02DE12DC89531960D920197D9F7E62F1B
:10007A00F72FE1CFEFE9EDBFC0E700C02397E2E039
:10008A00E883E1E0E983E0E0EA8330E040E050E041
:10009A00E0E8E6BDE0E0E6BDE7E0E7BBC49AE2E0FF
:1000AA00EFBDE5E0E3BFEDE5E6BFE4E0E9BF789444
:1000BA00E42DE93021F4E8B3E87FE8BBB9C0E230C7
:1000CA0021F4C19AC09AC29AB3C0E33021F4C19A0A
:1000DA00C098C298ADC0E43021F4C198C09AC298C1
:1000EA00A7C0E53021F4C198C098C29AA1C0E630F1
:1000FA0021F4C198C09AC29A9BC0E73021F4C19AF0
:10010A00C098C29A95C0E83021F4C19AC09AC298A0
:10011A008FC0E130C9F4552009F08AC00F5F08305A
:10012A0008F001E001FF02C0C19A01C0C19802FFB4
:10013A0002C0C29A01C0C29800FF02C0C09A01C0A0
:10014A00C098E4E65E2E74C0E03009F071C02F5FFB
:10015A00293C30F120E01F5F193210F110E03F5FB7
:10016A00393C40F030E0AA81AF5FAA83A43010F096
:10017A00E0E0EA835F5F593C40F050E0A981AF5F5D
:10018A00A983A43010F0E0E0E9834F5F493C40F0D6
:10019A0040E0A881AF5FA883A43010F0E0E0E883D4
:1001AA00EA81E03031F4231710F0C19801C0C19AF6
:1001BA000FC0AA81A13011F4C19A0AC0AA81A23043
:1001CA0031F4231710F0C19A01C0C19801C0C19837
:1001DA00E981E03031F4251710F0C29801C0C29AC3
:1001EA000FC0A981A13011F4C29A0AC0A981A23014
:1001FA0031F4251710F0C29A01C0C29801C0C29802
:10020A00E881E03031F4241710F0C09801C0C09A98
:10021A000FC0A881A13011F4C09A0AC0A881A230E7
:10022A0031F4241710F0C09A01C0C09801C0C098D8
:10023A003FCFFFCFAA93EA93EFB7EA93A09170005A
:10024A00A53159F4B49908C0E0917000E150E093E7
:10025A007000E0E0E09371003BC0E0917000E03094
:10026A0091F5E0917100EF5FE0937100B49B2AC0B1
:10027A00E5E1E0937000A0917100AD3090F4332075
:10028A0039F44394E8E0E41510F4E2E04E2E08C095
:10029A00E1E0E31529F455244394E41508F44424D1
:1002AA0011C0A0917100A03550F4332021F4E1E08F
:1002CA004E2E332405C0E0917000E150E093700097
:1002DA00552009F05A94E991EFBFE991A99118952F
:00000001FF
Это нужно скопировать в текстовый файл и сохранить с разрешением *.HEX
Проект 100% рабочий и при правильной сборке и прошивке чипа сразу начинает работать! Конфигурация фьюз битов микроконтроллера заводская! Фьюзы программировать не нужно!
А вот собсно и макетный ва
www.drive2.ru
ATtiny13 — Меандр — занимательная электроника
Рассмотрим легкий и неразорительный способ записать программу в любой микроконтроллер (МК) серии AVR от Atmel. Нам понадобятся программатор USBASP и программное обеспечение для прошивания, также если на вашей плате установлен 6-пиновый разъём, вам потребуется переходник с 10 выводов на 6. Программатор USBASP, созданный немцем Томасом Фишлем, является очень распространённым, наиболее дешёвым и простым среди других …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/36583
Описание и назначение устройства Публикация статьи рассчитана больше на начинающих — тех, кто только пытается заняться освоением и пониманием работы устройств на AVR микроконтроллерах. Поэтому приведённый здесь проект в AVR Studio с текстом исходного кода написан с подробными комментариями. Мне хотелось на реальном простом устройстве, которое может найти конкретное применение в быту, привести пример реализации …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/36158
В статье описано несложное устройство, позволяющее организовать поиск приземлившихся моделей ракет и других объектов, оснащённых радиомаяками. В нём использованы готовые радиомодули на частоту 433 МГц. Формирователь модулирующего сигнала радиомаяка выполнен на микроконтроллере ATtiny13A—PU. Приёмник имеет простую направленную антенну и телефонный усилитель от старого привода CD—ROM. Неожиданно возникшее увлечение изготовлением и запуском моделей ракет по мере …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/34254Автоматические включатели освещения на базе датчиков присутствия человека весьма полезны в плане экономии электроэнергии. В статье представлены результаты работы автора над собственными конструкциями таких приборов. Основная идея разработки заключалась в применении в автоматических включателях освещения единого модуля микроконтроллера с возможностью подключения к нему различных датчиков присутствия. Замена датчика и программного обеспечения даёт возможность работать в …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/27847
Сегодня я расскажу вам, как с помощью встроенного в микроконтроллер ATtiny13 ШИМ-модуля сделать цифровой 8-битный генератор опорного напряжения 0 — 5В. Идея девайса до гениальности проста. На одном из выходов контроллера с помощью встроенного модуля ШИМ генерируются прямоугольные импульсы, которые затем сглаживаются обычным RC-фильтром. Величина сглаженного напряжения, как вы понимаете, определяется длительностью генерируемых импульсов. А …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/22334
meandr.org
Простой счетчик витков на Attiny13a
РадиоКот >Схемы >Цифровые устройства >Автоматика >Простой счетчик витков на Attiny13a
Пришлось недавно мотать трансформаторы с большим количеством витков — работа даже чем-то приятная, но вот со счёта я всё время сбиваюсь. Обычные решения вроде калькулятора с герконом на знаке «равно» не устраивали — за отсутствием того самого калькулятора, да и не эстетично это как-то. Как и не эстетично использовать для этих целей Атмеги, Ардуины и более высокие контроллеры. Готовых схем в интернете не нашлось, а если и были, то сопровождались десятками деталей и бородой из проводов. Пришлось придумывать самому, ибо не может столь простое устройство требовать столь сложной схемы.
Из подходящих деталей нашeл контроллеры Attiny13a, светодиодный семисегментный дисплей на «драйвере» из шифт-регистров, аккумулятор от сотового телефона, а также пары светодиод-фототранзистор, которые раньше служили датчиками уровня краски струйного принтера.
Дисплеи такого типа продаются с уже распаянной платой на два восьмибитных шифт-регистра 74HC595, и стоят ненамного дороже чем просто семисегментные дисплеи. Основной их плюс в том, что можно обойтись всего тремя портами ввода данных: DIO, CKL и RCK. А портов как известно на Attiny13a совсем немного — всего три на дисплей и два на датчики. Также отпадает надобность в четырёх транзисторах, что ставятся при использовании обычной динамической индикации, требующей целых 7+4 портов микроконтроллера.
Датчиками служат две пары светодиод-фототранзистор (например ITR9608), расположенные рядом друг с другом. В данном случае они используются как эмиттерные повторители, притягивая каждый свой порт на высокий уровень, когда фототранзистор принимает свет. В принципе, можно обойтись и одним датчиком (естественно, изменив прошивку), но тогда счетчик не будет «видеть» в какую сторону вы вращаете вал. А это неудобно, если приходится отматывать и переукладывать витки.
Вращая вал намоточного станка мы вращаем также диск с прорезью, находящийся между светодиодами и фототранзисторами, таким образом периодически прерывая световые лучи. Прорезь должна быть достаточно широкой чтобы одновременно пропускать свет на оба фототранзистора. Подробности работы программы можно понять из исходников, которые я постарался получше комментировать. Прошивку делал используя USBASP-программатор под линуксом, при компиляции исходников надо указать стандарт c99. Исходники прилагаются, так как я исповедую «Open Source».
Схема всего счетчика представлена ниже. Изначально в схеме предполагалось использовать кнопку сброса, но затем я понял что она по сути не нужна — можно просто щелкнуть туда-сюда выключателем.
Печатную плату рисуем в вашей любимой программе, или берём готовую в случае если нашли такие же детали как у меня. Я не стал заморачиваться с ЛУТ — в основном по причине отсутствия рабочего утюга. Просто накернил места отверстий, нарисовал дорожки специальным маркером и вытравил плату, использовав тот самый состав из перекиси водорода + соли + лимонной кислоты. Облудив и распаяв детали, можно проверить работу схемы.
Далее кончается электроника и начинается механика — тут уже дело вкуса и пристрастий. Кто-то может прикрутить электропривод, мне же нравится крутить вручную. Это удобнее когда провод очень тонкий и легко рвётся — рука лучше чувствует натяжение.
Устройство готово, инспектора довольны 🙂
Файлы:
Прошивка микроконтроллера
Печатная плата
Исходники программы на «СИ»
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
www.radiokot.ru
attiny13 проекты — Меандр — занимательная электроника
Схема фонаря показана на рисунке. На полевом транзисторе VT1, дросселе L1, диоде VD1 и конденсаторе С4 собран повышающий преобразователь, управляющие импульсы для которого вырабатывает микроконтроллер DD1. С подвижного контакта подстроенного резистора R1 снимают и подают на вход АЦП микроконтроллера часть напряжении питания для его контроля. Кнопкой SB1 включают фонарь и регулируют яркость его свечения. Пять …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/35687
Для реализации проекта понадобится 4 светодиодных матрицы 8х8, 4 сдвигающих регистра 74HC595 и управляющий микроконтроллер TINY13A. Задача заключается в том, чтобы зажечь все 256 светодиодов от нашего 8-выводного микроконтроллера TINY13A. Для этого дела выводов на данном микроконтроллере явно маловато, по этому будем расширять порты регистрами сдвига. Что бы всё работало я написал небольшую «детскую» программку, …
Читать далее
Постоянная ссылка на это сообщение: http://meandr.org/archives/35659
meandr.org
ATTiny13 — GetChip.net
Устройство этой статьи собрано на ATtiny13 и предназначено для управления тремя нагрузками 220 вольт при помощи бытового ИК-пульта. Сделано устройство на базе уже знакомой Вам универсальной платы ИК-драйвера. Устройство является ревизией ранее сделанного устройства управления нагрузками. На первый взгляд, функционал устройства остался прежним, но изменения есть — ниже я о них напишу. Предыстория создания… Читать далее »
Раздел: ИК-управление Метки: 1WIR, ATTiny13, IR, МодулиПродолжая тему «Подстраиваемого светодиода» и преследуя цель опробовать в деле умную светодиодную ленту на базе WS2812B (NeoPixels) родилось новое устройство — Adjusty strip — продвинутый индикатор уровня! Ленту на пробу мне предоставил магазин DiyLab.com.ua Если Вам понравится устройство и Вы захотите его повторить, то ленту в Украине можно приобрести в этом-же магазине — ссылка на… Читать далее »
Раздел: Светильники Метки: ATTiny13, WS2812BЧто такое Adjusty LED? Допустим, в Вашей светомузыке стоят цветные светильники (красный – низы, зеленый – центр, синий – верха) и Вам надоело именно такое распределение цветов по частотам. Что делать? Конечно, менять светильники местами или менять светодиоды на другие в самих светильниках! Но можно сделать гораздо удобней – установить в светильник подстраиваемый RGB-светодиод, цвет… Читать далее »
Раздел: Светильники Метки: ATTiny13, LEDПредставляю новое (ну почти новое) устройство — интерактивный обучающий стенд «Времена года» для маленьких детей. Дети нажимают кнопки на стенде и слушают информацию по выбранному месяцу или времени года. Автором идеи и ее исполнителем является Валентин Горбунов. Мною только делались прошивки для модулей стенда. Несколько следующих статей будет посвящено этому стенду. Как видите, Валентин постарался… Читать далее »
Раздел: Стенд ВГ Метки: ATTiny13Контроллер доступа с ключами TouchMemory (DS1990A) предназначен для управления электромагнитным замком. Устройство выполнено на базе микроконтроллера ATtiny45 (или ATtiny13). Устройство предельно простое и дешевое в изготовлении. 1 Схема устройства: Контроллер может быть выполнен на одном из двух микроконтроллеров ATtiny45 или ATtiny13. Различия будут заключаться в количестве запоминаемых ключей и некотором функционале (схема и… Читать далее »
Раздел: Полезные устройства Метки: ATTiny13, ATtiny45Сегодняшним устройством будет датчик приближения на инфракрасных лучах. Датчик собран на недорогом микроконтроллере Attiny13, прост в изготовлении и не нуждается в какой либо наладке. Видео работы датчика: Чем отличается такой датчик от, скажем, датчиков движения заводского исполнения (которые, кстати, стали очень доступными и недорогими)? Главное отличие – это область применения. Готовые датчики все-таки… Читать далее »
Раздел: ИК-управление Метки: ATTiny131 Сомнения. Я долго сомневался в необходимости написания программы для управления компьютером от IR-пульта. С одной стороны, существует много аналогичных устройств/программ (как платных, так и бесплатных) с хорошей функциональностью и ничего нового в эту область я добавить не смогу. С другой стороны, раз уж аппаратная часть нами собрана (преобразователь IR-to-UART) почему бы не использовать ее… Читать далее »
Раздел: ИК-управление Полезные программы Метки: ATTiny13, IR, Программы1 Отмазки. Смотрю я на дату последней статьи и вижу — давненько я ничего не писал для блога :(. И причина даже не в том, что писать было не о чем, скорее наоборот, сразу взялся за столько проектов, что трудно было довести до ума хоть один из них. Кроме того, на работе в последнее время… Читать далее »
Раздел: ИК-управление Метки: 1WIR, ATTiny13, UARTИмея устройство IR-to-UART, которое выдает по UART код нажатой на IR-пульте клавиши , совсем не сложно сделать прошивку для прямого дрыганья ногами микроконтроллера. Единственная проблема в том, что заранее неизвестно какой пульт мы будем использовать или какую клавишу задействуем. Придется приделать к программе кусок, позволяющий изучать нужные кнопки. Этим мы сейчас и займемся! Согласитесь, очень… Читать далее »
Раздел: ИК-управление Метки: 1WIR, ATTiny13Пришло время обкатать новую универсальную плату для IR устройств. Для начала соберем что-то несложное. Решил сделать преобразователь IR сигналов от бытовых пультов в UART команды — давно обещал. Это устройство показательно для блога – это именно готовое решение для Вашего проекта, поэтому постараюсь сделать его максимально полезным. Как должно работать это устройство? Да очень просто!… Читать далее »
Раздел: ИК-управление Метки: 1WIR, ATTiny13, SMD, UARTwww.getchip.net
ФОНАРИК НА МК ATTINY-13
Выбросили вот такой фонарик. Cтоял в нём свинцовый аккумулятор и галогенка на 55 Вт.
Забрал, решил ему переделать питание на литий и лампу на светодиоды. Спаял с черырех кусков тестолита, что-то типа лампочки на 10 светодиодов 5730.
Сразу скажу, что лучше делать шестигранную основу, потому как пучок света имеет форму квадрата, что не совсем приятно для глаз. Чтобы не грелись, ток выставил 30 мА на каждый. Общий ток 300 мА. Спаял регулируемый драйвер на Атини 13.
Схема драйвера
Работа такая: при включении будет максимальная яркость. Если передернуть питание (выключить и включить) то яркость упадет до 50%, еще раз передернуть — упадет до 25%, еще раз — до 5%. Слабый режим мало пригоден, но если надо скрытно что-то осветить, то например замок открыть он позволит. Если на каком нибудь из режимов фонарь проработает более 1 секунды, то этот режим запоминается и при следующем включении фонарь будет работать на нем. Для смены опять передергиваем питание.
Есть защита от разряда. При падении напряжения до 3.3 вольт, яркость автоматически будет уменьшаться, для продления время работы. При снижении напряжения до 3.1 вольта, фонарь несколько раз мигнет и выключиться, чтобы не угробить АКБ. Такое напряжение отключения выбрано мной делителем на резисторах, можно подстроить под себя. Схема и прошивка, а также плата — в архиве. На плате дополнительно установлены несколько радиоэлементов не нарисованных в схеме, для повышения стабильности работы.
Драйвер — просто ШИМ. Изначально был рассчитан на работу с полевым транзистром Р-типа. Я его немного доработал под более распространенный транзистор. Данный транзистор без нагрева тянет 50 Вт нагрузку. Автор: Сергей-78.
Форум по LED фонарям
Обсудить статью ФОНАРИК НА МК ATTINY-13
radioskot.ru
Communities › Электронные Поделки › Blog › Емкостный сенсор на микроконтроллерах AVR и задержка итерациями. Примеры на Attiny13
Приветствую, любитель микроконтроллеров!
Вступление
Я продолжаю воплощать в жизнь свой первый, когда-то заброшенный, проект на микроконтроллере — лампу настроения. И, как и обещал в прошлый раз, по ходу разработки пишу небольшие заметки для начинающих. В этот раз рассмотрим как реализуется емкостный сенсор и задержки тех или иных операций итерациями основного цикла. Что касается самого проекта, могу сказать, что на данный момент написана полностью рабочая прошивка. Остается дело за схемой, печаткой и тестированием в нормальном железе. Затем выложу все на ваш суд.
Сенсорная кнопка
Принцип сенсорной кнопки прост. Берем небольшую площадку не важно какой формы, я взял кусок фольгированного текстолита (далее — кнопка). Подпаиваем к ней резистор большого номинала, порядка 1 МОм. И подключаем кнопку через этот резистор к питанию. Подпаиваем к кнопке провод, который соединит кнопку с ножкой микроконтроллера (далее — МК). Площадку изолируем тонким изолятором, хотя и без него будет работать. Площадка кнопки имеет определенную емкость, которая увеличивается, когда на ней находится палец человека.
Сенсорная кнопка. Сверху покрыта скотчем
Алгоритм работы следующий:
1. Переводим ногу МК в режим выхода.
2. Подаем низкий уровень, чтобы разрядить емкость кнопки.
3. Переводим ногу МК в режим входа и ждем когда емкость кнопки зарядится через резистор 1 МОм и на входе появится верхний уровень. Ожидание производится в цикле, в котором инкрементируется счетчик.
4. Сенсор зарядился — по значению счетчика можно судить о состоянии сенсора.
Обратите внимание, что подсчет итераций идет в атомарном блоке. Это значит, что в это время не будут срабатывать прерывания и не собьют нам время заряда сенсора.
Теперь для использования нашего алгоритма нам необходимо определить порог срабатывания кнопки. Для этого при инициализации мы выполняем калибровку. И берем в качестве порогового — значение на четверть большее, чем возвращается при свободном сенсоре.
Я проверял, на пустом сенсоре функция у меня возвращает стабильно 15. А когда кладешь на сенсор палец — около 30. Значит порог у нас будет где-то 15 + 15/4 = 18.
Ну а далее, в основном цикле программы нам остается проверять состояние сенсора и сравнивать его с пороговым значением. Если превысило — кнопка нажата, нужно отреагировать.
При необходимости, нужно в блок обработки нажатия добавить задержку, чтобы обработка не срабатывала несколько раз подряд.
Я, в течении нескольких дней, пользовался кнопкой, пока отлаживал прошивку для лампы — сенсор срабатывает четко!
Задержка итерациями основного цикла
Иногда в основном цикле требуется периодически производить какие-то действия с большой задержкой. Скажем 2 секунды. Однако, просто «спать» при этом нельзя, потому что можно проворонить, скажем, нажатие на сенсорную кнопку или другое событие. В этом случае есть простой выход. Берем счетчик, выставляем его в некоторое значение и каждую итерацию основного цикла декрементируем. Как только счетчик стал равен нулю — наша задержка истекла и пришло время для нашего действия. В основном цикле можно добавить минимальную задержку, которая не сделает появление ожидаемого события критическим.
Таким образом, с помощью счетчиков легко организовать различные задержки в основном цикле программы, не проворонив при этом критических событий и не расходуя драгоценные байты на дорогостоящие функции delay.
Результат
Дабы разбавить сухой текст, я хочу показать результат сегодняшнего урока наглядно. Т.к. я делаю лампу настроения, то я использовал RGB-светодиод. В основном цикле будем менять 7 цветов радуги + розовый по кругу. А при нажатии на сенсорную кнопку будем просто моргать белым цветом. Микроконтроллер будет работать на частоте 9.6 МГц, для этого достаточно от фьюзов по умолчанию убрать делитель на 8 (сделать CKDIV8 = 1). Фьюз байты удобно рассчитывать вот этим калькулятором.
Задержка между сменами цветов реализована циклами. Регулировка яркости светодиода реализована с помощью бинарной модуляции, о которой и подробно писал в прошлый раз.
Схема для модуляции в протеусе получилась немного отличающейся от реальной картины: пришлось реализовать емкостный сенсор на двух конденсаторах и переключателе. Питание 5В для МК на схеме отсу
www.drive2.com