![](https://habrastorage.org/webt/kf/9-/jw/kf9-jwevd_sekilnlp_-ervkxgw.jpeg)
Эта статья для тех, у кого не все щетки в ванной имеют таймер, и кто не хочет использовать песочные часы.
У нас две дочки. Каждый раз заходя в ванную комнату, чтобы почистить зубы, они просят засечь две минуты (из четырех детских щеток, только одна имеет таймер для чистки зубов). Чтобы процесс стал более интересным, а нам не приходилось по четыре раза в день напоминать детям выйти из ванной, я решил сообразить таймер. Песочные часы отпали сразу – это как-то не спортивно.
![](https://habrastorage.org/webt/yn/z0/di/ynz0dieaj7n70tdbqwmqspauruu.png)
Рис.1. Схема таймера
Схема таймера очень проста и представлена на рис.1. Механические кнопки не очень подойдут для ванной, так как от нажатий мокрыми руками могут выйти из строя (плату покрою лаком), поэтому было решено кнопку сделать сенсорной. Я ранее уже использовал микросхему TTP223, соответственно ее и поставил, но теперь она будет работать как reset для микроконтроллера. Я подумал, что так как почти все время таймер выключен (если не брать в расчет что дети будут в него постоянно тыкать, зайдя помыть руки), то можно использовать режим standby, а при нажатии на кнопку просто ресетить МК.
Микроконтроллер использовал тот, что был в наличии – STM32F031G4. Маленький UFQFPN-28 очень удобен для миниатюрных поделок. Специально не стал добавлять пищалку (для экономии батарейки) и buck-boost, чтобы габариты были минимальны.
![](https://habrastorage.org/webt/hz/0c/qm/hz0cqmbl3qxqpn2rqakpknmddu8.jpeg)
Рис.2. Печатная плата top
На плате сделал всего десять переходных отверстий, и, чтобы не мозолили глаза, восемь из них расположил на площадках светодиодов. Также очень уж хотелось куда-нибудь прилепить картинку отпечатка пальца.
![](https://habrastorage.org/webt/mu/uu/t7/muuut7av1aj7acl9fly_vypjub8.jpeg)
Рис.3. Печатная плата bottom
Плату старался сделать как можно меньше, так как пока не знаю, буду печатать корпус или просто приклею за батарейный отсек на двухсторонний скотч к плитке или зеркалу.
![](https://habrastorage.org/webt/1o/u3/ir/1ou3irruebs43lawnqmwx4hqc0u.jpeg)
Рис.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, и в режиме работы сделать ее минимальной.
Надеюсь, дети будут в восторге)
PS:
![](https://habrastorage.org/webt/5a/ei/mi/5aeimimvj-trwjxe4pvxzswduiy.jpeg)
Дети в восторге!
Спасибо за внимание!
latonita
Ну и как обычно, вместо MCU можно простую RC-цепочку и пару компараторов, чтобы отслеживать 120,60,30 секунд)
the_bat Автор
Да ну, STM32F031G4 в компэле стоит 71р за штуку) А как же сначала поморгать всеми и потом тоже?)