Доброго времени суток, уважаемый читатель!
Возникла необходимость создания такого полезного девайса для кухни как таймера с обратным отсчетом времени. В интернете много подобных устройств. Но как то не подошло. То кнопок слишком много, а то еще помимо кнопок энкодер подключают. Еще хотелось бы отображать часы реального времени и обойтись одним энкодером.
В общем как всегда, если что то нужно делай сам.
Готовое устройство выглядит так:
Комплектующие заказывал на Алиэкспресс. Ссылок не даю, все это там легко найти.
Сбоку видна пищалка для озвучки окончания времени таймера
Питание от внешнего блока 5вольт
Внутри Arduino Uno с самодельным шилдом. Можно без изменения скетча применить Nano, Mini, Pro Mini.
На плате :
МС14490 - для устранения дребезга энкодера. С этой микросхемой работает даже убитый энкодер без программной реализации антидребезга.
DS3231 - часы реального времени.
60N03 - mosfet, N - канал, TO-252. Тразистор по параметрам избыточен. Поставил потому что есть много.
Пьезоизлучатель на 5в (на 3в3 то же работает)
Дисплей MAX7219
Все радиодетали установлены со стороны дорожек. Печатку делал по лазерно - утюжной технологии.
Схему не рисовал, на печатке все видно.
Библиотеку энкодера брал отсюда - энкодер
Работа с таймером:
При вращении энкодера влево - выбираем предустановленное время таймера.
При вращении энкодера вправо - устанавливаем произвольное время таймера ( 99 часов )
При выборе времени медленное вращение энкодера +/- 1 к значению. При быстром вращении +/- 10 к значению.
Короткое нажатие кнопки - старт таймера и после старта - пауза вкл/выкл
Долгим нажатием кнопки энкодера при запущенном таймере выходим из режима счета в режим отображения реального времени.
При удержании кнопки энкодера и включении питания переходим в режим коррекции часов реального времени. Энкодер влево/вправо - часы/минуты, так же быстрое (+/- 5)/медленное вращение (+/- 1).
Скетч, печатка шилда, фотки в архиве - ссылка
По скетчу сильно не пинайте, я только учусь.
Кому интересно подписывайтесь, буду выкладывать еще свои поделки.