Привет, старожилы.
Снова я со своими часами. Понимаю, что банально. Все уже было. Да, было. И именно поэтому на этот раз это не новые часы, а новые старые, так сказать. Я обновил свой предыдущий проект на 6 лампах ИН18 и подтянул его до "современного" уровня. Не долго думая, я взял свои предыдущие часы, о которых я говорил на страницах этого форума (отмотайте пару страниц назад) и заменил там лампы. Но на этом решил не останавливаться.
Первым делом перешел на другой микроконтроллер, попроще. Если раньше стоял распространенный и всем известный STM32F103C8T6, то теперь на его месте красуется STM32G070CBT6. Он чуточку попроще, но часикам это все равно. G-серия более молодая и призвана устранить недостатки предыдущей серии, это чувствуется уже на моменте проектирования платы.
Я решил расширить функционал часов и сразу же уперся в ограниченность со стороны органа управления в часах, который был единственный - кнопки на плате. Можно было пойти простым путем - добавить еще кнопок. Но. Не хотелось превращать часы в пианино, а ведь все к этому и шло, учитывая сколько новых фишек я хотел добавить. А именно:
1) управлять яркостью подсветки вручную
2) да и вообще менять режим управления яркостью с ручного на автомат и обратно
3) внести разнообразие в работу разделительных неонок и позволить менять им режимы работы
4) сделать таймер обратного отсчета
5) научить часы показывать температуру
6) добавить режим ночной тренировки ламп
Все это привело к внедрению самой главной фишки этих часов - пульт ДУ. Пультик взял самый простенький, ардуиновский. Присобачил его к схеме и начал менять прошивку. Интересной задачей встало именно управление часами с пульта. Именно он стал основным органом управления ими. Кнопки на плате я по сути сделал дублирующими соответствующие кнопки на пульте. Пришлось хорошенько продумать как и где часы будут реагировать на нажатия. Хотелось сделать это удобным и не ограничивающим пользователя, а на оборот дающего ему свободы.
Так как основной код был написан, то по сути перед мной встали три задачи:
1) адаптировать существующее под новый камень
2) внедрить поддержку пульта
3)написать новые функции, о которых упомянул выше
Первые два пункта скучные и неинтересные. С ними удалось справится как и самостоятельно, так и при помощи Яндекса.
С третьим пунктом хочется поделиться.
Взять например таймер обратного отсчета. Чтобы пользователю было легко и удобно решил продумать, как пользоваться этим режимом. С начала, как только мы в него попадаем, он попросит нас ввести данные по часам, минутам и секундам. После чего уж он приступит к отсчету. Но что если пользователь передумал или вообще попал сюда по ошибке? Просто проматываем настройки, оставляя везде 00, часы сами выйдут, поняв ваши намерения. Вводятся данные, кстати, не бесконечным прожиманием кнопок ВВЕР и ВНИЗ, а полноценно с цифрового блока. Если с кнопок на плате, чтобы ввести какое-то двузначное число, вам придется изрядно на них понажимать, то с пульта вы просто нажимаете две клавиши и результат готов, переходите к следующей настройке. А ведь для этого даже не надо вставать с дивана. Ну хорошо, вы все настроили, таймер начал свой отсчет, но событие произошло раньше или вас просто это утомило, вы всегда можете выйти, прервав работу таймера.
Или возьмем работу ночной тренировки ламп. Вы спите, а они трудятся. Здорово, не правда ли? Начиная с определенного часа и заканчивая в назначенное время, часы будут непрестанно прокручивать в лампах все цифры подряд. Но что если вы по среди ночи проснулись и хотите узнать, который час. Жмите любую кнопку и часы на короткий промежуток времени покажут вам который час, и вы с облегчением поймете, что еще есть время поспать и до будильника (а он к слову в часах тоже присутствует) еще много. Нажали еще раз пока светит время и часы покажут температуру в комнате. Все. Спустя пять секунд часы приступят к прерванному занятию - упорному труду по тренировке ламп.
Да, если вам показалось то что я тут описал банальщиной и вы не можете отделаться от ощущения "ну а как еще по-другому? я бы так и сделал" значит я был на правильном пути. В любом случае спасибо вам за прочтение. Хочу пожелать вам теплого и приятного времени. Добра всем.
В который раз хочу вас пригласить в наш чат в телеграмме -> Чат "ламповое время" https://t.me/nixietime