Найти в Дзене
oleg gorshkov

Кухонный таймер на Tiny13 + TM1637

Здравствуйте! Предлагаю вашему вниманию мою версию реализации кухонного таймера. Устройство предназначено для того, чтобы засекать время в минутах, при приготовлении пищи. С моей точки зрения такое устройство должно обладать предельно простым интерфейсом с минимальным набором функций, чтобы все манипуляции можно было производить максимально просто и быстро, не отвлекаясь от основного дела, причем иногда мокрыми руками. Именно поэтому таймер телефона в этом плане не очень удобен. За основу своего таймера взял проект опубликованный Андреем Фроловым. Принцип работы и исходник были взяты оттуда. Но внесены некоторые изменения. Так в первоисточнике микроконтроллер постоянно запоминает установленное значение в EEPROM, и при включении питания таймер начинает работу с этого значения. Я же считаю, что это не совсем удобно, и лучше, чтобы при включение были бы всегда нули. Поэтому убрал из программы функцию работы с EEPROM, при этом немного освободилась память микроконтроллера, которой там был

Здравствуйте!

Предлагаю вашему вниманию мою версию реализации кухонного таймера.

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

За основу своего таймера взял проект опубликованный Андреем Фроловым.

Принцип работы и исходник были взяты оттуда. Но внесены некоторые изменения. Так в первоисточнике микроконтроллер постоянно запоминает установленное значение в EEPROM, и при включении питания таймер начинает работу с этого значения. Я же считаю, что это не совсем удобно, и лучше, чтобы при включение были бы всегда нули. Поэтому убрал из программы функцию работы с EEPROM, при этом немного освободилась память микроконтроллера, которой там было впритык. Оптимизировал принципиальную схему и сделал корпус.

схема принципиальная
схема принципиальная

Основным элементом схемы является микроконтроллер attiny13. Кнопки управления подключены к аналоговому входу (ADC2) микроконтроллера, через резистивный делитель. Активный звуковой излучатель (Бузер) подключен к пину PB2 микроконтроллера через транзисторный ключ. На самом деле транзистор здесь скорее для перестраховки, большинство бузеров можно подключать напрямую, у микроконтроллеров семейства AWR достаточно мощные выходы. Светодиод, подключенный к пину PB3 извещает о том, что счёт запущен, чтобы не сомневаться нажал на старт или забыл. Для индикации значений времени в минутах служит четырёхразрядный семи сегментный дисплейный модуль на основе микросхемы TM1637.

TM1637
TM1637

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

Для питания схемы требуется напряжение 5 вольт. Поэтому я реализовал питание от трёх мизинчиковых батареек (ААА) через DC/DC повышающий преобразователь – китайский модуль на основе микросхемы ME2108A50PG

повышайка на ME2108A50PG (сама микросхема с обратной стороны)
повышайка на ME2108A50PG (сама микросхема с обратной стороны)

Данный модуль способен работать при входном напряжение от 0,9 вольт, выдавая на выходе напряжение 5 вольт. Максимальный выходной ток 400 мА, но он зависит от входного напряжения, и максимум будет, когда оно близко к 5 В. На самом деле Повышающий модуль в данном случае не обязателен, и устройство способно работать напрямую от 3х пальчиковых батареек достаточно длительное время. Но его наличие позволит выбрать максимум из батареек.

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

так разместил
так разместил

Основную плату изготовил из фольгированного стеклотекстолита методом ЛУТ, на ней разместил микроконтроллер с обвязкой, бузер, транзисторный ключ, светодиод. Развёл печатку не очень удачно, поэтому PDF выкладывать не буду, да и в принципе такую простую схему легче распаять на макетной плате.

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

итог
итог

Тумблером включается питание, при этом загораются нули. Синей и жёлтой кнопками задаётся время в минутах ( - / + соответственно). Однократное нажатие вызывает изменение на единицу, удержание кнопки вызовет быстрое приращение. Красной кнопкой производится запуск счёта. Ей же его можно остановить. При запуске счёта загорается синий светодиод. По истечение заданного времени срабатывает звуковое извещение, светодиод гаснет. Звуковое извещение будет продолжаться до момента нажатия на красную кнопку.

Высокой точностью данный таймер конечно же не обладает, причём основная погрешность приходится на первую минуту, то есть чем больше время задано, тем меньше относительная погрешность. Но для готовки пищи точность вполне приемлема. Будут, например пельмени вариться 9,5 минут вместо 10, вряд ли для кого-то это критично.

В прикреплённой ссылке на Яндекс диск находится архив с прошивкой (hex) и исходный код для Atmel Studio 6.2

При прошивке Фьюз биты выставить "по умолчанию"

My_Timer.7z — Яндекс Диск

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