Что можно сделать на attiny13. Схемы на ATtiny. Сборка и ввод в эксплуатацию

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

Купил я ATTiny13 довольно давно. Лежали они и ждали своего часа. И тут на работе я нашел настольную световодную елочку со сгоревшей начинкой. Вот тут то и вспомнил про этик контроллеры.
Но все по порядку

Начнем с характеристик ATTiny13

Это 8-битные контроллеры от c RISC-архитектурой и сверхнизким потреблением.
  • Память для программ (FLASH) - 1Кб
  • Энергонезависимая память данных (EEPROM) - 64 Байт
    ОЗУ - 64 Байт
    Число входов/выходов - 6
    Выходов ШИМ - 2
    Аналоговых входов (АЦП 10бит) - 4
    Таймер 8 бит - 1
    Напряжение питания 1.8 - 5.5В
    Рабочая частота - до 20МГц
    Потребление в активном режиме 1.8В/ 1МГц - 190мкА
    Потребление в режиме сна 1.8В/1МГц - 24мкА
  • Я приобрел тиньки в корпусе DIP8.


    По сравнению с они очень маленькие

    Программирование ATTiny

    Программировать я решил из Arduino IDE, Тем более я уже На сайте arduino.cc есть . Оттуда же . Распаковываю архив в папку c:\Program Files (x86)\Arduino\hardware\ и в Arduino IDE появляются дополнительные платы
    Теперь загрузка программ. Объем памяти микропроцессора всего 1Кб и никакой загрузчик туда не поместится. Поэтому загрузка скетчей производится программатором по ISP. USBAsp, которым я программировал Atmega328 работать с тинькой не захотел. Нужна специальная прошивка программатора, с которой я не стал возиться. . Для этого собираю такую схему:
    В Arduino IDE выбираю «Файл->Образцы->ArduinoISP» и загружаю в Ардуино скетч программатора. Затем выбираю «Инструменты->Программатор->Arduino as ISP». Теперь можно загружать простые скетчи в тиньку. Следует отметить, что ATTiny13 core for Arduino содержит ограниченный набор функций Ардуино.

    Список функций Апдуино, поддерживаемых ATTiny13 core

    • random()
    • randomSeed()

    • millis()
    • micros()
    • delay()
    • delayMicroseconds() *
    • analogRead()
    • analogWrite()
    • pinMode()
    • digitalRead()
    • digitalWrite()
    • pulseIn() (Untested)
    • shiftIn() (Untested)
    • shiftOut() (Untested)

    Применение ATTiny13

    Решил восстановить такую елочку со световодами
    Изначально там стояла галогенная лампочка на 12В и моторчик, который крутил цветной диск-светофильтр

    Все это благополучно померло. Собираю такую схему с кусочком светодиодной ленты:
    на макетной плате
    Пусть тинька плавно изменяет цвета ленты. Но для этого нужно 3-х канальный ШИМ, а у ATTiny13 аппаратно только два таких выхода. Значит ШИМ будет программный на 3 канала, управляемый встроенным таймером.

    Скетч трех-канального ШИМ для ATTiny13

    #include #include #include #include uint8_t counter=0; uint8_t lev_ch1, lev_ch2, lev_ch3; uint8_t buf_lev_ch1, buf_lev_ch2, buf_lev_ch3; ISR(TIM0_OVF_vect){ if (++counter==0) //счетчик перехода таймера через ноль { buf_lev_ch1=lev_ch1; //значения длительности ШИМ buf_lev_ch2=lev_ch2; buf_lev_ch3=lev_ch3; PORTB |=(1<

    После этого остается только закрепить плату и ленту в корпусе елочки. Белый скотч наклеиваю для улучшения светоотражения внутри черного корпуса


    Елочка готова. Светит не хуже чем с галогенной лампочкой


    Выводы:

    Микроконтроллеры ATTiny13 вполне годятся для несложных задач автоматизации.Их достоинства: низкое потребление и небольшая цена К недостаткам можно отнести очень маленькие ресурсы и довольно сложную (по сравнению с обычным Ардуино) настройку программирования.Но безусловно, эти микроконтроллеры достойно занимают свою нишу

Привет датагорцам!
Я затеял ремонтные работы дома, и мне понадобилась система автоматического управления освещением, которое должно выключаться днём и, соответственно, включаться ночью. Я фанат AVR-контроллеров и решил я поискать на просторах Интернета готовые наработки, но, к сожалению, не нашёл ничего подходящего.

Мне нужна была простая система, которая замеряла бы уровень освещённости, переключала освещение в режиме «день/ночь» и имела бы таймер задержки переключения реле.

Так родился этот проект - фото-реле на мелком восьминогом 8-битном МК ATTiny13. Зачем «городить огород» на МК, когда всё можно собрать на транзисторах и куче рассыпухи? Давайте считать мой проект учебным, направленным на освноение контроллерного сегмента электроники.

Схема фото-реле


Схема имеет собственный бестрансформаторный блок питания, построенный на C1, C2, R1, R2, стабилитроне D1 и диодном мосте BR1.

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

На стабилитроне получается напряжение 9,1 В. Это на 2 В выше, чем минимальное допустимое входное напряжение для нормальной работы стабилизатора 78L05 и достаточное для работы реле (хоть и номинальное напряжение катушки у него 12 В, об этом позже).
Диод D3 служит для защиты стабилизатора 78L05. Ёмкости C3, C4, C5 являются его стандартной обвеской. Транзистор Q1 это ключ для реле RL1, резистор R4 ограничивает базовый ток. Ёмкости C6, C7, C8 сглаживают шумы на линиях контроллера.

Подстрочные резисторы «LUX» и «TIME» служат для настройки порога срабатывания реле в зависимости от освещённости и регулировки задержки данного срабатывания от 1 секунды до 29 минут.

С питанием пришлось повозиться. Дело в том, что максимально допустимый ток через стабилитрон D1 (если он на 1 Вт) составляет 31 мА. Значит потребляемый ток реле вместе со стабилизатором напряжения U2 и контроллером U1 не должен превышать этого значения. Следует учесть возможные колебания Сети от 235 В до 190 В. При ёмкости C1 0,47 мкФ ток через стабилитрон составляет ок. 22 мА при уровне входного напряжения 220 В, теоритически есть запас.
Проведя опыты я выяснил, что применённое реле надёжно срабатывает при напряжении 6,9 В и токе 18 мА, а отпускание происходит аж при 2 В. На практике я наблюдал, как при сетевом напряжении 190 В реле продолжало нормально работать.

--
Спасибо за внимание!

Прошивки LED + UART для заливки (hex)
🕗 03/12/16 ⚖️ 20,82 Kb ⇣ 25 Здравствуй, читатель!

--
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»

Схему отлаживал в Proteus v8.4 SP0
🕗 03/12/16 ⚖️ 22,72 Kb ⇣ 31 Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.

Хорош! Халява кончилась. Хочешь файлы и полезные статьи - помоги мне!

--
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»

Печатную плату рисовал в SprintLayout v6.0

Программу писал в CodeVision AVR 3.12 (исходники ):

Это небольшое устройство разработано, прежде всего, для диабетиков, но для него можно найти гораздо более широкий спектр применений. Его задача — сигнализировать о прохождении заданного отрезка времени, измеряемого с момента нажатия кнопки.

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

Устройство используется для измерения одного из четырех возможных периодов времени: 15 минут, 30 минут, 1 час или 2 часа. Отсчет времени сигнализируется быстрым миганием светодиодов, а конец отсчета миганием и звуком. Для питания предусмотрена одна батарея типа CR2032, поэтому напоминатель очень легкий и миниатюрный.

Конструкция

Принципиальная схема предлагаемого решения показана на рисунке ниже.

Использование микроконтроллера ATtiny13A компании ATMEL позволило значительно упростить конструкцию устройства. Этот тип микроконтроллера идеально подходит для использования в данном случае. Он имеет небольшой корпус SO8, возможность использования напряжения от 1,8В и различные режимы снижения энергопотребления. Кроме того, это один из самых популярных и дешевых микроконтроллеров этого класса, который доступен практически в любом магазине электроники.

Для питания используется литиевая батарея типа CR2032, обеспечивающая напряжение 3В, что вполне достаточно для питания компонентов устройства.

Звуковое оповещение об истечении заданного промежутка времени производится с помощью пьезоэлектрического излучателя со встроенным генератором. Он достаточно громкий и его можно услышать даже тогда, когда устройство спрятано, например, в кармане. Управление звуковым излучателем осуществляется с помощью транзистора VТ2 (BC847).

Запуск обратного отсчета и остановка осуществляется одним нажатием кнопки SW1, контакт которого предварительно подтянут R6 (10кОм) к плюсу питания.

Такой же резистор установлен на выводе RESET микроконтроллера, чтобы предотвратить случайное изменение его логического уровня. Подобное изменение может быть вызвано по причине внешнего электромагнитного поля или воздействием на микроконтроллер слишком большого количества статического электричества.

Выбор временного интервала производится путем переключения одной из четырех секций переключателя SW2, типа DIP-SWITCH. Замкнутая секция подключает на минус питания один из четырех резисторов (R7 до R10), образуя с резистором R11 .

Микроконтроллер, подавая высокий логический уровень на резистор R11, измеряет с помощью АЦП (аналого-цифрового преобразователя) напряжение, которое образуется на делителе.

Таким образом, для задания времени используются всего лишь два вывода микроконтроллера. Помимо этого, данный контур можно отключить, изменив уровень вывода PB1 на низкий, что значительно сократит потребление питания.

Сборка и ввод в эксплуатацию

Миниатюрный напоминатель собран на двусторонней печатной плате размером 46мм х 31мм. В первую очередь необходимо припаять элементы поверхностного монтажа, которые находятся на нижней стороне платы – микроконтроллер, транзисторы и другие. Далее два светодиода на противоположной стороне. В конце необходимо припаять компоненты сквозного монтажа на той же стороне, что и светодиоды.

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

Эксплуатация

Находясь в спящем режиме, схема не проявляет никаких признаков работы. После однократного нажатия кнопки SW1 считывается информации с делителя и начинается отсчет времени, о чем свидетельствует однократное мигание светодиодов. С этого момента они будут мигать каждые 1 секунду до окончания обратного отсчета. Если все переключатели SW2 находятся в положении OFF, светодиоды не будут мигать, а устройство перейдет в спящий режим.

По истечении установленного времени светодиоды начинают мигать интенсивно, а звуковой излучатель издает короткие звуки. Остановка производиться кратким нажатием SW1.

Важно отметить, что как только обратный отсчет запущен, вы не сможете остановить или изменить его продолжительность. Это позволяет избежать ситуации случайного выключения отсчета времени, которое может произойти при случайном нажатии кнопки SW1.

Потребляемый ток в состоянии покоя составляет около 0,5 мА, поэтому теоретически батареи номинальной емкостью 200 мАч должно хватить на 45 лет в режиме ожидания. На практике же можно рассчитывать на время сопоставимое со сроком годности батареи. Во время обратного отсчета среднее потребление тока составляет около 8 мА, а в состоянии оповещения повышается до 15 мА.

(11,5 Kb, скачано: 304)

Н. Салимов, г. Ревда Свердловской обл. Доступность литиевых элементов питания с длительным (до 10 лет) сроком службы позволяет радиолюбителям разрабатывать компактные устройства бытовой электроники: часы, таймеры, фонари, термометры. Один из вариантов термометра с питанием от литиевого элемента описан в предлагаемой статье.

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

Н. Салимов, г. Ревда Свердловской обл. Предлагаемый термометр способен работать с двумя датчиками температуры и может измерять её в двух местах (например, в жилом помещении и на улице) с дискретностью 0,1 °С в пределах от -55 °С до +99,9 °С. На страницах журнала за последние годы были опубликованы описания нескольких подобных устройств. В частности, статья Е. Лукьяненко и др. "Термометр повышенной точности с датчиком DS18S20" ("Радио", 2014, № 5, с. 48, 49). Но описанный в ней прибор, на мой взгляд, имеет существенные недостатки. В частности, применённый микроконтроллер ATmega8515-16PU избыточен для столь простого устройства, а трёх разрядов индикатора недостаточно для полноценного отображения информации. Эти недостатки устранены в термометре, схема которого изображена на рис. 1.

Ю. Мартынюк, п. Затобольск, Казахстан Выпускаемые сегодня промышленностью новогодние гирлянды укомплектованы, как правило, автоматическими переключателями, реализующими различные световые эффекты, но некоторые потребительские характеристики этих переключателей неудовлетворительны. Частота переключения гирлянд в большинстве случаев выше желаемой, нередки выходы из строя тиристоров или даже интегральной микросхемы, Поэтому самостоятельное конструирование автоматов световых эффектов всё ещё остаётся актуальным.

Система предназначена для независимого управления четырьмя объектами. На пульте есть четыре кнопки, а на приемнике есть четыре выхода. Каждая кнопка пульта отвечает за свой выход приемника, каждое нажатие кнопки меняет состояние соответствующего выхода приемника. На выходах приемника установлены ключи на полевых транзисторах. Состояния каждого выхода может быть только два - ключ открыт и ключ закрыт. Выходы можно нагрузить светодиодами оптореле или оптосимисторов, обмотками электромагнитных реле или постоянными резисторами, если нужно получение логического сигнала необходимого уровня. Дальность действия системы в основном зависит от яркости излучающего ИК-светодиода, используемого в пульте, и чувствительности интегрального фотоприемника, используемого в приемнике. Практически она не меньше 15 метров.

Как-то раз в руки к автору этих строк попало весьма интересное устройство, рожденное в СССР, в далеком 1976 году -его просто отдали за ненадобностью. Звали это устройство АДЗ-101У2, и оно представляло собой типичный образчик советского конструктивизма: тяжелый двадцатикилограммовый "чемодан", с ручкой для переноски в верхней части и мощным однофазным трансформатором внутри. Но самое интересное, что у этого "чемодана" напрочь отсутствовала задняя панель - и вовсе не потому, что прибор успел ее "посеять", нет. А дело здесь было в том, что обе его панели являлись... передними! С одной своей стороны "чемодан" представлял собой сварочный аппарат, а с другой - зарядное устройство для автомобильных аккумуляторов. И если как "сварочник" он особых эмоций не вызвал - еще бы, ведь всего-то 50 А переменного тока; то вот "зарядник" - вещь в хозяйстве, безусловно, нужная.

Шишкин С. В публикации представлено 9-каналыное реле времени, каналы которого выполнены на микроконтроллерах ATTINY2313. Это многоканальное реле времени (далее реле времени), которое управляет девятью нагрузками. Количество независимых каналов - 9. Нагрузки, подключенные к каналам, имеют свой временной интервал задержки, относительно момента нажатия кнопки (СТАРТ), и свой рабочий интервал. В общем случае все интервалы могут быть разными.

Итак идея проста. При подаче питания на ножке 3 МК (PB4) появляется высокий уровень и начинается отсчет назад. По истечении заданного срока высокий уровень пропадает. Все. Все то оно все, да вот еще же четыре ножки есть выбранного мной ATTINY13. А четыре ножки это четыре бита, а четыре бита это 16 комбинаций ноликов и единичек. Улавливаете? Еще нет? Тогда вот схема.

Для начинающих радиолюбителей, осваивающих микроконтроллеры, часто необходимо собрать и проверить прошивку или схему в действии на реальном микроконтроллере (например proteus зачастую просто отказывается адекватно симулировать схему с микроконтроллером). Для этих целей, и не только начинающие, используют отладочную плату и или макетную плату. Для микроконтроллеров Attiny13/15 и совместимыми с ними по распиновке выводов других микроконтроллеров, была изготовлена отладочная плата оснащенная минимальным необходимым функционалом. Такая плата имеет небольшой компактный размер и дешева в сборке.

На фото выше в микроконтроллер загружена программа и сама отладочная плата подключена к питанию 5 вольт через программатор от USB порта ноутбука.

Отладочная плата для микроконтроллеров Attiny13/15 построена по следующей схеме:

Для подключения микроконтроллера к отладочной плате используется разъем для микросхем в корпусе DIP-8 или по простому разъем "кроватка" для восьми-ногих микросхем. Данный разъем можно использовать как в обычном исполнении с прижимными контактами, так и в варианте с цанговыми контактами. Применение такого разъема обуславливается возможность быстрой замены микроконтроллера в отладочной плате при возможных неисправностях, связанных с самой микросхемой. Например, по неопытности можно залочить микроконтроллер. Быстрым решением будет заменить его в отладочной плате, а в будущем вылечить микроконтроллер с применением других средств - RC - цепочка или Fuse bit doctor"a. Также возможно будет быстро сменить марку микроконтроллера - например Attiny13 заменить на Attiny15 в рамках одной платы.

Ниже представлена готовая отладочная плата со стороны монтажа и со стороны пайки:

В качестве перемычек, помимо привычных проволочных, использовались резисторы типоразмера 1206 номиналом 0 Ом.

Итак, немного о том, что есть на отладочной плате. Начнем от питания - напряжение на микроконтроллер берется от программатора от USB порта (5 вольт), это напряжение к микроконтроллеру может подаваться напрямую или через три диода, понижающих напряжение до 3,2 - 3,3 вольт. Применение диодов обусловлено их минимальной стоимостью. При желании Вы всегда можете подредактировать печатную плату и применять стабилизаторы напряжения типа AMS1117 3,3 вольта. выбор питающего напряжения осуществляется перемычками Jmp1 и Jmp2 на отладочной плате. Удобно использовать джемпера с "ручками" как на фото, чтобы не изголяться при надобности перекинуть питание. Также питание от программатора на микроконтроллер поступает через ограничительный резистор R2. Его номинал можно брать от 0 Ом до примерно 10 Ом в зависимости от предпочтений. К выводу PB5 (reset) микроконтроллера резистором R1 подтягивается напряжение питания, это необходимо для предотвращения самопроизвольного перезапускания контроллера при наличии каких-либо помех. Также к этому выводу подключена тактовая кнопка для возможности вручную перезапустить микроконтроллер в процессе отладки какой-либо схемы или прошивки.

Так как приоритетом данной отладочной платы является изготовление не самых сложных проектов, то на плате предусмотрены разъемы с цанговыми контактами для подключения трех светодиодов. Ограничивающие ток резисторы подобраны таким образом, чтобы можно было использовать светодиоды трех цветов одновременно (красный, зеленый и синий) - 180 Ом для красного цвета и по 100 Ом для зеленого и синего цвета. Такой разброс номиналов обусловлен тем, что падение напряжения на красных светодиодах, как правило, меньше, чем на других цветах. Такое решение позволит применять RGB светодиоды.

Однако применять можно и обычные светодиоды для индикации чего-либо.

Специально для программирования на печатной плате предусмотрен стандартный 10 пиновый разъем для программаторов AVR, например USBasp или AVRdoper или других.

Для подключения к выводам микроконтроллера различных компонентов или устройств предусмотрено несколько разъемов (штыревых соединений). С одной стороны два типа разъемов (PLS-5 и PBS-5) - включают контакт напряжения питания и контакт нулевого потенциала (Gnd), а также PB0, PB1, PB2 микроконтроллера. С другой стороны также два типа разъемов (PLS-4 и PBS-4 ) - включают контакт нулевого потенциала (Gnd) и контакты выводов микроконтроллера PB3, PB4, PB5. Отдельно имеется разъем PLS-3, включающий три контакта подсоединенных к напряжению питания Vcc. Подробнее смотрите схему электрическую принципиальную.

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

Для того, чтобы сразу же протестировать отладочную плату после изготовления была разработана простая прошивка, управляющая тремя светодиодами - они по очереди загораются и тухнут. Все необходимое будет приложено ниже. Эта не сложная отладочная плата может послужить толчком для изучения микроконтроллеров для новичков в этом деле - ведь ничего сложного в этом нет, если иметь самые начальные знания в языках программирования Cи или Assembler.

Для того, чтобы запрограммировать микроконтроллер Attiny13 тестовой программой (прошивкой) необходимо знать конфигурацию фьюз битов:

К статье прилагается тестовая прошивка для микроконтроллера Attiny13, проект для этого же микроконтроллера с использованием тестовой прошивки, исходный код в программе , печатная плата, нарисованная в , а также видео работы тестовой прошивки на отладочной плате.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит

ATtiny13A

1 ATtiny15 В блокнот
VD1-VD3 Выпрямительный диод

1N4148

3 В блокнот
C1 Электролитический конденсатор 10 мкФ 1 В блокнот
C2, C3 Конденсатор 100 нФ 2 В блокнот
R1 Резистор

10 кОм

1 В блокнот
R2 Резистор

4.7 Ом

1 От 0 до 10 Ом В блокнот
R3, R5 Резистор

100 Ом

2 В блокнот
R4 Резистор

180 Ом

1 В блокнот
LED1 Светодиод Красный 1 В блокнот
LED2 Светодиод Зеленый 1 В блокнот
LED3 Светодиод Синий 1 В блокнот
S1 Тактовая кнопка TC-A109 1 В блокнот
X1 Разъем PLS-4 1 4 штырька В блокнот
X2 Разъем PBS-4 1 В блокнот
X3 Разъем PLS-5 1 5 штырьков В блокнот
X4 Разъем PBS-5 1


Что еще почитать