Друзья, всем привет. Меня зовут Иван и в этой статье я расскажу вам как сделать часы своими руками или мой новый романтический проект Love Clock.

LoveClock 001

Love Clock - Это оригинальные электронные часы с функцией термометра и разнообразными анимационными эффектами.

Как появился проект?

Наверняка каждый радиолюбитель, да даже просто обычный человек видел проекты электронных светодиодных сердец. Их существует как правило 2-х разновидностей:

1) Простейшие - выполненные по типу мультивибратора на транзисторах или таймерах 555 серии. Стоят не дорого, эффекты тоже откровенно так себе :) но зато подходят для сборки начинающим.
2) По сложнее - выполненные на микроконтроллерах. В этом варианте конечно общая стоимость проекта подороже, но и возможностей значительно больше. Можно написать различные красивые эффекты, а не только переключение одной группы светодиодов на другую и обратно как в первом варианте. Как собака бегает за своим хвостом, все по кругу :)

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

LoveClock 002

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

LoveClock 011

Анимация светодиодного сердечка будет всегда напоминать вашей второй половинке о безграничной любви к ней и дарить приятные эмоции дома или на работе в офисе. Такие часы невозможно купить ни в одном магазине, но зато их можно сделать самому! Не забывайте, подарок сделанный своими руками всегда самый лучший. Если Вы верите в приметы, и решите подарить часы (это касается любых часов) пусть вам дадут любую денежную сумму, типа их у вас купили просто формальность для надежности. Подробнее читайте в интернете, наша статья не об этом.

Что часы умеют:

- Отображение текущего времени.
- Отображение температуры.
- Диапазон измерения температуры: -55...+125 гр.С.
- Точность измерения: ±0,5 гр.С. в диапазоне -10...+85 гр.С.
- Дискретность отображения: 0,1 гр.С.
- Попеременный режим отображения информации. Настраиваемый.
- Ночной режим. Настраиваемый.
- Снижение яркости дисплея в ночном режиме по установленному времени, с возможностью полного отключения дисплея и сердечка.
- 7 уровней яркости дисплея в дневном режиме.
- Эффекты для сердечка разделены на 2 группы. Настраиваются.
  1 группа - эффекты, показываемые каждую секунду.
  2 группа - эффекты, показываемые в интервале от 1…60 минут
- Меню. Управление 4-я кнопками. «MENU», «UP», «DOWN», «ENTER».
- Сохранение настроек в энергонезависимой памяти EEPROM.
- Возможность сброса на установки по умолчанию.

Разработка печатной платы.

Печатную плату я разрабатывал как обычно в программе Altium Designer 15 версии меня она полностью устраивает. Печатная плата получилась 2-х слойная без каких либо заморочек. Размеры 90 x 85 мм. Паяется легко, радиоэлементы относительно крупные, к примеру SMD все 0805, светодиоды большие 5 мм, интегральные схемы все в паябельных корпусах никаких BGA и прочего тут нет. Изготовление печатной платы заказывал в Китае в компании PCBWay. В конце этой статьи я дам ссылку для заказа печатной платы.

Вот вам вид с лицевой стороны печатной платы:

LoveClock 003

А вот с обратной стороны:

LoveClock 004

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

LoveClock 005

LoveClock 006

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

Описание аппаратной и программной части.

Часы выполнены на 8 битном микроконтроллере STM8S103F3P6 в корпусе TSSOP-20. Информация выводится на 7-и сегментный 4-х разрядный дисплей с общим катодом. Управляет дисплеем специализированная микросхема фирмы Титан микроэлектроникс TM1628. C микроконтроллером она общается по аппаратному SPI интерфейсу. С порта PC6 - идут данные, с РС5 - тактовые импульсы, а с РС4 - стробирующие импульсы. Всю работу по выводу данных на дисплей берет эта микросхема, то есть не нужно использовать прерывания, чтобы обеспечить динамическую индикацию. Просто когда нужно отправляем данные на led driver и занимаемся другими делами.

В качестве часов реального времени (RTC) применена микросхема DS3231 в SOP-16 корпусе. Данная микросхема славится высокой точностью хода и простым управлением. С микроконтроллером RTC общается по шине I2C. В данной микросхеме присутствует "волшебный" выход именуемый SQW, который генерирует импульс положительной полярности каждую секунду.

В данном МК есть порт PC3 (TLI) - Top Level Interrupt (наивысший приоритет обработки прерываний) как раз таки на этот порт заведен сигнал SQW. То есть, как только пришел импульс от RTC она говорит STM8 Эй, бро? бросай все дела нафиг уже целая секунда прошла :), давай быстрей переходи в обработчик прерываний и устанавливай флаг! В обработчике этого прерывания устанавливается специальный флаг в 1 назвал я его Flag1Sec, а в основном цикле программы проверяется этот самый флаг и когда он в 1 с RTC считываются данные и когда это необходимо будут показываться для вас на дисплее и сразу после этого флажок сбросится в 0. После этого микроконтроллер будет постоянно проверять установился ли флаг о прошествии 1 секунды времени в обработчике прерывания и весь процесс будет повторяться бесконечно, то есть пока часы включены. Зачем что-то усложнять? Только все самое необходимое ИМХО.

LoveClock 007

Сердечко - реализовано на 14-и красных 5мм светодиодах слегка матовых :) я их раздобыл еще на прошлом месте работы, позаимствовал с ненужных лицевых панелей со старых компьютеров. Они там штатно показывали активность HDD естественно. Вам рекомендую использовать матовые, слишком сверхяркие возможно будут слепить - но это не точно :)), яркость вообще настраивается от 1...100%. Так это было отступление. Продолжаем.

Управляют светодиодами 2-а сдвиговых 8-и битных последовательных регистра 74НС595 работающих все по тому же аппаратному SPI. Такие микрухи применяются в рекламных бегущих строках, да и на Али экспрессе стоят копейки. Управлять яркостью сердечку помогает аппаратный ШИМ (по буржуйски PWM) на таймере TIM2, а именно канал 3 выход которого идет на порт PA3 это 10-й контакт микроконтроллера. В качестве ключа N-канальный полевой транзистор VT1 - FDN337N.

Тактирование МК осуществляется от встроенного HSI генератора на 16МГц, программные задержки реализованы на таймере TIM4 без использования прерываний. Программа написана на языке Си в среде разработки ST Visual Develop v4.3.12 & компиляторе Cosmic. Старался максимально возможно прямой записью в регистры без использования каких либо библиотек.

Данные отображаются на дисплее в попеременном режиме. К примеру 10 сек. показывается время, затем 3 сек. температура ну и все сначала. Как долго показывать решаете только Вы. Настраивается в специальном простом МЕНЮ, в нем же можно например включить/отключить эффекты для сердечка, а так-же настроить другие опции о них мы поговорим позднее.

Датчик температуры подключен к порту PD2. В качестве датчика температуры используется всем известный народный цифровой DS18B20 который работает по шине 1WIRE. Для достоверности показаний его необходимо разместить за пределами корпуса часов. При тестировании я припаял его сразу на плату и O My God :)) заметил, что чем дольше часы работают, тем больше завышение температуры в среднем на 1-2 градуса Цельсия. К печатной плате проводки от него припаиваются к контактным площадкам на обратной стороне платы. Каких либо разъемов я не стал делать, при желании Вы можете разместить какой либо разъемчик на корпусе самих часов и подпаяться к плате, в принципе никаких проблем.

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

Диод Шотки VD1 в качестве защиты от переполюсовки.

Вся конструкция питается от стабилизированного источника +5В с током нагрузки не менее 500мА (зависит от установленной яркости). К контактным площадкам на обратной стороне платы подключается программатор для заливки прошивки по SWIM интерфейсу, все контакты подписаны какой провод куда паять проблем не составит.

Показ времени:

LoveClock 008

Показ температуры:

LoveClock 009

Так выглядят часы с обратной стороны:

LoveClock 010

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

Описание работы:

При включении часов, Вы увидите бегущую строку «Dom Device» далее, элегантно появится надпись «LOVE» и светодиодик за светодиодиком включится сердечко :). Затем на экране сразу отображается время и далее в зависимости от опций меню выполняется работа.

Все пользовательские настройки МЕНЮ хранятся в энергонезависимой памяти ЕЕПРОМ и считываются при каждом включении. Так-же проверяется наличие подключения датчика температуры, и если он не подключен, то соответственно данные с него не будут отображаться в попеременном режиме и не возникнет никаких программных глюков.

В часах как я уже упомянул ранее, присутствует небольшое и простое МЕНЮ для пользовательских настроек. Ведь как мы все знаем на «вкус и цвет все фломастеры разные» :))

LoveClock 011

Еще такой важный момент, о котором следует сказать - это минимальная яркость дисплея в ночное время. Дело в том, что яркость ночью принудительно на самом минимуме и меньше ее сделать нельзя, а вроде как просится еще :)

Поэтому, совет всем кто будет повторять данный проект. Рассматривайте вариант немного затонировать дисплей тонировочной пленкой, какой именно не могу сказать нужно пробовать разные варианты. Опять таки все сугубо индивидуально, нужно подбирать / тестировать. Но, это все актуально когда дисплей светится приглушенно, если Вы выберите опцию в МЕНЮ полного отключения дисплея, то с этим можно и не заморачиваться. Кстати, поговорим ка мы сейчас об этом самом меню.

МЕНЮ:

Для того чтобы войти в меню последовательность действий следующая:

1) Отключите питание часов (если они были включены).
2) Нажмите на кнопку «MENU» не отпуская ее, подайте питание и удерживайте кнопку не менее 2сек. до появления на дисплее надписи «SET».
3) Отпустите кнопку «MENU». Часы автоматически перейдут к первому пункту меню.
Кнопка «MENU» - Возврат в главное меню и выход из меню.
Кнопка «ENTER» - Выбрать пункт меню.
Кнопки «UP» & «DOWN» - навигация по меню и корректировка параметров.

Заголовки меню отображаются на дисплее 1 секунду, после чего выводится текущее установленное значение пункта меню. Вы можете изменять его, нажимая на кнопки «UP» или «DOWN». После того как Вы выбрали, нужное вам значение нажмите кратковременно на кнопку «ENTER» или «MENU» (в зависимости от выбранного пункта меню, об этом я все подробно расскажу) для перехода к следующему пункту меню. Таким образом, установите желаемые настройки. После надписи "SAUE" часы сохранят текущие установки в энергонезависимую память EEPROM и перезагрузятся.

Для того чтобы сбросить настройки на дефолтные последовательность действий такая:

1) Отключите питание часов (если он были включены).
2) Нажмите одновременно на кнопки «UP» и «DOWN» не отпуская их, подайте питание и удерживайте нажатыми кнопки еще не менее 2с до появления на дисплее бегущей строки с надписью «DEFAULT». Настройки сброшены на значения по умолчанию.
3) Отпустите кнопки «UP» и «DOWN».

Описание пунктов главного Меню:

- «CLOC» Установка времени, ночного режима и его модификаций.
- «DISP» Установка длительности показа времени, температуры и яркости дисплея.
- «LOVE» Установки для сердечка.

Описание пунктов вложенных подменю:

Для возврата в главное меню кратковременно нажмите на кнопку «MENU». Настройки автоматически сохраняются при выходе из главного меню.

В пункте «CLOC»:
- «TIM» Установка времени. Устанавливаемый параметр мигает. Для установки используйте кнопки «UP» & «DOWN», например Вы уже установили час, для того чтобы перейти к установке минут нажмите кнопку «ENTER». После того, как установите минуты, нажмите на кнопку «MENU» чтобы применить настройки и выйти из подменю.

Небольшое пояснение, к примеру Вы установили 13:25 как только Вы нажмете кнопку «MENU» время установится/обновится. Порядок установки: Часы -- Минуты.

- «NIGH» Установка ночного режима. Устанавливаемый параметр мигает. Для установки используйте кнопки «UP» & «DOWN» по аналогии с предыдущими пунктами меню. Первым параметром настраивается час активации ночного режима. Например, 22 часа вечера (по умолчанию). Вторым параметром настраивается час деактивации ночного режима например 8 утра (по умолчанию).

- «NTYP» Установка вариантов ночного режима. Возможные варианты 0, 1, 2.
- 0. Дисплей и сердечко в ночном режиме будут полностью отключены.
- 1. Установится минимально возможная яркость дисплея и яркость сердечка снизится до 0,1%. Короче, сердечко будет светится едва заметно.
- 2. Установится минимально возможная яркость дисплея, но сердечко будет полностью выключено.

В режиме 0 часы условно спят, они по прежнему работают, просто ничего не выводят на дисплей и на сердечко. Для того чтобы их разбудить нажмите на любую кнопку и удерживайте ее нажатой не менее 1с. Часы проснутся и покажут Вам время в течении 5 секунд и столько же температуру, после чего снова уйдут в спячку до утра или до следующего нажатия на кнопку (-и).
Для того чтобы отключить ночной режим навсегда установите одинаковые значения активации и деактивации ночного режима. На дисплее Вы увидите надпись «OFF».

 

В пункте «DISP»:
- «TIM» Установка длительности показа времени. Для установки используйте кнопки «UP» & «DOWN». Минимальное время отображения 3 секунды, максимальное 60 секунд.

- «TMP» Установка времени показа температуры. Для установки используйте кнопки «UP» & «DOWN». Минимальное время отображения 1 секунда, масимальное 8 секунд.

- «DISP» Установка яркости дисплея в дневном режиме работы. Для установки используйте кнопки «UP» & «DOWN». Минимальный уровень яркости 1, максимальный 7.

 

В пункте «LOVE»:
- «LDAY» Установка яркости сердечка днем. То есть насколько ярко будет светить сердечко в дневное время суток. Для установки используйте кнопки «UP» & «DOWN». Если установить 0 сердечко днем будет выключено! Регулировка яркости осуществляется в процентах 1 - 100.

- «EFF1» Установка основных эффектов для показа каждую секунду.
0 - Эффекты выключены.
1 - Эффект плавного включения и отключения сердца (биение).
2 - Эффект поочередного включения светодиодов по часовой стрелке.
3 - Эффект поочередного включения светодиодов от центра по 2-м сторонам.

- «EFF2» Установка дополнительных эффектов. Периодичность их показа настраивается в следующем подменю.
0 - Эффекты перебираются автоматически начиная с 1.
1 - Эффект бегущий огонек 2-е стороны c заполнением.
2 - Эффект поочередного включения левой и правой стороны.
3 - Эффект бегущий огонек от центра по обоим сторонам.
4 - Эффект скручивания сверху и снизу.
5 - Эффект реверс скручивания (4 эффект наоборот).
6 - Эффект вращение по часовой стрелке.
7 - Эффект вращение против часовой стрелке.
8 - Эффект бегущие вертикальные полоски в стороны.
9 - Эффект бегущие вертикальные полоски в стороны с заполнением.

- «PERI» Установка периодичности показа дополнительных эффектов из предыдущего пункта. 0 - дополнительные эффекты выключены. Минимальный интервал спустя который эффект покажется составляет 1 минуту, максимальный интервал составит 60 минут. К примеру, если Вы установите значение 10, то через каждые 10 минут будет показываться выбранный вами эффект. Для установки периода используйте кнопки «UP» & «DOWN».

Для возврата в главное меню кратковременно нажмите на кнопку «MENU».
Для выхода из главного меню кратковременно нажмите еще раз на кнопку «MENU».

На дисплее отобразится надпись "SAUE" после чего часы перезагрузятся с обновленными настройками. Все настройки сохраняются в энергонезависимой памяти EEPROM, к примеру если в процессе работы отключат электричество ничего не собьется и заново ничего настраивать не придется. Если отключат электричество во время установок меню, то тогда да, все печально - придется делать сначала. Но это очень редкая ситуация, хотя возможная.

Технические характеристики часов:

- Микроконтроллер: STM8S103F3P6
- Тип RTC: DS3231
- Дисплей: 4 разрядный 7 сегментный 0,56 дюймовый светодиодный ОК
- Драйвер дисплея: TM1628
- Тип термодатчика: Цифровой, DS18B20, подключение по 3-х проводному кабелю.
- Защита от переполюсовки питания.
- Напряжение питания: 5 В.
- Потребляемый ток: зависит от установленной яркости дисплея и сердечка.
- Компактная конструкция и простая схемотехника.

Прошивка:

Внимание! Внимательно подключайте провода для программирования, в случае ошибки возможен выход устройства из строя! Защитный диод по входу к программатору не имеет отношение. Загружать прошивку необходимо с помощью программы STVP - ST Visual Programmer. Сразу, после того, как загрузите прошивку перейдите на вкладку «OPTION BYTE» нужно настроить AFR3 в качестве альтернативной функции выбрать из выпадающего списка Port C3 Alternate Function = TLI. Это очень важно без этой опции ничего работать не будет! После того как выбрали, нажмите вверху на значок красной стрелочки с микросхемкой и загрузите в микроконтроллер. Отключите программатор от платы. После загрузки ПО романтические часы-термометр готовы к работе с настройками по умолчанию.

Для заказа печатной платы в Китае:

1) Вам необходимо перейти по ссылке и зарегистрироваться в PCBWay

2) Перейти по ссылке и заказать печатную плату в PCBWay

3) На открывшейся странице в правой ее части нажмите на кнопку Add to cart и выберите необходимое количество плат для заказа.

Описание файлов в архиве:

  • LoveClock.s19 - файл прошивки
  • LoveClock_schematic.pdf - схема электрическая принципиальная
  • LoveClock_v1.0_пер_элем - перечень элементов к схеме
  • STVDProject - папка проекта с исходниками

СКАЧАТЬ ФАЙЛЫ

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

Автор: Петров Иван. По всем вопросам пишите мне в direct в инстаграм: domdevice

Благодарности:

  • За помощь и советы при создании проектов сестренке Ольге и подружке Екатерине
  • За разработку корпуса для Love Clock Ярославу
  • За изготовление корпуса компании rafet.kz Марине @trafuret и Юрию @kotyara__kuv
  • За качественные печатные платы компании PCBWay, отдельное спасибо Scarlett, Gloria, Anson

 

Все пока, до новых встреч!

KitchenTimer v1.0 011Кухонный таймер - предназначен для отсчета установленного времени и подачи предварительных и по окончанию отсчета звуковых сигналов. Установка времени осуществляется инкрементальным энкодером. Время отображается на 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 приобретенная на Алиэкспресс.

KitchenTimer v1.0 001

KitchenTimer v1.0 002

KitchenTimer v1.0 003

KitchenTimer v1.0 004

Печатная плата:

После того как все было проверено в железе, приступил к разработке печатной платы. Печатная плата проектировалась в САПР Altium Designer 15 версии. Здесь следует оговорится, что я не являюсь инженером-топологом и большого опыта разводки плат на данный момент нету, но есть большое желание научится :). Тем не менее, печатная платка на мой скромный взгляд получилась весьма симпатичная. Не стал заморачиваться с ЛУТом, а сразу заказал изготовление печатных плат в Китае - это и не дорого и качественно. Всем рекомендую сервис PCBWay постоянно заказываю только у них.

KitchenTimer v1.0 013

KitchenTimer v1.0 012

Сборка:

Плату паял сам. Специально при проектировании закладывал относительно крупные компоненты, к примеру резисторы применены в корпусе 0805, микросхемы в корпусах SOIC-8, SOIC-16 и TSSOP-20 чтобы любой радиолюбитель смог произвести монтаж в домашних условиях своими руками.

Пару слов о светофильтре. Для тех, кто захочет повторить данное устройство я рекомендую в обязательном порядке применить светофильтр, для этого можно использовать пленку для тонировки, или же применить что-то готовое. Нуууу, например от спутникового ресивера или DVD. Главное не забывайте учитывать тот момент, что светофильтр должен подходить под цвет индикатора, ну это так на всякий случай, для тех кто не в курсе :). Без использования светофильтра считывать информацию в дневное время суток будет проблематично.

KitchenTimer v1.0 005

KitchenTimer v1.0 006

KitchenTimer v1.0 007

KitchenTimer v1.0 008

KitchenTimer v1.0 009

Описание аппаратной части:

Сердцем таймера является микроконтроллер STM8S103F3P6 в корпусе TSSOP-20. Изначально тактирование микроконтроллера было настроено от встроенного генератора, но в ходе тестирования был замечен значительный уход времени. Этого удалось избежать применив внешний кварц на 4МГц.

Уровень напряжения на батарейках во время теста контролирует компаратор на LM393 выход которого подключен к порту PD2. Опорное напряжение для компаратора реализовано на TL431. На время теста питание на схему подается через ключ на полевике VT2 IRLML6402.

Для подключения индикатора используется сдвиговый регистр на DD2 74HC595.

Прошивка:

Я не считаю себя профессиональным программистом. Я самоучка и начал достаточно поздно после 30 лет. Прошивку я написал на языке программирования Си под свои нужды и задачи. SPL не используется в данном проекте, все через регистры для экономии памяти микроконтроллера и увеличения быстродействия. Да и использовать SPL для такого мк я считаю это извращение.

Внимание! Прошивать необходимо с выпаянным резистором 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-х разрядах.

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

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

Для остановки таймера нажмите и удерживайте кнопку энкодера до появления короткого звукового сигнала и обнуления времени. После чего таймер автоматически отключится.

KitchenTimer v1.0 014

KitchenTimer v1.0 015

KitchenTimer v1.0 010

KitchenTimer v1.0 011

Для заказа печатной платы в Китае:

1) Вам необходимо перейти по ссылке и зарегистрироваться в PCBWay

2) Перейти по ссылке и заказать печатную плату в PCBWay

3) На открывшейся странице в правой ее части нажмите на кнопку Add to cart и выберите необходимое количество плат для заказа.

 

Описание файлов:

  • Kitchentimer.s19 - прошивка под обычный пассивный электромагнитный буззер (без встроенного генератора).
  • Kitchentimer_activ_buzzer.s19 - прошивка под активный 5В буззер (со встроенным генератором).
  • Schematics.jpg - схема электрическая принципиальная.
  • KitchenTimer_v1.0_TopLayer3D.jpg - 3D вид с лицевой стороны.
  • KitchenTimer_пер_элем.xls - перечень элементов (обязательно проверьте распиновку индикатора перед покупкой).

СКАЧАТЬ ФАЙЛЫ

 

UPD: 30.06.2021 Обновлены файлы прошивок - исправлены мелкие ошибки. В частности после старта таймера, если покрутить на лету ручку энкодера был глюк в установке выдержки времени. Показания устанавливались не от текущего значения +/- а от первоначальной установки. Спасибо большое Сергею за обратную связь, это позволило оперативно исправить мелкие мои ошибки и сделать проект чуточку лучше.

Автор: Петров Иван Евгеньевич. Конструктивная критика приветствуется. Если у вас есть вопросы / пожелания / замечания / улучшения напишите пожалуйста мне на почту Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Яндекс.Метрика
Copyrigth © «DomDevice», 2021. Копирование контента без прямой индексируемой ссылки на domdevice.com - запрещено!