Skip to content

coders-lair-dev/sc-iv18-clock

Repository files navigation

SC IV-18 Clock

Настольные часы на советском вакуумно-люминесцентном индикаторе ИВ-18. STM32F030 + MAX6921AWI + DS3231, питание от USB, повышающий преобразователь на NE555. Проект 2019 года.

IV-18 Clock


Подробный разбор схемы и принципов работы — в статье на сайте: 0x0001 — ВЛИ (VFD) ИВ-18

Предупреждение

Повышающий преобразователь на выходе даёт около 40 В, и выходной конденсатор сохраняет заряд некоторое время после обесточивания схемы. При наличии кардиостимулятора или других проблем с сердцем работа с этой схемой может быть опасна. Не прикасайтесь к токоведущим элементам при включённом питании и сразу после выключения.

Схема и плата

Схема и разводка выполнены в DipTrace.

Прошивка

Среда сборки

Проект создан в STM32CubeIDE (исходно версия 2019 года, совместим с актуальными релизами). Для открытия:

  1. File -> Import -> Existing Projects into Workspace
  2. Выбрать корень этого репозитория
  3. Build

Для работы с .ioc также потребуется STM32CubeMX

Что реализовано

  • Динамическая индикация (8 разрядов × 7 сегментов + точка)
  • Режим отображения времени (HH-MM-SS с мигающими разделителями)
  • Режим отображения даты (DD.MM.20YY)
  • Режим отображения температуры DS3231 и дня недели (NN°C D)
  • Автоматическое переключение режимов по таймауту
  • Переключение режимов вручную кнопкой BTN_3
  • Чтение времени/даты/температуры из DS3231 по I²C
  • Отладочный вывод через USB-UART (#define USE_USART) - исключён из кода
  • AT-команды (настройки/переключения режимов etc.)

Статус и TODO

Текущая прошивка — только отображение. Установка времени и даты выполняется через закомментированный вызов DS3231_SetDateTime() в main() (см. /* USER CODE BEGIN 2 */): раскомментировать, прошить, дать часам один раз синхронизироваться, закомментировать обратно, прошить повторно.

Пользовательская настройка часов через кнопки задумана, но не реализована:

  • Обработка BTN_1 — навигация по позициям внутри режима настройки
  • Обработка BTN_2 — инкремент/декремент значения на выбранной позиции
  • Циклы режимов MODE_SETTINGS_* в основном цикле main loop
  • Переход в режим настройки долгим нажатием BTN_3
  • Сохранение настроек обратно в DS3231

Эти точки в коде помечены комментариями TODO.

Стиль кода

Фиксирован в .clang-format в корне репозитория:

Применить форматирование ко всему проекту:

find Inc Src -name '*.c' -o -name '*.h' | xargs clang-format -i

Лицензия

MIT.

Сторонний компонент xprintf (файлы xprintf.c, xprintf.h) распространяется под собственной BSD-подобной лицензией — см. заголовок внутри самих файлов.

Автор

Sergey Petrov / coder's lair

MANV ET MENTE - by hand and mind.

About

Настольные часы на ВЛИ ИВ-18 (STM32F030, MAX6921AWI, DS3231)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages