- Родительская категория: Проекты
- Категория: Электроника
- Автор: Мастер Ломастер
- Просмотров: 10880
Будильник из микроамперметров
Давно хотелось смастерить часики необычного дизайна. Вариантов-то, собственно, не очень много по нынешним временам: либо с применением газоразрядных индикаторов, либо с механической разверткой. Приличне газоразрядные индикаторы ИН-18 стоят баснословных денег, механическая развертка жужжит и вообще представляет опасность из-за быстродвижущихся элементов... И тут случайно встретились мне вот такие (см. рисунок слева) амперметры - сразу вспомнился еще один вариант оригинальных часов - со стрелочными индикаторами.
Собственно говоря, именно оригинальные измерительные приборы стали движущей силой проекта.
{ads1}
Схема крайне проста. Основа - популярный микроконтроллер attiny2313. Для часов требуется стабильная тактовая частота, поэтому в микроконтроллер тактируется от кварцевого резонатора 4 МГц.
Для индикации использованы микро/милли-амперметры. В моем случае были вот такие приборы (на снимках показаны различные этапы "модификации" - разборка, замена шкал и т.п.
Как видите, мне попаличь АМПЕРметры, причем рассчитанные на работу со стандартным шунтом 75 мВ. То есть в сущности это милливольтметры. Чтобы использовать их в этом проекте, надо обеспечить полное отклонение стрелки при подаче напряжения 5 вольт. Для этого надо измерить сопротивление рамки прибора и по закону Ома рассчитать добавочное сопротивление (на схеме это резисторы R1 и R3). Мои "амперметры" имеют сопротивление рамки примерно 3,5 Ома (точнее измерить сложно, т.к. тестер на омическом диапазоне имеет приличную погрешность), поэтому добавочное сопротивление получилось по расчету 220 Ом. Надо отметить, что так как для управления индикаторами используется ШИМ-сигнал, которые никогда не достигает заполнения 100%, скорее всего расчетное сопротивление окажется завышенным. Можно заменить добавочные сопротивления подстроечными.
На схеме вы видите три индикатора: для индикации минут, часов и "разделительный" индикатор. В подобных проектах часто ставят третий индикатор секунд, но мне этот вариант показался неудачным. Дело в следующем.
Если сделать шкалу индикатора на 24 часа, то она получится слишком плотной и плохочитаемой. Поэтому все, кто делал подобные проекты используют 12-часовую шкалу, и я не исключение. Для часов нет никакой проблемы, но для будильника необходимо знать, в какой пловине суток отображается время, иначе будильник запросто может сработать вместо 7 утра в 19 часов вечера. Поэтому третий нидикатор в моем проекте показывает не секунды, смысла в которых для обычных часов нет, а "половину" суток. Правда, показывает это он особым образом: стрелка колеблется либо в левой половине шкалы (до полудня), либо в правой (после полудня), то есть часы как бы "тикают", что несколько оживляет индикацию. делая ее чуть-чуть динамичней.
{ads2}Мне не попадались проекты-аналоги, в которых имелся бы режим будильника, поэтому я думаю, что мой будет приятным исключением. Для разделительного индикатора я применил миниатюрный прибор М4206, в котором заменил шкалу (отсканировал оригинальную. изменил ее в графическом редакторе, распечатал и наклеил на оригинальную).
Так же многие авторы подобных проектов мучаются вопросом, как поудобнее сделать установку времени. Однако, я не мучался, а сразу решил использовать для этой цели совершенно "несовременное" решение (раз уж и сами часы нестандартные) - тумблеры. Мне кажется, наличие тумблеров для управления всеми режимами удачно вписывается в общую концепцию проекта.
На схеме показаны три тумблера: SW1 отключает сигнал будильника, SW2 служит для установки времени, а SW3 позволяет либо отобразить на индикаторах текущее время, либо время срабатывания будильника.
На схеме показаны положения SW2 и SW3 для обычного режима часов. Если нужно поглядеть на будильник, надо перевести SW3 в другое положение. Если перевести SW2 в верхнее (по схеме) положение, то показания индикатора часов будут каждую секунду увеличиваться на 1 час, причем в зависимости от положения SW3 будут изменяться либо часы текущего времени, либо будильника. В нижнем положении SW2 происходит ежесекундное увеличение показаний минутного индикатора, а в среднем восстанавливается обычное состояние. Мне кажется, такой способ интуитивно понятен, прост и удобен. Да, кстати, вспомогательный индикатор во всех режимах "уточняет" половину суток отображаемого времени.
В часах предусмотрено резервное питание от 3 пальчиковых батареек АА или ААА. Основное питание 5 вольт (должно быть хорошо стабилизировано, так как от него зависит точность отсчета показаний часов) подается на разъем J1. Если по каким-либо причинам основное питание пропадает, часы продолжают считать время, однако индикация отключается с целью экономии батареек. Обратите внимание, что сигнал будильника при этом будет звучать своевременно.
Для будильника применен излучатель со встроенным генератором BUZ1. Надо применять излучатель, потребляющий не более 40 мА, в противном случае необходимо добавить ключевой транзистор для управления им от порта микроконтроллера. Когда будильник срабатывает, то излучатель будет издавать прерывистые сигналы в течение 1 минуты (разумеется, если SW1 замкнут).
Разъем J2 - это стандартный разъем ISP-программирования. Для программирования микроконтроллера SW1 должен быть обязательно отключен.
Номиналы добавочных резисторов R1...R3 не показаны на схеме, так как зависят от имеющихся в вашем распоряжении индикатров. К точности показаний вспомогательного индикатора не предъявляется никаких требований, поэтому подобрать резистор R2 можно просто подав на него 5 вольт и добившись отклонения стрелки в крайнее положение шкалы. А вот для основных индикатров нужно обеспечить достаточно высокую точность показаний, никому ведь не нужны вечно врущие часы! Но простой подачей 5 вольт не удастся правильно подобрать их резисторы (ранее я объяснял, почему), в связи с чем предусмотрен специальный режим калибровки индикаторов часов и минут.
Чтобы откалибровать индикаторы, надо после программирования микроконтроллера замкнуть на общий провод любой свободный вывод порта D - это ножки 6,7 и 8. Все время, пока любая из этих ножек замкнута на общий провод, на индикаторы подаются максимальные уровни сигналов, т.е. при правильно подобранных добавочных сопротивлениях стрелки индикаторов должны показать на крайнее деление шкалы.
{ads1}
Собственно говоря, это и все. Плата часов не разрабатывалась, так как схема очень проста. Остается лишь добавить, что предусмотрено 2 варианта прошивки: для "плавной" индикации и "скачкообразной" - выбирайте, кому что больше нравится. Плавная индикация - это когда стрелка минут движется плавно и практически незаметно, как и в настоящих часах, а стрелка часов может занимать промежуточные положения между делениями. То есть если на часах 7:30, то стрелка часов будет находиться ровно посередине между делениями 7 и 8. При скачкообразной индикации стрелки и часов и минут могут занимать только фиксированные положения на делениях своих шкал. Следует отметить, что при коррекции показаний всегда применяется скачкообразный режим, иначе невозможно правильно установить время.
Ну и последнее: стрелка часового индикатора занимает положение 12 ровно в полдень, а в полночь - положение 0 часов. По-моему, это логично: мы ведь привыкли говорить "12 часов дня", но "0 часов ночи".
И теперь самое последнее. Исходник программы на Си (WinAVR) подробно откомментрирован и доступен для скачивания. Фьюзы микроконтроллера должны быть следующими: