Прочитав статью, Вы узнаете как были устроены часовые сети прошлого и как можно оживить древнюю технологию с помощью Arduino.
Однажды ко мне обратились с весьма интересной просьбой – восстановить работоспособность старинных часов 60-х годов выпуска. Выглядели они не очень презентабельно и подозрительно напоминали дверцу от шкафа. С первого взгляда казалось, что это кустарная поделка. Но в правом нижнем углу гордо красовалась надпись «Стрела», из чего следовало, что модель заводская.
Что сразу привлекло внимание — это механизм, вернее, его полное отсутствие. С обратной стороны часов располагается привод стрелок, представляющий собой странный двигатель с редуктором.
Двигатель, хоть и похож на шаговый, но имеет всего два вывода с одной-единственной обмотки. Редуктор изготовлен из латуни и его передаточное число равно 1:12, и таким образом выходит, что двигатель вращает минутную стрелку, а часовая просто следует за ней.
Экспериментальным путем выяснилось, что если подать на обмотку двигателя 24 вольта постоянного тока, то минутная стрелка делает один шаг. При смене полярности питания стрелка делает еще шаг. Очевидно, что управляющая часть всей этой электромеханической системы отсутствует. Небольшой взгляд в историю поможет понять, куда же она делась.
В 60-е годы, когда электроника еще только-только вставала на ноги, различными учреждениями, организациями и заводами для отображения времени применялись гибридные электромеханические часы. В первую очередь, необходимость в них возникла в сфере пассажирского транспорта – для более эффективной диспетчеризации маршрутов поездов, трамваев и автобусов.
Кусочек фотографии С.И. Ахмерова из фотоальбома 1962 г., Новосибирск. Часы, висящие на столбе, являются частью системы троллейбусного сообщения — водители сверяют по ним время.
Требовалось, чтобы несколько часов имели одинаковые показания, при том, что физически могли находиться довольно далеко друг от друга, например в пределах маршрута транспорта или в здании. Задача эта была решена следующим образом:
Иллюстрация из книги Н.В. Сидорова «Эксплуатация электрочасовых установок», 1962г.
На картинке представлен практически весь спектр устройств, который мог входить в часовую сеть, и как становится понятно, мне достались именно вторичные часы. Устройство сети достаточно простое: центром являются так называемые электропервичные часы, которые раз в минуту выдают чередующиеся разнополярные импульсы. Групповые реле совместно с батареями служат в роли репитеров-повторителей, позволяющих разносить устройства на большие расстояния. Так как ток, потребляемый обмоткой реле меньше, чем у приводов часовых механизмов, то и потери, связанные с ростом сопротивления в длинных проводах, будут меньше. Батареи же используются в качестве локальных источников питания вторичных часов.
Понятное дело, что если есть вторичные часы, то можно попробовать найти и первичные. К сожалению обследование здания, где пролегала предполагаемая часовая сеть не дало особых результатов и самый лакомый кусок системы не был обнаружен. Но в литературе того времени очень хорошо описан принцип их действия:
Эти часы являют собой очень интересное звено в эволюции технологий. В них все еще используются хорошо отработанные методы довольно точного измерения временных интервалов при помощи колебаний маятника, являющегося сердцем любых механических часов. Но здесь это сердце приводит в движение электричество. Маятник примерно раз в несколько колебаний замыкает цепь питания электромагнита, дающего ему новый импульс для раскачки. Коромысло, с которым связан маятник, качаясь из стороны в сторону при помощи малой и большой собачек вращает храповое колесо. Смысл этой конструкции в том, что в какую бы сторону не совершал движение маятник, колесо будет вращаться лишь в одном направлении. Оно имеет 80 зубьев, и при периоде колебания маятника равном 1,5 секундам, делает пол-оборота за одну минуту. Дальше в дело вступает эбонитовый рычаг, установленный на этом же колесе — он поочередно замыкает нужные контактные группы:
А подгонный ключ позволяет подавать импульсы вручную. Качая его рукоять можно изменять время сразу на всех часах в сети!
Сопротивления в цепи тоже играют немаловажную роль — конструкторы прошлого не жалели энергии, потраченной на нагрев воздуха, потому что благодаря сопротивлениям уменьшается искрообразование на контактных группах, что ведет к повышению надежности и долговечности устройства (в те времена этим факторам уделяли больше внимания).
Теперь, поняв принцип работы часовой сети можно было смело сделать простенькое устройство, эмулирующее первичные часы, тем более что с помощью современных технологий это проще простого. Но данный рассказ был бы неполным без еще одной вещи, которая на мой взгляд, оказалась даже интереснее электропервичных часов:
Этот невзрачного вида ящик оказался еще одними вторичными часами из той же часофикационной сети, но не такими простыми как первые. Внутри расположился очень занятный механизм:
На дверце за циферблатом расположен электромагнит, проводящий в движение минутную стрелку. Часовая, как и в прошлом случае, связана с ней редуктором. Кроме всего этого есть большая шестерня, пронумерованная от 1 до 24, и с большим количеством отверстий для штифтов (нечто вроде нажимных лапок), которые можно туда закрутить. Внутри корпуса закреплены предохранители, сопротивления и старое реле. Все вместе это образует весьма замысловатую схему.
Обращение к литературе помогло понять, то это не что иное, как программные часы. Используя штифты, вкручиваемые в большую шестерню, можно задать время включения/отключения какой либо электрической нагрузки в определенное время.
В механизме есть свой подгонный ключ, который позволяет подстраивать часы вручную и связан с якорем. В зависимости от полярности напряжения на электромагните, якорь притягивается то в одну, то в другую сторону. Коромысло преобразует поступательное движение во вращательное. А шестерни механизма рассчитаны так, что большое программное колесо делает один оборот за сутки, а пятиминутное и недельное — в соответствии их названиям. В программном и недельном колесе есть отверстия под штифты, которые при обороте колеса замыкают нужные контакты. Точность такого «будильника» составляет пять минут. На часах, доставшихся мне были установлены штифты на время: 8:00, 12:00, 13:00 и 17:00 и на все дни, кроме воскресения. Значит, когда-то эти часы оповещали работников завода о начале смены, обеде и конце рабочего дня.
Работа механизма предполагает замыкание контактов на целую минуту. Разумеется, настолько длинный сигнал всех бы раздражал, потому компоненты в корпусе часов обеспечивают прекращение сигнала через определенное время. В соответствии с технологиями того времени, для этого случая применяется термогруппа — два соприкасающихся контакта, один из которых — биметаллический (на фото-слева от реле). При протекании тока через контакт он нагревается и размыкается за счет изгиба контакта. Это еще одна из причин, по которой точность измеряется минутами — термогруппа должна успеть остыть перед следующим срабатыванием. Время размыкания можно грубо регулировать настроечным винтиком.
Итак, схема, эмулирующая первичные часы будет выглядеть следующим образом:
В ней применяется импульсный блок питания постоянного тока на 24В, два реле и собственно, контроллер Arduino. Реле на 5В служит этакой гальванической развязкой, и замыкает 24-х вольтовое реле, которое в свою очередь перекоммутирует питание в противоположную полярность. Такой режим работы отличается от обычного, так как первичные часы выдавали импульсы, а здесь напряжение на привод часов подается постоянно. Это решение позволяет упростить схему не в ущерб работе.
Скетч для adruino прост, как мигание светодиодом:
pinMode(2, OUTPUT); // программируем пин два как выход
}
void loop() {
digitalWrite(2, HIGH); // включить реле
minute(); // подождать пятьдесят секунд
delay(9535); //подстроечная величина, примерно 9,5 сек
digitalWrite(2, LOW); // выключить реле
minute(); //подождать пятьдесят секунд
delay(9535); //подстроечная величина, примерно 9,5 сек
}
void minute(){
for(int i=1;i<=5;i++){
delay(10000);
}
}
Однако есть свои тонкости, связанные с тем, что минута у Arduino — это вовсе не минута реального времени (это связанно с кварцевым резонатором, тактами, а также инертностью реле, да и это совсем другая история), потому проще величину delay() подобрать вручную: засекая временной промежуток и вычисляя ошибку. После чего вносить поправку в значение подстроечной величины. У меня таким образом получилось настроить часы с точностью около минуты в сутки. Разумеется, можно сделать и лучше, но в этом не было необходимости.
Схема в сборе: пятивольтовое реле прошло за свою жизнь через многое, поэтому пришлось залить его силиконовым клеем.
Хорошо это или плохо, но сейчас часовая сеть оказалась не нужна, поэтому рассмотренные экземпляры часов продолжат свою работу уже в виде обыкновенных самодостаточных устройств, к которым все привыкли. Они будут как и полвека назад отсчитывать трудовые моменты и служить напоминанием об ушедшей эпохе, где таилось много интересного в казалось бы таких простых вещах.
Комментарии (81)
sfrolov
09.06.2015 08:26+1На самом деле часовые сети очень хорошо живы до сих пор, хотя и не так популярны, как раньше.
Основное преимущество часовых систем состоит в том, что на большом предприятии с десятками вторичных часов следить за их состоянием и точностью хода гораздо проще.
Представьте себе, что у вас 20 современных кварцевых часов. В каждом стоит батарейка. Через пару-тройку лет они начнут спонтанно вставать в хаотических местах. А если это большое высокое помещение, где до часов довольно тяжело добраться? Точность тоже будет уходить. Кварец кварцем, а за год все уйдут кто куда.
Ocelot
09.06.2015 08:32+11проще величину delay() подобрать вручную: засекая временной промежуток и вычисляя ошибку
Таймеры. Для этого в AVR существуют таймеры. Совсем правильно будет использовать «часовой» кварц (32 768 Гц), чтобы свести к нулю ошибку при делении частоты.
первичные часы выдавали импульсы, а здесь напряжение на привод часов подается постоянно
Не уверен, что это здорово. Шаговый двигатель не рассчитан на такой режим работы. У вас он не сгорает только потому, что сделан, как все советское, с десятикратным запасом прочности.ploop
09.06.2015 08:53+1Cовсем правильно будет использовать «часовой» кварц (32 768 Гц), чтобы свести к нулю ошибку при делении частоты.
Тогда мы привязываемся к точности кварца.
Ещё правильнее будет ввести программную коррекцию хода, которая съест и ошибку от деления, и неточность кварца. Когда часы стоят стационарно в доме, где температура редко когда колеблется более 3 градусов, мне удалось добиться точности 2-3х секунд в год.Ocelot
09.06.2015 08:58+3А еще можно тянуть точное время с GPS-модуля или из сети по NTP. Это усложняет схему, но избавляет от всякого шаманства с ручной коррекцией.
ploop
09.06.2015 09:04+1Не только схему, но и использование. Для GPS нужно «видеть небо» (выносить антенну), для NTP нужна сеть.
Хотя это будут наилучшие решения в плане точности, но не спортивно :)Ocelot
09.06.2015 09:09+1Раньше сигналы точного времени по радио передавали (на длинных волнах, кажется). Интересно, еще передают?
ploop
09.06.2015 09:22+1Вроде передают.
Плюс есть ещё сигналы радиосинхронизации на 77кГц, по которым наручные часы синхронизируются. Тоже можно зацепить. Но не в России, забугорные только.
kibergus
09.06.2015 10:33+2Говорят, что для времени через GPS небо видеть не так сильно нужно. Чтобы работало позиционирование нужно видеть минимум 4 спутника, причем желательно в разных местах небосвода. Чтобы получить точное время достаточно увидеть один спутник, причем достаточно видеть его хоть иногда. В итоге требование сокращается до прямой видимости окна здания.
vlivyur
09.06.2015 10:39У меня в туалете иногда ловит. Окно из туалета налево, между ещё и ванная есть.
ploop
09.06.2015 10:50Чтобы получить точное время достаточно увидеть один спутник
Логично. А популярные GPS-модули при этом будут выдавать сигналы точного времени?Int_13h
09.06.2015 11:03У меня старый смартфон выдавал gps-время в таких глухих местах (в здании конечно же!), где gsm не ловит. А самодельная программа синхронизировала системные часы.
andy_p
09.06.2015 15:26+1> Чтобы получить точное время достаточно увидеть один спутник
Э-э-э… Уверены?
В GPS приемнике время вычисляется, а не передается.
Для этого необходимо как минимум три спутника.kibergus
09.06.2015 15:56+2Тут вопрос в том, с какой точностью нужно знать время. Если нужно скомпенсировать задержки распространения сигнала от спутников, то нужно видеть сразу четыре: получить точное время можно только вместе с координатами.
ploop
09.06.2015 16:38+1получить точное время можно только вместе с координатами
Но это вроде до каких-то невероятных значений, кажется доли микросекунд (слышал, для синхронизации удалённого оборудования используется).Mrrl
09.06.2015 16:41Вопрос в том, есть ли в интерфейсе приёмника функция, позволяющая получить приближенное время по первому спутнику. Или он может только выдавать точные сигналы после того, как получит полное своё положение в пространстве-времени.
Korogodin
09.06.2015 23:09+2По 4 спутникам можно получить десятки наносекунд, по 1 спутнику примерно 30 мс.
andy_p
11.06.2015 12:21Время надо знать с точностью значительно больше, чем микросекунда для обычного определения местоположения, поскольку 1мсек * 300000000м/сек = 300 метров.
andy_p
11.06.2015 12:271микросек * 300000000м/сек = 300 метров.
ploop
11.06.2015 12:39Это я понимаю, но все эти вычисления внутри чипа производятся. Наружу он уже готовые координаты передаёт.
Я не про принцип спрашивал, а про то, есть ли конкретные реализации модулей, которые выдадут время от одного спутника?
constnw88
09.06.2015 19:22+1Проще и быстрее использовать часы реального времени. Тогда и автоматизированную настройку можно использовать.
ploop
09.06.2015 20:51В наличии были только DS1307, а это
те же яйцатот же кварц, только в профиль. Нужны термостабилизированные и с настройкой (забыл марку), но они не из дешевых.constnw88
09.06.2015 20:59У меня на одном объекте тоже стоит DS1307. За 7 месяцев сбились не более, чем на 10 минут. Вполне достаточная точность. По крайней мере для моих нужд более не требовалось.
ploop
09.06.2015 21:11DS1307 — тупая логика. Вся точность из-за кварца. Которую, как видим, он не обеспечивает: более минуты в месяц даже китайцы себе не позволяют (обычно ± 30 сек)
bevice
16.06.2015 15:54Точность часового кварца на несколько порядков выше точности керамического резонатора, установленного на ардуино
resetnow
09.06.2015 18:24Если уж на то пошло, то для таких вещей используют микросхемы RTC, которые, например, будут раз в минуту поднимать/опускать выход. Таймеры не для таких вещей — у вас ошибка накопится за счет входа/выхода в ISR и времени, потраченного на перезапуск таймера.
ploop
09.06.2015 20:52+1Таймер — он железный, его не надо перезапускать. При работе от часового кварца точность будет ровно такая, какую держит кварц. Он считает независимо от кода в прерываниях (если, конечно, в перывании не начать майнить биткойны).
resetnow
09.06.2015 22:12+1Да, вы правы, я о режиме, в котором постоянно таймер крутится, не подумал.
ploop
09.06.2015 22:50+3Да, и с одного таймера можно уже программным способом получить сетку из нескольких частот, выполняя разные действия при необходимости.
Например, когда делал часы, трёх таймеров мне хватило чтобы считать время, обслуживать 3 канала ШИМ (одно другому не мешает), обрабатывать команды пульта ДУ. Остальной функционал был уже программный.
AlexanderS
09.06.2015 09:39Занятная статья.
Знаете, у меня дома 6 часов. Часы обычные, конечно китайские, малоподдающиеся юстировке — у меня не получалось их точно отюстирвать. И есть ритуал — раз в 2-3 месяца я бегаю и сверяю все их, т.к. все уходят кто куда. Вот как решить вопрос? Можно купить нормальные часы и калибровать их раз в год всё. Но я лёгких путей не ищу и мне казалось бы — чего проще иметь одну станцию, которая бы корректировала свои сателлиты. Но я таких решений не нашел. Все предлагают радиочасы — которые по сигналам точного времени калибруются. А я вот не хочу! Мало-ли какой там сбой будет, хочется своей автономности, хочется контроля.
Вообщем есть идея сделать пару часов на ардуине и связать их по радио 433МГц (какой-нибудь свой протокол несложный изобрести для этого дела). И вот одни будут главными, а вторые подчинёнными. Я даже приобрёл экранчики, модули RTC и радио на 433МГц, чтобы опробовать идею на одной паре. Но пока руки никак не доходят до этого дела)Rumlin
09.06.2015 10:13у меня не получалось их точно отюстирвать
заменяли на точные кварцы?AlexanderS
09.06.2015 10:55Пытался. Правда только на одних.
Да там внутри надо всё менять по идее. Да и… чего ждать от часов за 50 рублей?)
ploop
09.06.2015 10:26+2Подстроечный конденсатор на кварц навесить — иногда помогает.
Но часовая сеть интереснее :)
radiolok
09.06.2015 11:20Собственно это очень простой но очень надежный способ синхронизации всех часов. Причем вторичные часы, как видно из статьи, могут работать десятками лет — там ломаться нечему, а вот первичные часы в итоге выходили из строя(что было катастрофой — часы то одни). Это хорошо видно по публикациям в журналах Моделист Конструктор 80-х годов и Радио 90-х — в которых присутствовали статьи про первичные часы на простой логике, микросхемах серии К176 или микроконтроллерах.
Этот невзрачного вида ящик оказался еще одними вторичными часами из той же часофикационной сети, но не такими простыми как первые. Внутри расположился очень занятный механизм:
Механизм занятный, но не редкость — это суточное программируемое реле. У меня было такое реле — РВМ2, со встроенным часовым механизмом и двумя суточными программами на включение и отключение.
ФотоAstrei Автор
09.06.2015 20:18А у меня есть еще вот такая вещица.
Когда-то это реле участвовало в управлении конвейерами на советском заводе. Не суточное, правда, а то я бы нашел ему применение. Тоже хочу разобрать и подсмотреть принцип работы.radiolok
09.06.2015 20:30+2У меня таких три десятка сейчас в гараже лежит. На три ВС10-3Х и шесть ВС-10-6Х входов. Один блок у меня аж на 4,5 часа максимальной задержки. Большая часть на 30 минут. Две штуки я применю в программируемом контроллере системы автополива, используя его в качестве реле времени на отключение полива сектора. О том что у него внутри я тоже расскажу, так что если интересно следите за моими публикациями. Опубликую материал через месяц.
Если вкратце, то внутри находится электродвигатель с редуктором, скорость вращения которого определяет максимальную задержку. далее идет барабан с тремя или шестью алюминиевыми дисками с делениями — их вы видите в окошках. На диске есть выступ для переключения контакта.
При настройке диски вращаются и выставляется нужное время срабатывания.
на электромагнит сцепления подается напряжение, мотор крутит барабан, когда время доходит до метки — контакт переключается (на каждый диск свой контакт на переключение). Если барабан докрутился до упора — напряжение с мотора снимается встроенным концевиком. Барабан удерживается — как только напряжение с электромагнита сцепления снимается — барабан пружиной раскручивается обратно, переводя контакт в обратное положение. Реле готово к новому циклу работы.Astrei Автор
09.06.2015 20:40+1У меня таких три десятка сейчас в гараже лежит.
Вы разобрали пару заводов? :)
Спасибо за экономию моего времени! Но статью все равно буду ждать.
IVAN2001
09.06.2015 14:22+4Может я невнимательно прочитал, но я не совсем понял как выставляется собственно время на вторичных часах? Получается, что на момент запуска системы на всех часах должно быть одинаковое нулевое время? Как вводить новые вторичные часы? Время на них должно быть выставлено заранее правильное на момент подключения к системе?
ploop
09.06.2015 14:44+1При подключении вторичных на них просто выставляется правильное время (до минуты), дальше «тики» сами всё сделают.
При запуске системы, естественно придётся все подводить.Mrrl
09.06.2015 16:14Главное, чтобы на всех вторичных часах было одинаковое время. Выставить правильное можно с помощью подгонного ключа. Интересно только, чтобы перевести все часы на минуту назад — надо подать 719 импульсов, или лучше остановить маятник?
radiolok
09.06.2015 20:32Обратного хода у вторичных часов нет, так что либо мотать 11 часов вперед, либо остановить время на час.
Astrei Автор
09.06.2015 20:39На самом деле можно. Первая модель, рассмотренная в статье легко подводится вручную даже в режиме удержания. Во второй нет жесткого закрепления часовой стрелки на ось — ее можно прокрутить руками без ущерба механизму, а минуты — подгонным ключом.
radiolok
09.06.2015 20:42Я о дистанционном управлении — многие такие часы на вокзалах и цехах висят под 6-10 метровыми потолками и вручную переводить каждые будет проблематично.
ploop
09.06.2015 20:55+1Может какой генератор «высокой» частоты подцепить на линию? Не 1/60Гц, а например 2-3Гц. Все часы весело поедут вперёд, так и сутки промотать не проблема.
radiolok
09.06.2015 21:02+1Именно так. Во всех электронных первичных часах присутствует переключатель ускоренного хода.
Например по первой попавшейся ссылке www.chipinfo.ru/literature/radio/200006/p34-35.html
имеется переключатель SA3, который переключает выход счетчика К176ИЕ12 между 1/60 Гц и 1Гц. т.е. 11 часов мы перемотаем за 11 минут что уже неплохо.
Как дело обстоит в механических первичных часах не в курсе.ploop
09.06.2015 21:20+1Я почему вспомнил про этот способ — у меня на руках стрелочные CASIO, но с электронным блоком (AQ-S800W)
Принцип тот же: секундной стрелки нет, минутная движется за три «тика» в минуту. Но достаточно изменить время электронного блока и выйти из меню настройки, как стрелки быстро едут к новому положению.
Sykoku
09.06.2015 16:25+1В ЮТ( 1987, №3, стр 65) была статья, где предлагалось преобразовывать показания аналоговых задающих часов (метод контактной площадки) в индикацию на сегментных устройствах.
bagyr
09.06.2015 20:49+3Начальник рассказывал, что в комплекте с сименсовскими телексами (или телетайпами, не помню) шли часы, которые тактировались непосредственно от 50Hz из розетки. В Германии такая схема работала, в России — не совсем. Когда поняли в чем дело их просто исключили из поставки.
Rumlin
10.06.2015 08:34у меня с 90-х работают настольные часы-радио, одно время сильно отставали. С появлением интернет поискал название микросхемы часов — оказалось она считает импульсы 50\60 Гц. В период отставания частота сети была чуть меньше 50 Гц. Сейчас они держат точно, редко корректирую.
andyudol
10.06.2015 13:03Современная археология. Интересная статья, спасибо.
Плюс порадовало словосочетание «примерно раз в несколько колебаний».
Iona
15.06.2015 21:45+3Кстати, Н.В. Сидоров, автор книги «Эксплуатация электрочасовых установок», ветеран Московского метрополитена, он проработал в метро 48 лет, и электрочасофикация метрополитена — в частности, его рук дело.
Muzzy0
16.06.2015 10:36А зачем вы городили огород с каскадом реле 5В/24В? Почему нельзя было использовать одно реле?
MaxxxZ
16.06.2015 12:16Не понятно, только как им давали начальную снихронзацию, если часы были удалены друг от друга на несколько километров или в разных помещениях и небыло возможности видеть оба циферблата одновременно.
ploop
16.06.2015 12:18+2Разрешение циферблата — минуты. Будильник в карман и вперёд по точкам, подводить :)
MaxxxZ
16.06.2015 12:22Стормозил. Привык что сейчас всё по секундам выставляется. Если обычные стрелочные часы поставить по карманному будильнику — разбег будет в десятки секунд, а тут стрелки одновременно двинутся.
ploop
16.06.2015 12:29+1На самом деле я не знаю, как это происходило, просто предположил.
Как вариант, можно все часы на отключенной линии выставить на одно и то же время, а к моменту наступления этого времени просто включить линию. Пойдут синхронно.
AlexRex
16.06.2015 14:03Во, тоже на складе валяются
Скрытый текст
bevice
16.06.2015 16:04+4Автор! Если вы посмотрите на свою плату ардуино, то заметите рядом с чипом AVR маленькую золотую козявку. Это керамический резонатор со встроенными конденсаторами на 16Мгц. Если же вы откроете документацию на AVR, то с удивлением обнаружите, что производитель не рекомендует использовать керамические резонаторы с частотой более 8мгц. А если еще чуть-чуть углубитесь в матчасть — то узнаете, что частота керамического резонатора зависит от температуры и напряжения. Но если уж хочется сделать часы на ардуино — «шилд» с ds1307 или другой микросхемой RTC вам в помощь.
Rumlin
Здесь лучше видно
www.panoramio.com/photo/58345240