Фото-реле на микроконтроллере ATTiny13. Миниатюрный таймер-напоминатель на микроконтроллере ATtiny13A

Иногда нужно запрограммировать маленькую задачку, для которой даже Ардуино слишком избыточен. Для таких небольших задач могут подойти маленькие, недорогие и очень маломощные контроллеры 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 (исходники ):

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

Иногда требуется просто задать временной интервал, без особой микроскопической точности. Например, для приготовления пищи, где погрешность в несколько секунд за полчаса, час не играет важной роли. Исходя из этих соображений в качестве тактового генератора выбран внутренний RC-генератор. Стабильность которого зависит от температуры и изменения напряжения питания, поскольку микроконтроллер сохраняет свою работоспособность при напряжении 1,8-5,5 В. В качестве источника питания применил 3-х вольтовую батарейку (или 2 элемента по 1,5 В).

Данная простая мини-охранная сигнализация на микроконтроллере ATtiny 13 предназначена для охраны квартир, офисов, дач... При размыкании геркона сигнализация подаёт звуковой сигнал или при небольшой доработке можно сделать отправку SMS с мобильного телефона. Управление сигнализацией осуществляется ИК-брелками. Основные характеристики: динамическое питания фотоприёмника, пробуждение из режима "SLEEP" по прерыванию от сторожевого таймера в режиме "POWER-DOWN", и как следствие низкое энергопотребление - около 30мкА.

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

Проволочный шлейф, рассчитанный на обрыв провода при нарушении периметра;

Герконовый датчик, реагирующий на перемещение куска магнита над его контактами, при открывании двери, например, или пассивный инфракрасный датчик заводского изготовления, реагирующий на изменение положения объекта с инфракрасным излучением, (коим является тело человека - нарушителя, в зоне охраняемого объекта).

Это небольшое самостоятельное устройство, препятствующее несанкционированному запуску двигателя автомобиля, мотоцикла, катера, яхты... которое работает независимо от других охранных систем. Для снятия блокировки двигателя необходимо нажать кнопку в определенном месте (выбранным на усмотрение владельца автомобиля) в салоне автомобиля. Это может быть как отдельно установленная скрытая кнопка, так и использование штатной кнопки автомобиля.

Для начинающих радиолюбителей, осваивающих микроконтроллеры, часто необходимо собрать и проверить прошивку или схему в действии на реальном микроконтроллере (например 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

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

Таким образом, можно напомнить о необходимости измерения уровня глюкозы в крови через определенное время 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)