Summary: В статье рассказывается как сделать своими руками простой электронный кухонный таймер на микроконтроллере STM8S103F3P6 и энкодере.
Автор: Петров Иван Евгеньевич.
Кухонный таймер предназначен для отсчета установленного времени и подачи предварительных и по окончанию отсчета звуковых сигналов. Установка времени осуществляется инкрементальным энкодером. Время отображается на 2-х разрядном 7-и сегментном индикаторе с ОА. Таймер работает от 3-х пальчиковых батареек типа АА суммарное напряжение питание составляет 4,5В. Вне работы таймер находится в спящем режиме потребляя всего несколько мкА. В работе потребляет примерно 2-10 мА в зависимости от установленной яркости и зажжённых сегментов.
- Настройка шага установки/отсчета времени энкодером: 1 сек - 1 мин.
- Настройка яркости дисплея: автоматическая с приглушением яркости через 10 сек., ручной режим от 1 до 30.
- Настройка сработки 1-го предварительного звукового сигнала: Выкл. / от 1 мин. до 9 мин.
- Настройка количества сигналов по окончанию отсчета: Выкл. / от 1 до 99.
- Настройка частоты зв. сигнала: От 1 до 4 кГц (опционально).
- Настройка времени до автоматического отключения при неактивности: от 10 до 99 сек.
- Сохранение всех настроек в энергонезависимой памяти ЕЕПРОМ.
- Точность: 1 секунда.
- Диапазон: от 1-й секунды до 99 секунд / от 1-й минуты до 99 минут.
- Дискретность: 1 сек. / 1 мин.
- Шаг установки времени: 1 сек. / 1 мин.
- Индикация: 2-х разрядный 7-и сегментник с ОА.
- Звуковые сигналы: Отключаемые. 2-а предварительных и по окончанию счета установленного времени. За 10 сек до окончания счета имитация звука тик – так.
- Управление: Минимальное и простое на энкодере.
- Возможна корректировка времени счёта "на лету", во время счёта.
- Режим управления: Пуск, пауза-стоп.
- Контроль питания при каждом включении.
- Питание: 3 батареи типа АА. 4,5 В, потребляемый ток в работе 2...10 мА в зависимости от яркости, в спящем режиме не более 10...20 мкА.
- Компактная конструкция и простая схемотехника.
Как и любое другое электронное устройство кухонный таймер прошел стадию макетирования и отладку программного кода. Все было спаяно на макетных платах и между собой соединенны проводками. Сердцем и мозгами :) на данном этапе является отладочная плата на базе 8-и битного микроконтроллера STM8S103F3P6 приобретенная на Алиэкспресс.
После того как все было проверено в железе, приступил к разработке печатной платы. Печатная плата проектировалась в САПР Altium Designer 15 версии. Здесь следует оговорится, что я не являюсь инженером-топологом и большого опыта разводки плат на данный момент нету, но есть большое желание научится :). Тем не менее, печатная платка на мой скромный взгляд получилась весьма симпатичная. Не стал заморачиваться с ЛУТом, а сразу заказал изготовление печатных плат в сервисе PCBWay.
Сердцем таймера является микроконтроллер STM8S103F3P6 в корпусе TSSOP-20. Изначально тактирование микроконтроллера было настроено от встроенного генератора, но в ходе тестирования был замечен значительный уход времени. Этого удалось избежать применив внешний кварц на 4МГц.
Уровень напряжения на батарейках во время теста контролирует компаратор на LM393 выход которого подключен к порту PD2. Опорное напряжение для компаратора реализовано на TL431. На время теста питание на схему подается через ключ на полевике VT2 IRLML6402.
Для подключения индикатора используется сдвиговый регистр на DD2 74HC595.
Внимание! Прошивать необходимо с выпаянным резистором R3 потому что он подключен к порту SWIM и мешает программатору определить микроконтроллер. Я прошивал в программе STVP - ST Visual Programmer. Сразу после того, как загрузите прошивку на вкладке OPTION BYTE нужно настроить AFR0 в качестве альтернативной функции выбрать Port PC6 TIM1_CH1 и Port PC7 TIM1_CH2 и загрузите в МК. Отключите программатор и не забудьте резистор R3 запаять на плату. Более подробно о процессе загрузки ПО в микроконтроллер будет рассказанно в отдельной статье. После загрузки ПО таймер готов к работе.
После прошивки таймер работает с настройками по умолчанию, чтобы их изменить нужно войти в МЕНЮ. В выключенном состоянии нажмите и удерживайте кнопку энкодера не менее 1с до появления короткого звукового сигнала и символа буквы М. Далее, последовательно установите желаемые настройки в соответствии с описанием пунктов меню. Текущий пункт МЕНЮ отображается 1с на дисплее, после чего Вы можете его изменять по своему усмотрению вращая ручку энкодера влево или вправо, для перехода к следующему пункту меню нажмите кратковременно кнопку энкодера.
Р1 – Время отсчета таймера. 0 – отсчет в минутах, 1 – отсчет в секундах. По умолчанию 0 – отсчет в минутах.
Р2 – Яркость дисплея. 0 - автоматический режим с приглушением яркости через 10с. От 1 до 30 постоянный уровень яркости, где 1 - минимальная яркость, 30 - максимальная яркость. По умолчанию 0 – автоматический режим.
Р3 – Время подачи первого предварительного звукового сигнала в минутах. 0 – выключено (предварительных сигналов не будет). 1 – 9 время в минутах. Например Вы хотите, чтобы за 2 минуты до окончания счета прозвучал первый предварительный звуковой сигнал? Нет проблем. Для этого вращением ручки энкодера влево и вправо выберите цифру 2. Предварительные звуковые сигналы звучат только в том случае если установленное время отсчета таймера превышает время установленное в данном пункте МЕНЮ. По умолчанию первый предварительный звуковой сигнал звучит за 2 минуты до окончания отсчета времени. Далее, за 1 минуту до окончания отсчета прозвучит еще раз такой же звуковой сигнал.
Р4 – Количество звуковых сигналов по окончанию отсчета времени. 0 – Все звуковые сигналы выключены в том числе и предварительные. Тихий режим. От 1 до 99 количество звуковых сигналов. Длительность звукового сигнала 1с, время паузы 1с. По умолчанию 5 сигналов.
Р5 – Частота звукового сигнала. От 1 до 4 кГц. По умолчанию 1кГц. Внимание! Данная опция доступна только в случае использования прошивки для работы с пассивным излучателем (без встроенного генератора). В случае использования активного буззера (с встроенным генератором) в этом пункте производится настройка времени до автоматического отключения.
Р6 – Время до автоматического отключения в секундах. От 10 до 99 секунд. По умолчанию автоматическое отключение через 10 секунд бездействия. В случае использования прошивки с активным буззером данный пункт МЕНЮ выполняется в Р5. Нажмите еще раз на кнопку энкодера для сохранения настроек при этом на дисплее высветится надпись SP Save parameters и через 1с таймер перезагрузится и применит новые установки МЕНЮ. Все настройки сохраняются в энергонезависимой памяти EEPROM.
Если в режиме МЕНЮ некоторое время не производится никаких действий таймер переходит в спящий режим. Для того чтобы откатится к настройкам по умолчанию в выключенном состоянии нажмите и удерживайте кнопку энкодера не менее 2с до появления на дисплее символов dF default они буду отображаться 2с после чего таймер перезагрузится.
Что-бы включить таймер нажмите кратковременно на кнопку энкодера. Прозвучит приветственный звуковой сигнал с анимацией черточек на 7-и сегментных индикаторах. Далее появится надпись tb что означает тест батареек, если они разряжены то появится надпись Lb сокращение слов Low Battery и таймер перейдет в спящий режим. Необходимо заменить батарейки для дальнейшего использования.
Если же с батарейками все в порядке таймер переходит в режим установки времени, в крайнем правом разряде светится цифра 0. Вращением ручки энкодера влево и вправо установите желаемое время отсчета. Кстати, изменить время отсчета можно когда угодно. Для начала отсчета нажмите кратковременно кнопку энкодера. Прозвучит короткий звуковой сигнал и начнет мигать точка в крайнем правом разряде. Если установлен режим с автоматическим приглушением яркости, то спустя 5 секунд дисплей приглушит яркость.
Далее, в соответствии с установками МЕНЮ если активен первый предварительный звуковой сигнал он обязательно прозвучит в установленное время и такой же сигнал прозвучит ровно за 1 минуту до окончания отсчета. За 10 секунд до окончания отсчета звучат короткие звуковые сигналы, и когда время выйдет прозвучат длительные прерывистые звуковые сигналы и таймер автоматически отключится через заданное время установленное в пункте Р5/Р6 МЕНЮ в зависимости от используемой прошивки. Когда остается менее 1 минуты на дисплее отображаются секунды в 2-х разрядах.
Если Вы уже запустили таймер, но вам понадобилось изменить время отсчета просто вращайте ручку энкодера влево или вправо при каждом повороте секунды обнуляются.
Если таймер запущен и вам нужно приостановить отсчет времени нажмите кратковременно кнопку энкодера, при этом цифры в разрядах будут мигать. Для продолжения нажмите кратковременно на кнопку энкодера, прозвучит короткий звуковой сигнал и таймер продолжит отсчитывать время.
Для остановки таймера нажмите и удерживайте кнопку энкодера до появления короткого звукового сигнала и обнуления времени. После чего таймер автоматически отключится.
https://domdevice.com/content/uploads/2021/03/24/KitchenTimer_v1.0.zip