Таймер чистки зубов

в 11:02, , рубрики: diy или сделай сам, stm32, таймер, Электроника для начинающих

Доброго времени суток!

Таймер чистки зубов - 1

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

У нас две дочки. Каждый раз заходя в ванную комнату, чтобы почистить зубы, они просят засечь две минуты (из четырех детских щеток, только одна имеет таймер для чистки зубов). Чтобы процесс стал более интересным, а нам не приходилось по четыре раза в день напоминать детям выйти из ванной, я решил сообразить таймер. Песочные часы отпали сразу – это как-то не спортивно.

Таймер чистки зубов - 2
Рис.1. Схема таймера

Схема таймера очень проста и представлена на рис.1. Механические кнопки не очень подойдут для ванной, так как от нажатий мокрыми руками могут выйти из строя (плату покрою лаком), поэтому было решено кнопку сделать сенсорной. Я ранее уже использовал микросхему TTP223, соответственно ее и поставил, но теперь она будет работать как reset для микроконтроллера. Я подумал, что так как почти все время таймер выключен (если не брать в расчет что дети будут в него постоянно тыкать, зайдя помыть руки), то можно использовать режим standby, а при нажатии на кнопку просто ресетить МК.

Микроконтроллер использовал тот, что был в наличии – STM32F031G4. Маленький UFQFPN-28 очень удобен для миниатюрных поделок. Специально не сдал добавлять пищалку (для экономии батарейки) и buck-boost, чтобы габариты были минимальны.

Таймер чистки зубов - 3
Рис.2. Печатная плата top

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

Таймер чистки зубов - 4
Рис.3. Печатная плата bottom

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

Таймер чистки зубов - 5
Рис.4. Плата с компонентами bottom

Прошивка тоже совсем простая (генерил в CubeMX для IAR). Поморгать диодами при старте и погасить, затем зажечь с интервалом 30 секунд по одному, и снова поморгать перед сном.

Для standby используются всего пара строк:

DBGMCU->CR |= DBGMCU_CR_DBG_STANDBY;  

HAL_PWR_EnterSTANDBYMode();

После засыпания отваливается SWD, но так как у меня сенсор на ресете, то просто жмем тач и прошиваем.

Светодиоды использую китайские с ali. Мультиметром (UNI-T UT70A) получилось намерить примерно так:

  • 1 светодиод – 3,2mА;
  • 2 светодиода – 3,4mА;
  • 3 светодиода – 3,6mА;
  • 4 светодиода – 3,8mА;
  • В режиме standby 8uA.

Думаю, поиграться с частотой STM, и в режиме работы сделать ее минимальной.

Надеюсь, дети будут в восторге)

Спасибо за внимание!

Автор: the_bat

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js