Перейти к содержанию

Аналоговые часы на STM32 и FreeRTOS

Очень давно хотел сделать себе аналоговые часы на вольтметрах и купил все комплектующие. Но все руки никак не доходили собрать все вместе.

Front plane

Идея подобного девайса витает в воздухе и кто-то точно делал похожее. Нужна ли RTOS в таком проекте или настолько мощный МК? Нет. Но мне хотелось – остальное подождет

Были закуплены следующие компоненты:

Сколько, шт.Что
1BluePill, STM32F103C8T6 плата
291С4 Вольтметр на 3V (можно и 3, чтобы отображать секундную стрелку)
1RTC DS1302, модуль
1CR2032, батарейка для модуля часов
2ЦАП MCP4725, модуль
2Светодиод выводной, оранжевый (по желанию)
2Резистор выводной, 220 Ом
1KLS1-DC-025B-2.0 (DS-026B), Гнездо питания на панель 2.1х5,5 мм
1Блок питания на 5 В. с соответствующим разъемом
2PB-05-7B-G, Кнопка без фиксации

Самая популярная плата отладки на STM32 подешевела в последнее время. Или заканчивается кризис или куча подделок. Второе вероятнее. Но для часов вполне сгодится.

Пины сконфигурированы вот так:

wiring

Для наглядности подключения – накидал небольшую схему.

Для ЦАП выставляем разные адреса 0x60(для часов) и 0x61(для минут). Светодиоды подключены к ножкам, сконфигурированным в Open-Drain. Использование модуля часов позволит не терять настроенное время, т.к. у него есть выделенное питание через батарейку-таблетку.

Вольтметры легко разбираются – это нужно для вклеивания новых циферблатов. Файлы с циферблатом лежат в \CAD\FrontPanelLogo.frw(КАД КОМПАС) и \CAD\FrontPanelLogo.pdf. Приклеил их на прозрачный тонкий скотч

Всего две кнопки:

SET_LED_INP включает/выключает подсветку и используется при настройке времени.

MENU_INP используется для навигации по меню.

Настройка времени:

  • Нажать кнопку 1
  • Кнопкой 2 настроить время в часах. Начнет моргать светодиод часов
  • Нажать кнопку 1
  • Кнопкой 2 настроить минуты. Начнет моргать светодиод минут
  • Нажать кнопку 1
  • Кнопкой 2 включить или выключить подсветку
  • Нажать кнопку 1
  • Кнопкой 2 включить или выключить “аналоговое” подергивание стрелок вольтметров
  • Нажать кнопку 1
  • Настройка закончена

Step-файлы лежат в /Step. В папке /Cad лежат файлы для КАД КОМПАС – версии 15.2.16. Можете подготовить любой корпус на свой вкус, я его делал быстро и особо не заморачивался.

Front plane
Front plane

Результат меня удовлетворил, работает как и хотелось

Собирать проект необязательно. В папке /Code/Relase лежат собранные файлы прошивки (*.srec *.elf *.hex) на любой вкус.

Проект в свободном доступе на гите, можете модифицировать, использовать или сделать что-то своё

Comment

programel