Простой кухонный таймер на ATtiny2313. Кухонный таймер на ATMega8 Кухонный таймер с цифровой индикацией своими руками


У бабушки моего сына скоро будет день рождения. Так как я его увлёк микроконтроллерами, то пришла идея подарить какой-то прибор, естественно, на микроконтроллере и сделанный своими руками. Как и все бабушки, наша бабушка не является продвинутым пользователем всяких устройств, и в принципе у нее ничего особенного из электроники нет. Так что, можно сделать любой, не очень сложный прибор.

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

Подумав немного, сын решил делать продвинутый кухонный таймер . Я ему немного помог со схемой. Основные функции нашего подарка:

  • Режим таймера до 3 часов
  • Режим секундомера
  • Громкий сигнал
  • Компактный размер
  • «Вечные» батарейки - аккумуляторы, зарядка как у телефона, по micro usb
  • Ну и конечно игры - кубик (случайное число от 1 до 6), лото, бомба (очень веселая игра)

Подбираем компоненты

В качестве индикатора, мы выбрали светодиодный трех-разрядный индикатор с общим анодом - у него всего 11 выводов, очень удобно. Купить не сложно, и в принципе, довольно экономично в энергопотреблении (но конечно не LCD).

Микроконтроллер - STM8S003F3P6 - с ним мы уже работали, так что все знакомо. ST-link уже есть.

Микросхема заряда и вся обвязка у МК, как у велокомпьютера .

В качестве пищалки, очень компактная и громкая пищалка HC0903A

Аккумулятор - LIR2032. Всего 45 mAh, но этого хватит на 40 часов непрерывной работы таймера. От кварцевого резонатора решили отказаться (нужны выводы), особенная точность нам не нужна, ну и у STM8 довольно точный внутренний генератор. Микросхема заряда - TP4056.

Управление - 2 тактовые кнопки. Прибор все время находится в спящем режиме, потребление меньше 5 мкА, спать может долго. Плату защиты для аккумулятора делать не стали, особенно не нужна. У МК нижний предел 3В, так что сильно не просядет. При включении идет музыка, включается индикатор (бросок тока), и если аккумулятор севший, то МК перегрузится и перейдем в спящий режим, что является сигналом к зарядке. Заряжается он током 100 мА около 40 минут, что в принципе очень быстро. Схему и программу можно скачать на github, ссылка в конце.

Корпус сын решил делать сам из монтажного короба 40 х 16 мм. Раскрасил акрилововыми красками, в качестве стекла вырезали кусок из DVD диска. Получилось очень симпатично.

Трассировку платы сын делал сам в Kicad. Расположение компонент придумал он же. Кнопки по бокам от индикатора, пищалка внизу, аккумулятор на ней. Все вошло плотно, ничего ни куда не болтается. Плата двухсторонняя. Делали из одностороннего стеклотекстолита толщиной 0.8мм с помощью метода холодного переноса тонера. Две половинки платы соединили и зафиксировали перемычками. Из разъемов - micro usb, питание и программирование.

Программа

Данный индикатор имеет общий анод, соответственно выводить в один момент времени можно только один разряд. Для вывода одновременно трёх разрядов необходима динамическая индикация.

Программно это делается очень просто. Задействуется таймер, и через равные интервалы времени, с большой частотой, например каждые 300 мкс, будем выводить по одному разряду по кругу - 1-2-3-1-2-3. Нам будет казать что цифры светятся одновременно, как в кино. Если дополнительно добавить еще пустые разряды, то можно управлять яркостью. То есть, будет такая схема вывода информации - 1-2-3-пусто-пусто-пусто-пусто-1-2-3-пусто-пусто… Управление яркостью нужна для того, чтобы снизить энергопотребление. Таким образом, например без применения яркости, один разряд потребляет 24 мА, а с применением можно сократить до 1-2 мА. При этом цифры все еще четко и далеко видно. Сын поигрался с частотой, яркостью, когда все перестало мерцать, ему понравилось. Оказалось, программировать такой типа индикатора довольно легко и удобно.
Второй сложный момент - это придумать простой, как говорится, интуитивно понятный интерфейс, когда у нас 3 разряда индикатора и 2 кнопки. Но я считаю, ему это удалось.

Придумали с кнопками так:

  • Правая кнопка - долгое нажатие, смена режимов, их три - Таймер, Секундомер, Игры
  • Правая кнопка - одиночное нажатие, смена подрежима. У таймера - это выбор предустановленных времен, у секундомера - выбор обычного секундомера и с подтверждением, у игры - соотв. Различные игры
  • Левая кнопка - одиночное нажатие - старт/стоп или ход в игре, долгое нажатие - режим настройки, программирования
С индикатором так:
  • Когда выбран таймер - то сразу выводится некое число из предустановленных настроек (Например 5,15,30 минут), их можно перепрограммировать, хранятся в ПЗУ
  • Когда выбран секундомер - то 000
  • Когда игры - L - лото, 6 - бомба, С - кубик.
  • На индикатор цифры выводятся хитро, так как разряда только три, то выводим максимальное число значащих элементов. Например, таймер - 200 минут 30сек - то выводим 200., если таймер 10мин 15с, то выводим 10.1, если 1 минута 25с, то 1.25. При этом чтобы понимать, что таймер или секундомер запущен, точка мигает в такт секундам.
  • Когда секундомер остановлен, например на 10 мин 25с то показываем попеременно 10. и.25, раз в секунду, чтобы видеть и секунды тоже.
Программа оказалась не такой простой, сын писал ее почти 3 недели в школьное время, с небольшой моей помощью. Очень много условий, разные флажки - старт, стоп, работа с памятью и т. д. Но результатом он был очень доволен.

Испытания

Первые испытания прошли в школе. Вместо кубика, гадание на оценках. Гадал весь класс. Потом бомба - супер игра. Прибор загадывает случайное время от 5 до 20секунд и начинает тикать каждую секунду. Вы его передаёте по кругу. Когда таймер дойдёт до нуля - сигнал взрыва. Тот, у кого в руках прибор, проиграл.

Первые испытания секундомера и таймера прошли на ура. Засекали разное время, сверяли с точными часами, ошибка 1-2 секунды на час. Отрабатывали звук сигнала.

Вручение подарка

Наступил день рождения. Бабушка быстро прошла обучение и была очень рада. Все вместе испытали Лото, полностью автоматизированное. Каждые 5 секунд прибор пищит и выдает новое число, из оставшихся в мешке. Играют все, водит прибор! Кто не успел тот опоздал.

Итоги

Итак, прибор получился просто отличный. Практика программирования очень интересная. Если вам тоже интересны микроконтроллеры, то можете сделать себе (или в подарок) такой же и попрограммировать. Вы обязательно научитесь:
  • делать платы
  • паять smd компоненты
  • программировать STM8
  • работать с аккумуляторами
  • обрабатывать кнопки
  • издавать различные звуки
  • работать с таймерами и обрабатывать временные события
  • бороться с энергопотреблением
На github выложена схема и плата в формате Kicad. Выложен начальный проект для STM8, там самое сложное - динамическая индикация, инициализация микроконтроллера, сложная обработка кнопок - короткое, двойное, долгое нажатие. Остальную программу предлагаю написать самостоятельно, это ведь так интересно!

ТАЙМЕР ДЛЯ КУХНИ

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

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

Основой устройства является счетверённый операционный усилитель LM 324, причём три его елемента являются отдельными таймерами, а четвёртый элемент – генератором звука. Нажав на один из переключателей, соответствующий желаемой выдержке времени, допустим SA 1 – 5 минут, питание начинает поступать на схему, а конденсатор С1, включенный параллельно контактам переключателя, перестаёт быть замкнутым и начинает медленно заряжаться через резистор R 1. Таким образом, в момент включения потенциал на инвертирующем входе ОУ ниже чем на неинвертирующем, следовательно выход ОУ имеет потенциал питающего напряжения. Инвертирующий вход звукового генератора на елементе D А1.4 через диод VD 1 оказывается под высоким потенциалом, что блокирует его работу – динамик молчит. По прошевствии времени, необходимого для зарядки конденсатора С1 через резистор R 1, потенциал на инвертирующем входе ОУ превысит значение потенциала на неинвертирующем. При этом на выходе ОУ сформируется низкий потенциал – диод VD 1 будет закрыт и заработает звуковой генератор. С вывода 14, элемента D А1.4, сигнал сформированый генератором, через резистор R 4 и диод VD 1 поступает на базу транзистор VT 1, к которому подключен звукоизлучатель – раздаётся звуковой сигнал. Для выключения устройства необходимо повторно нажать на переключатель SA 1, что отключает схему от питания и одновременно разряжает конденсатор С1 – таймер снова готов к работе.

Время отсчёта таймера определяется номиналами элементов С1 – С3 и R 1 – R 3. При указанных значениях этих деталей, мы будем иметь следующие интервалы выдержки времени; S А1 - 5 минут, S А2 -10 минут, S А3 - 20 минут. При желании можно изменить время выдержки каждого из таймеров увеличивая или уменьшая номиналы соответствующих резисторов и конденсаторов.

Налаживание устройства сводится к подбору конденсатора С4 определяющего тональность и резистора R 5 - громкость звучания.

Печатная плата не разрабатывалась, так как был использован навесной монтаж. Резисторы МЛТ - 0.125, Времязадающие конденсаторы С1 – С3 с возможно меньшим током утечки, остальные К73 - 17. Диоды VD 1- VD 4 – КД521А, транзистор VT 1 заменим на КТ817А,Б. Светодиод красного свечения HL 1, можно использовать мигающий, типа UL-506S11FD-FB, что позволит получить эффект отсчёта времени. Переключатели S А1 – S А3 - любые малогабаритные. В качестве звукоизлучателя подойдёт небольшой динамик с сопротивлением обмотки 8 Ом, можно использовать небольшой звукоизлучатель от китайских мягких игрушек, имеющий размеры 12х10 мм. Следует лишь добиться достаточно высокой громкости звука, иначе таймер можно не услышать на фоне работающей бытовой техники. Питание осуществляется от батареи 6в. Изменение питающего напряжения в пределах 4.5-12 вольт почти не оказывает влияния на время выдержки таймера, при этом лишь уменьшается громкость звука.

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

В данной статье пойдет речь о простом таймере для кухни и не только ….

Возможности и основные характеристики таймера.

1. Время установки таймера от 1 до 90 мин.

2. Звуковая сигнализация включения и выключения таймера.

3. Звуковая сигнализация окончания установленного времени.

4. Принудительное выключение таймера до истечения установленного времени.

5. Самостоятельное выключение таймера по истечении 10 с после его включения в случае, если после включения таймера время выдержки не было установлено или не запущен отсчёт времени.

6. Питание устройства как от трёх батареек, так и от внешнего адаптера напряжением от 7 до 10 В.

7. Ток потребления таймера в выключенном состоянии в несколько раз меньше тока саморазряда пальчиковых батареек.

Схема устройства.

Алгоритм работы

Таймер включается нажатием кнопки энкодера. На индикаторе высвечивается минимально возможное время выдержки, равное 1 мин. Вращением ручки энкодера вправо происходит увеличение времени выдержки, а при вращении ручки энкодера влево - уменьшение, начиная с 90 мин. Таймер выключится самостоятельно, если в течение 10 с после установки времени не была нажата кнопка запуска. Для запуска отсчёта времени необходимо снова нажать кнопку энкодера. При этом таймер начинает отсчёт установленного времени, а на индикаторе единиц минут с периодом в 1 с будет мигать децимальная точка, индицирующая режим обратного отсчёта. По истечении установленного времени на индикаторе таймера высветится цифра 0 и прозвучат 5 тональных сигналов. После этого цифра 0 погаснет, а децимальная точка будет мигать ещё 10 с. По истечении и этого времени, в напоминание, снова прозвучат 5 тональных сигналов, и таймер выключится. Остановить работу таймера можно принудительно в любой момент, нажав кнопку энкодера.

Основой таймера служит микроконтроллер ATtiny2313, который тактируется от внутреннего генератора частотой 8 МГц.Энкодер с кнопкой фирмы Bourns типа PEC12-4220F-S0024. Зуммер КХ-1205 фирмы Kingstate. В архиве 2 прошивки – под индикаторы с ОК и ОА, схема, схема и печатная плата в формате программы Eagle. Ниже предоставлена схмема адаптера питания таймера.

Адаптер питания

Фото готового устройства

В архиве 2 прошивки – под индикаторы с ОК и ОА, схема, схема и печатная плата в формате программы Eagle.

Обсудить на форуме

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

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

Для управления режимами таймера имеется пара кнопок. Первая "SET" для установки временного интервала, вторая "RESET" для сброса в любой момент если потребуется «переиграть» ситуацию и выставить другой временной интервал. А так же звуковой зуммер, в качестве звуковой индикации о состоянии таймера в разный период работы.

Таймер сделан с минимальным 5 минутным дискретным интервалом, таких интервалов можно набрать сколько угодно (до 255) если удерживать кнопку в нажатом состоянии.

Принципиальная схема кухонного таймера:

После отпускания кнопки начинается запуск таймера и обратный отсчёт, особенность таймера - звуковая индикация (глаза и руки не участвуют в контроле, а только слух), при установке «пикает» столько раз сколько нужно раз набрать 5-ти минутных интервалов. Например: нужен интервал 30 минут, значит надо нажать кнопку "SET" и удерживая её в нажатом состоянии, набрать «пиликаний» на 6 раз и отпустить кнопку. С момента отпускания кнопки "SET", зажигается светодиодный индикатор, свидетельствующий о том, что таймер запущен, и гаснет только по окончании всего цикла, также с момента запуска начинается обратный отсчёт, зуммер «пикает» по прошествии очередного дискретного 5-тиминутного интервала столько раз сколько их ещё осталось до завершения полного цикла таймера. А когда весь цикл пройден, в конце цикла звучит длительный «пиликающий» сигнал на протяжении около 10 секунд оповещающий о финале.

После этого, таймер переходит в режим ожидания перейдя по команде sleep в энергосберегающий режим Power down где потребляемый ток составит меньше микроампера в программе задействован, внутренний RC-генератор тактовая частота которого выбрана 128 / 8 кГц.

Данное устройство будет полезно любому человеку, которому приходится постоянно готовить, и надежно защитит вашу кухню от чрезмерного количества дыма. Этот прибор, как следует из названия - кухонный таймер. Он предназначен для отсчитывания интервалов при приготовлении различных блюд. Таймер имеет несколько клавиш, при помощи которых можно легко установить время от 1 минуты до 99 часов. Обратный отсчет начинается автоматически, через 3 секунды после установки времени. Благодаря громкой пищалке вы точно услышите когда блюдо готово. Устройство собрано на основе микроконтроллера ATMega8.

Описание конструкции

Сердцем устройства является микроконтроллер U1 (ATMega8) с кварцевым резонатором X1 (16 МГц) и обвязкой из двух конденсаторов C1 (22 пФ) и C2 (22 пФ). Стабилизатор U2 (7805) с обвязкой из конденсаторов C3 (100 мкФ) и C4 (47 мкФ) стабилизирует напряжение питания 5В, необходимое для корректной работы микроконтроллера и связанных компонентов. На разъем Zas подается напряжение 7-12В. Если у Вас имеется блок питания с напряжением 5-6В, можно исключить из схемы стабилизатор напряжения. Зуммер B1 и аноды дисплея W1 управляются транзисторами T1 - T5 (BC556), с обвязкой из резисторов R1 - R8 (3.3 кОм), R17 (3.3 кОм) и R18 (3.3 кОм). Резисторы R9 - R16 (330 Ом) ограничивают ток через сегменты дисплея. Разъем Prog и один вывод R используются для подключения программатора. Клавиатура таймера подключена к разъему Sw.

Изготовление

Рисунок печатной платы для устройства есть в архиве в конце статьи. Установка деталей начинается с пайки двух перемычек. Затем устанавливаются все резисторы и прочие элементы в порядке от меньшего к большему. Кварц X1 должен быть "низкий" - он устанавливается под дисплей - в противном случае он просто не поместится туда. Зуммер B1 можно припаять на плату, как это показано на фотографиях, но позже выяснилось, что после закрытия корпуса звук слишком тихий (несмотря на отверстия, просверленные в корпусе). Лучше приклеить зуммер на одну из сторон корпуса (так, как это показано на последнем фото), и соединить проводами с платой. Клавиатура состоит из 5 кнопок без фиксации 12х12мм непосредственно на лицевой части корпуса, так что их толкатели находятся чуть выше поверхности корпуса. Для этого устройства в качестве блока питания хорошо использовать зарядное устройство для телефона, из-за его небольшого веса и размеров.

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

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

ATmega8A-AU

1 В блокнот
U2 Линейный регулятор

LM7805CT

1 В блокнот
T1-T5 Биполярный транзистор

BC556

5 В блокнот
C1, C2 Конденсатор 22 пФ 1 В блокнот
C3 100 мкФ 1 В блокнот
С4 Конденсатор электролитический 47 мкФ 1 В блокнот
R1-R8, R17, R18 Резистор 3.3 кОм 10 В блокнот
R9-R16 Резистор 330 Ом 8 В блокнот
W1 7-сегментный индикатор AF-05643FG-B 1 Или с аналогичной распиновкой В блокнот
B1 Пьезодинамик с генератором 1