Аналоговые часы в стиле ретро

Источник:

Давайте создадим часы, которые используют 3 аналоговых вольтметра для отображения часов, минут и секунд. Ретро стиль!

Примечание. Это не очень точно. Хотя расчет положения может быть максимально точным, обратная связь от манометра отсутствует, а дешевые китайские вольтметры могут быть не самыми точными, которые вы можете получить.

Есть еще несколько мелких проблем, которые мне нужно решить, и я все еще работаю над ними.

Обновления будут следовать

Историю версий и известные проблемы см. внизу.

Как это работает
Аппаратное обеспечение

Вольтметры управляются ШИМ с помощью Arduino nano, поскольку ШИМ преобразуется в аналоговое значение из-за инерции аналоговых датчиков. Чтобы поддерживать точное время, нам также нужны часы реального времени (RTC), которые представляют собой микросхему, специализирующуюся на сохранении точного времени, даже если питание отключено с помощью небольшой батареи.

Для установки времени используются 2 переключателя мгновенного действия.

Программное обеспечение

Примечание: в настоящее время программа поддерживает только 24-часовой режим, хотя я включил 12-часовую шкалу в шаблон PDF.

Arduino синхронизируется с RTC каждые 120 секунд. Значения часов, минут и секунд затем передаются в функцию, которая вычисляет аналоговое значение для датчиков (0-255) в зависимости от отображаемого числа и диапазона, который может отображать датчик.

Настройки/Константы

Есть некоторые настройки, которые вы, возможно, захотите изменить. В остальном вам не нужно ничего менять.

const int StepDelay = 3; //определяет скорость индикатора, особенно при отскоке к 0, 0= очень быстро, 5= средне, 10= медленно

Изменяет скорость датчика, когда ему приходится совершать большие скачки (программа запуска, при возврате к 0 и т. д.)

время настройки int = 200; //определяет, как долго нужно удерживать кнопку, чтобы активировать режим настройки

чем выше значение времени настройки, тем дольше необходимо удерживать кнопку для активации режима настройки и подтверждения установленных значений. Я считаю, что 200 — хорошее значение, но вы можете изменить его, если хотите.

const bool h12mode = ложь; //установите значение true, чтобы использовать 12-часовой режим

Настройка активации 12-часового режима, но реализована пока лишь частично. Не получится!

Процедура запуска

При запуске все три датчика перемещаются на максимум и обратно, чтобы вы могли проверить, могут ли они двигаться свободно. Через несколько секунд шкалы перейдут на текущее время.

Установка времени

Другая функция программы проверяет кнопки, и если кнопка 1 нажата достаточно долго, часы переходят в режим настроек, о чем свидетельствует установка всех трех датчиков примерно наполовину.

Удерживайте кнопку 1 еще раз, и вы сможете установить час с помощью кнопки 2. Удерживайте кнопку 1 для подтверждения. Затем установите минуты с помощью кнопки 2 и подтвердите с помощью кнопки 1. Секунды всегда установлены на 0. Часы выполняют процедуру запуска, а затем отображают вновь установленное время.

Калибровка

В режиме калибровки вы можете учитывать разницу в выходных напряжениях вашего Arduino, а также допуски дешевых вольтметров. Он работает путем определения максимального значения, которое затем будет отправной точкой для расчетов.

Калибровка работает аналогично настройке времени, но удерживайте обе кнопки, чтобы войти в режим калибровки. Стрелки подскочат примерно до значения ¼, указывая на режим калибровки.

Удерживайте кнопку 1 еще раз, и вы сможете настроить калибровку счетчика часов (подведите стрелку до самого высокого значения на вашей шкале (например, 24)) с помо��ью кнопки 2. Удерживайте кнопку 1 для подтверждения. Аналогично поступите с минутным и секундным калибром.

Эти значения будут сохранены в EEPROM вашего Arduino и сохранятся, даже если питание будет отключено.

Подсказка: если датчики ваших часов не будут двигаться после первой прошивки, попробуйте запустить режим калибровки, поскольку изначально значения калибровки в EEPROM могут быть равны 0.

Летнее время

Часы не адаптируются автоматически, так как для этого потребуется также установить дату и год, что не так просто с датчиками. Если ваше местоположение переходит на летнее время и обратно, вам необходимо переустанавливать время два раза в год. Это займет всего минуту, так что особых хлопот не будет.

Создание

Я постараюсь объяснить как можно лучше. Если что-то неясно, не стесняйтесь оставлять комментарии.

00:07
13
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.