Site Loader

Часы пропеллер на Atmega8 — Микроконтроллеры — Схемы на МК и микросхемах

Роман Галимов

Привет всем! Хочу предложить Вашему вниманию простые часы-пропеллер, которые я собрал на контроллере Atmega8. Они изготовлены из доступных деталей и их легко повторить и изготовить. Единственное что — необходим программатор для прошивки контроллера часов и пульта управления.

Для основания часов был использован обычный вентилятор 120 мм (кулер). Вентиляторы для этих часов можно использовать любые, как с вращением по часовой стрелке, так и против, потому что пока собирал эти часы, программу немного переделал и сделал переключение отображения символов с пульта программно.
Схема самих часов довольно простая и собрана на микроконтроллере Atmega8, для синхронизации работы которого использован часовой кварц с частотой 32768 Гц.
Часы питаются от приёмной катушки, энергия на которую передаётся с генератора с передающей катушкой. Обе эти катушки составляют воздушный трансформатор.

Со схемой и конструкцией генератора, особых проблем не возникло, так как был использован генератор от плазменного шара.

Генератор собран на распространённой микросхеме TL494 и позволяет менять ширину и частоту выходных импульсов в широких пределах .
Даже с зазором в сантиметр между катушками — напряжения вполне хватает для пуска часов. Только следует учесть, что чем больше зазор между катушками, тем больше нужно делать ширину импульса и соответственно от этого растёт и потребление тока от источника.

При включении генератора в первый раз, ширину импульсов (скважность) ставим на минимум (ручка регулятора в верхнем по схеме положении, то есть 4 нога через резистор R7 притянута к 14, 15, 2 ноге TL-494). Частоту генератора крутим, пока не исчезнет писк, это примерно 18-20 Кгц (настройка на слух), а если есть чем измерить частоту, то настраиваем её соответственно в этих пределах.

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

Видео.

Плата самих часов крепится к основанию вентилятора. Я закрепил её двухсторонним скотчем.

Потом переделал немного схему часов с фоторезистора на инфракрасный фотодиод (рисунок ниже).
В передатчике вместо простого светодиода, у меня теперь стоит инфракрасный.
Резистор вместо 2к поставил 100к.


Ответственными моментами при изготовлении часов являются — изготовление воздушного трансформатора и центровка ( вернее балансировка) платы часов на основании вентилятора.

К этим моментам отнеситесь серьёзнее.

Воздушный трансформатор.

В основу взял кулер 120 мм обычный с бронзовыми втулками. Плата часов к основанию приклеена на двусторонний скотч.
С кулера откусываем лопасти и обтачиваем и выравниваем напильником, наждачкой. Катушки сделаны на каркасе из кабельного канала. Придумал такую конструкцию не я, просто взял эту идею из инета. Для намотки трансформатора делается основа из кабельного канала. Через каждые 5 мм на бортиках канала делаем надрез и аккуратно сворачиваем его в круг, диаметр подберите так, чтоб он плотно сел на пластмассовое основание вентилятора.

Далее на оправку из кабельного канала, наматываем 100 витков эмалированного провода, диаметром 0.25.

Ток потребления собранного трансформатора, у меня получился 200 мА (это с довольно заметным зазором между катушками).
В целом вместе с двигателем вентилятора, ток потребления получается  в районе 0.4-0.5А.
Первичную (передающую) катушку делаем также, но стараемся сделать минимальный зазор между катушками. Передающая катушка тоже содержит 100 витков провода 0.3 (можно тем-же 0.25).
На схеме у меня немного другие моточные данные этих катушек.

Плата часов.

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

Плату со светодиодами соединил с платой часов обычным эмалированным (намоточным) проводом, он более жёсткий по сравнении с монтажным и не трепится при вращении.

Для балансировки всей платы, с другой её стороны приклеиваем термоклеем винт, диаметром 3-4 мм, накручивая с другой стороны на винт различные гайки — добиваемся минимальной вибрации.
Для проверки работоспособности платы часов — коротим фоторезистор отверткой, пинцетом, светодиоды при этом должны моргнуть.
Часы начинают работать при появлении 5В (логическая единица) на 5 ноге атмеги. То есть при освещении фоторезистора — на 5 ноге должно быть 5В,

Когда фоторезистор не освещён, на 5-й ноге атмеги должен быть логический 0 (около 0В), для этого подбираем резистор на землю с 5 ноги. На схеме стоит 2 кОм, у меня получилось 2.5 Ком.
Внизу на основании вентилятора приклеиваем светодиод так, чтобы при каждом обороте двигателя вентилятора — фоторезистор проходил как можно ближе к источнику света (светодиоду).

Пульт управления.

Пульт управления предназначен для управления работой часов, переключения режимов отображения индикацией (смена направления вращения вентилятора), установки времени часов.

Схема пульта собрана на микроконтроллере ATTINY2313. На плате установлен сам МК с обвязкой и шесть кнопок, предназначенных для управления часами.

Корпус для пульта собирать не стал, поэтому только фото самой платы.

Информация по назначению кнопок пульта;
H+ и  Н- настройка часов
М+ и М- настройка минут
R/L смена направления (для винтов крутящихся по часовой и против часовой)
font  смена шрифта (тонкий, жирный и надпись VPRL.ru)
при надписи VPRL.ru кнопками H+ и H — регулируется ширина надписи.

В прикреплённом архиве содержатся все необходимые файлы для сборки часов;

Архив

Архив для статьи

Если у Вас возникнут какие либо вопросы по конструкции часов, задавайте их ЗДЕСЬ на форуме, постараюсь по возможности помочь и ответить на возникшие вопросы.

 

Часы-термометр на микроконтроллере ATmega8. V 2.0

Ага 🙂 опять часы.

    Что есть:
  • Два датчика температуры DS18B20.
  • Термостат с тремя временными зонами.
  • 10 будильников на каждый день недели.
  • Отсрочка сигнала, если будильник не отключить, срабатывает примерно через 5 мин.
  • Два будильника на отдельную ножку мк, вклоткл нагрузки.
  • Выбор отображения температуры (гашение не значащего нуля).
  • Яркость индикатора настраивается для дневного и ночного времени.
  • Изменяемый параметр плавно меняет яркость.
  • При пропадании 220 вольт потребление от батарей меньше 40 микроампер.
  • Будильник срабатывает при любом режиме питания.
  • Часы могут последовательно показывать до 8 режимов.
  • В схеме можно использовать индикаторы с общим анодом или катодом.

В часах есть возможность последовательно показывать 8 режимов, для которых выбирается один из десяти форматов отображения и время его показа.

Форматы отображения.
0

Число, День недели, Часы-минуты.

1

Часы-минуты-секунды.

2

Часы-минуты.

3

Часы-минуты, День недели.

4

Число_месяц_день недели.

5

Температура 1 датчик, Температура 2 датчик.

6

Температура 1 датчик (датчик дома).

7

Температура 2 датчик (датчик на улице).

8

Температура 1 датчик, Часы-минуты.

9

Температура 2 датчик, Часы-минуты.

A

Температура 1 датчик, Температура 2 датчик.

b

Температура 1 датчик, Температура 2 датчик.

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


Кнопка F — выход из режима. Выбор 3 основных режимов.
Кнопка SET — вход в выбранный режим. Далее переход к следующему параметру (мигающему полю).
Кнопка PLUS — плюс/on. В режиме SETUP листать главные меню.
Кнопка MINUS — минус/__(off). В режиме SETUP листать главные меню.

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

Режим 0
нажать F
SET — вход в режим будильников.
F
SET — вход в режим быстрой настройки термостата.
F
SET — вход в режим настроек.
F
Режим 0

Режим CALLS

on/__-будильник вкл/откл.
Дни недели, в которые сработает будильник (здесь в 6 и 7 день будильник выключен).
Будильники для управления нагрузкой.
Будильники A B вкл/откл. вывод call a_h мк. С его помощью вывод call a_h можно устанавливать до 23 часов 59 минут.
Устанавливается время, часы-минуты-секунды, на которое включится вывод call a_h. Затем идет установка дней.

Режим быстрой настройки термостата.

Слево-направо.
Температура первого датчика (термостат только по первому датчику).

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

Р1 — вывод термостата включен.
Р0 — выключен.
При изменении данного параметра, функция термостата отключается (чтоб не путалась под ногами и не перехватывала управление)..

В этом режиме, когда не редактируются параметры (нет мигающего поля), нет автозавершения по времени (режим наладки).

Режим SETUP.
Для записи значений в EEPROM нужно все значения в подрежиме подтвердить нажатием SET.
Пример: LIGHT    ->SET-> L.ooooo  ->SET-> НО4Ь L.2  ->SET->    LIGHT .

Главные меню режима SETUP.
ЧАСЫ PLUS MINUS листать основные режимы меню SETUP.
SET — вход в выбранный режим, далее переход к следующему параметру.
Что бы выйти из выбранного режима нажать F.
PORT
T-Stat
УSt SEE
УSt БУД
SIGNAL
LIGHT
DS18B20
СБРОС НАС.

Режим часы.

Устанавливаются: минуты, часы, день недели, число.
Месяц.
Корректировка секунд. Нажатие MINUS сбрасывает секунды в ноль. Если секунд было больше 31, то минуты инкрементируются.
Коррекция хода часов. Данная величина прибавляется или вычитается каждый час. Шаг 0.008 секунды. (50 значений), максимальное значение 0.391. Пример расчета: при коррекции равной нулю измеряется уход часов, например за 5 дней часы убежали на 3 секунды, тогда коррекция ровна 3/(5*24)=0.025.

Режим PORT.

Port Установить/сбросить ножку будильника A..H. call a_h.

Режим настроек термостата.

Режим Уст SEE.

В нулевом режиме часы показывают попеременно до 8 режимов, для которых выбирается один из десяти форматов отображения и время его показа (верхняя таблица).
P1 выбор режима.
r0 выбор одного из десяти форматов отображения.
r0-003 время, которое будет виден выбранный режим.
При времени равном 000 режим выключен.

Режим УSt Буd. Установки будильника.

Bip сигнал будильника — ШИМ.
Pin сигнал будильника — уст в 1 вывод буд.
Oba Шим и вывод.
Отсрочка сигнала.
Задаётся число отсрочек сигнала.
При откл. отсрочке (00) будильник выключается нажатием любой клавиши.
При вкл. отсрочке сигнала будильник откл. кнопкой F, при нажатии кнопок SET PLUS MINUS сигнал отключается, но опять сработает примерно через 5 минут.
При активной отсрочке сигнала, в нулевом режиме, мигает точка последнего разряда.
Отключение отсрочки (при отсутствии сигнала). В режиме 0, нажатие SET вкл. этот режим. Наличие активной отсрочки индуцирует символ о на 4 знакоместе. Нажатие PLUS MINUS выключает отсрочку.

Режим DS18B20.

Датчики температуры DS18B20.
Режим показывает, как определилось подключение датчиков, и настраивает датчики на разрешение 12 бит.
Выбор отображения температуры.
1 — 07.5
2 — &nbsp 7.5 гашение нуля.
on — датчик подключен 3 проводами;
PA.- паразитное питание, датчик подключен 2 проводами;
— — датчик отсутствует.
При выходе из этого режима датчики настраиваются на разрешение 12 бит.

Режим Light.

Настраивается яркость для дневного времени.
Для ночи.
Ночное время.

Режим Сигнал.

SIGNAL после входа в режим кнопками плюс/минус выбирается:
budil. S или button. S
соответственно частота ШИМ для будильника и кнопок.
При входе в эти подрежимы на индикаторе:
H004.L000.
Частота генерируется в режиме быстрой шим(CTC mode). Верхний порог задается регистром OCR1A1. H004-старший байт L000-младший байт.
Что бы отключить сигнал от нажатия кнопок — установить H000 L000.
Если в режиме УSt Буd.выбрана опция PIN, для будильника шим сигнал выводится не будет.

Режим Сброс настроек.

По нажатию SET: Установка по умолчанию основных переменных в программе, обнуление всех будильников. Запись этих значений в EEPROM.

Действия в нулевом режиме.

F — выбор режима.
SET — режим отмены отсрочки сигнала
PLUS — режим Уст SEE.
MINUS — установка будильников.


Каждый час, на одну секунду, устанавливается вывод PB2(16).

Для экономии, в режиме питания от батарей запрещается отсрочка сигнала.


Схема.

Из схемы можно исключить конденсаторы к кварцу, если запрограммировать fuse бит CKOPT.

Датчик температуры можно подключить двумя проводами, для этого у датчика нужно замкнуть GND c VDD, при этом включается режим паразитного питания. Такой способ удобно применять для датчика, который расположен на улице. По программе перед каждым циклом чтения температуры выполняется проверка на замыкание и на присутствие датчика. При любом криминале вывод мк. переводится в Z состояние, на индикаторе: —.
Если первый датчик используется в режиме термостата, то он должен быть подключен 3 проводами.

Если будильник настроить на включение вывода, то можно использовать чип от музыкальной открытки.


При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg ). посмотреть для PonyProg. Cбросить основные переменные в программе — SETUP -> СБРОС НАС. -> SET.


Часы-термометр на микроконтроллере ATmega8 с секундной стрелкой

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Часы-термометр на микроконтроллере ATmega8 с секундной стрелкой

Часы разрабатывались как аналог довольно дорогих часов ASSISTANT AH-1082.

В итоге получились часы со следующими характеристиками:

  • Два датчика температуры DS18B20 (дома и на улице)
  • Резервное питание часов от батареи CR2032 (без индикации)
  • Светодиодная секундная стрелка
  • Датчик освещённости для изменения яркости (день/ночь)
  • Программная подстройка хода +/- 30 сек в неделю


В первой строке отображаются часы и минуты, во второй поочерёдно температура на улице/дома и светодиодами по кругу секунды (заполнением начиная с нулевой). Каждую нечётную минуту заполнение происходит зажиганием светодиода, а чётную гашением.

Вход в режим настройки, переключение между настройкой часов, минут и коррекцией хода кнопкой MODE. Уменьшение / увеличение кнопками “-“ / ”+”.

О деталях:


 

Программа написана на асеммблере в AvrStudio.

 Схема нарисована в Splan, а плата в Sprint Layout

При прошивке мк установите биты CKSEL3..0 в 0100 (внутренний RC генератор 8 Meg )

SUT1:0 должен быть уже в 10 (65ms).

Файлы:
прошивка, исходники, плата, схема

Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?

Простые часы на МК Atmega8 новая версия

 


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


К основным особенностям новых прошивок относится добавление функций энергосбережения, теперь энергопотребление часов не превышает 11-12мА, а в режиме сна – 0,01мА. Переключение между этими режимами может осуществляться по нажатию кнопок и автоматически (при пропадании основного питания). Ход часов при пропадании основного питания сохраняется, благодаря добавлению в схему батареи. Помимо этого, даже при отсутствии основного питания, можно кратковременно засветить индикатор и узнать текущее время. В новых прошивках, при выставлении времени, цифры постепенно возрастают при удержании кнопок. Также теперь светится разделительная точка между часами и минутами. Архив с новыми прошивками можно скачать ЗДЕСЬ.



По моей просьбе, автор планирует выпустить новую версию прошивки, в которой будет добавлена функция корректировки времени. Ее очень не хватало радиолюбителям, которые собирали первую версию часов, т.к. они имели свойство немного спешить или отставать.


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


Автор (P-a-h-a) подготовил видеоматериал по сборке часов, но в нем, на мой взгляд, много лишнего, что может сбить с толку начинающего радиолюбителя. В связи с этим, размещаю видео со стартом с места, где идет непосредственно сборка описываемых в статье часов.


 

Страницы:

Часы с ГРИ на ATmega8

Представляю вам конструкцию часов на ГРИ, коих на сайте уже не мало. Данная конструкция практически не чем не отличается от ранее выложенных, единственное, что я отказался от применения высоковольтного дешифратора 155ИД1 и его аналогов, которые мелькают практически во всех конструкциях. Это было сделано по следующим причинам: низкая надежность; малое время наработки на отказ и достаточное количество свободных ног у микроконтроллера.

Как видно из схемы, конструкция в описании не нуждается.

При первоначальном запуске в часах необходимо установить время, дату, день недели и по желанию время очистки катодов ламп.

Навигация по меню установки будильника и дат происходит с помощью следующих кнопок:

S1 – уменьшает значение;

S2 – увеличивает значение;

S3 – включает для установки следующею группу значений.

Вход в меню установки времени и даты осуществляется нажатием и удержанием кнопки S3, после входа установка начинается в следующей последовательности часы -> минуты -> секунды.

Далее после установки времени автоматически осуществляется переход вменю установки даты. Она устанавливается в следующей последовательности день -> месяц -> год.

Следующий пункт установки день недели он необходим для правильной работы будильника.

Последним пунктом установка времени очистки катодов если «00» очистка отменена, «01» очистка установлена, после чего идет установка времени очистки часы -> минуты.

Просмотр даты осуществляется нажатием и удержанием кнопки S1.

Установка будильника осуществляется нажатием и удержанием кнопки S2, сначала устанавливается срабатывание будильника «00» — будильник выключен, «11» — однократное срабатывание будильника, «15» — срабатывание будильника по будним дням, «17» — ежедневное срабатывание будильника.

Отключение сигнала будильника осуществляется нажатием и удержанием кнопки S1.

Вроде всё. Удачи в повторении.

Файлы:
Видео работы
Печатная плата
Прошивка МК

Все вопросы в Форум.

Простые часы на светодиодных матрицах.

Простые часы на светодиодных матрицах.

Многие  радиолюбители, начинающие и не только любят «изобретать велосипед» —  строить  СВОИ электронные часы.  Не обошла эта участь и меня.  Конструкций часов в инете сегодня конечно предостаточно,   но вот  часов на светодиодных матрицах  почему-то среди них единицы.  В русскоговорящем интернете я нашел только одну полностью законченную конструкцию.  В тоже время, светодиодные матрицы сейчас очень сильно подешевели,  и их стоимость  не выше,  а то и ниже,  чем у семисегментных индикаторов  такого же размера.     Например  примененные мной GNM23881AD  при размере  60х60мм были куплены за 1,5уе  (3 индикатора обошлись в 4,5уе)    за  эти  деньги вы вряд ли   купите  четыре семисегментника  таких-же  размеров).   А вот  информации, разместить  на матричном индикаторе, можно намного больше.  Кроме цифр на них можно отображать   буквы,  знаки, а с помощью  бегущей строки еще и текст.    Исходя  из  этого, появилось  желание  построить   часы   на светодиодных матрицах,   но  чтоб схема при этом   получилась  не сложнее чем  на  семисегментниках.   Также хотелось чтоб она была   достаточно функциональна и не похожа на другие.     Так родилась следующая схема.

 

Функционал у часов такой:

  • Отсчет времени,  календарь,  день недели.  (високосный год учитывается,  переход  на летнее/зимнее время не осуществляется).
  • Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).
  • Коррекция хода + —  59,9сексутки,  с шагом 0,1сек.
  • 9 будильников.  3 из которых «одноразовые», и  6 «постоянных»,  индивидуально настраиваемых по дням недели.
  • Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).
  • Звуковое подтверждение нажатия кнопок  (возможно отключить).
  • Ежечасный звуковой сигнал (возможно отключить).   С 00-00  до  08-00  сигнал не подаётся.  
  • 1 или 2  датчика температуры (Улица и дом).
  • Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)
  • Значение коррекции хода, и настройки «бегущей  строки» —  сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости».  Схему хотелось максимально упростить,  поэтому все что можно, было возложено на контроллер.  В результате удалось обойтись всего двумя микросхемами,  контроллером и регистром с мощными выходами TPIC6B595.   Если кому то недоступен TPIC6B595,  то можно его заменить на  74НС595 + ULN2803. Оба варианта были опробованы.   Так же можно попробовать применить  TPIC6С595,  она немного слабовата, и  слегка грелась,  но в целом работала стабильно.  Отсчет времени  производится   с помощью асинхронного тайме – Т2.     Ход  часов продолжается и  при пропадании  питания.  В это время бОльшая часть  схемы  обесточена,  и  только  контроллер  получает питание  от батарейки, аккумулятора , или от ионистора.  Мне было интересно «по играться» с ионистором,   поэтому применил его.  Ток потребления часами в дежурном режиме составляет  15мка.   При питании от ионистора на 1Ф,  часы «продержались»   четверо суток.   Этого вполне достаточно для поддержания хода во время перебоев питания.   Если применить батарейку СR2032,  то теоретически, по расчетам  заряда должно хватить на 1,5года.    Наличие сетевого напряжения контроллер «слушает»  через  вывод РВ.3.  Напряжение питания,  через делитель R2-R3 подается на вывод  РВ.3,    и в нормальном состоянии равно примерно 1,5в.  Если внешнее напряжение упадет ниже  4,1 вольта,  то напряжение на выводе РВ.3    станет   меньше 1,23вольта,  при этом  сгенерируется прерывание от компаратора, и в обработчике этого прерывания  выключаются все «лишние»  узлы контроллера   и сам контроллер усыпляется.  В этом режиме продолжает работать только отсчитывающий время таймер Т2.  При появлении внешнего питания, напряжение на  РВ.3  сново  подымится выше 1,23в,  контроллер «увидев» это, переведет все узлы в рабочее состояние.  Если  вместо ионистора, будет использоваться батарейка СR2032,  то её нужно подключить через диод(предпочтительно диод шоттки).  Анод  диода подключается к + батарейки,  а катод к катоду VD1.  

В обычном режиме на экране отображается время в формате часы-минуты.  С интервалом в одну  минуту происходит запуск бегущей строки.  Бегущей строкой отображается день недели,  дата,  год,  темп.  дома, и темп. на улице.  Бегущая строка настраиваемая,  т.е.  можно включить/выключить отображение любого из элементов.  (я например всегда отключаю отображение года).  При выключении отображения всех  элементов  бегущей строки, она  не запускается вовсе,  и часы постоянно отображают только время.

9 будильников разделены на 3 одноразовых и 6 многоразовых.  При включении будильников   1-3, они  срабатывают только один раз.  Для того чтоб они сработали еще раз, их нужно повторно включать вручную.  А будильники 4-9  многоразовые,  т.е. они будут срабатывать ежедневно, в установленное время.  Кроме того эти будильники можно настроить  на сработку только в определенные  дни недели.  Это  удобно, например если не хотите чтоб будильник разбудил Вас в выходные.  Или  например Вам нужно просыпаться в будние дни в 7-00,  а в четверг в 8-00, а на выходных будильник не нужен.  Тогда настраиваем один многоразовый  на 7-00 в  понедельник-среду и пятницу,  а второй на 8-00 в четверг…..      Кроме того все будильники имеют настройку длительности сигнала,  и если Вам, для того чтоб проснуться,  мало сигнала в течении 1 минуты,  то можно увеличить его на  время от 1 до 15мин.

Коррекция хода производится один раз в сутки, в 00-00.  Если часы спешат к примеру на 5 сек в сутки,  то в 00-00-00 время  установится в 23-59-55,  если же часы отстают на 5 сек,  то в 00-00-00  время установится в 00-00-05.    Шаг коррекции – 0,1 сек.  Максимальная коррекция – 59,9 сек/сутки.     С исправным кварцем больше вряд ли понадобиться.   Коррекция осуществляется и в дежурном режиме при питании от батареи.

Светодиодные матрицы  можно использовать любые 8*8 светодиодов с общим катодом.  Как уже было указано, я применил GNM23881AD.  В принципе можно «набрать» матрицу и из отдельных светодиодов.   Микроконтроллер AtMega16a  можно заменить на «старый»  AtMega16 с буквой L.  При этом, теоретически должен немного увеличится ток потребления от батарейки.  Наверное будет работать и просто  AtMega16, но могут возникнуть проблемы при работе от 3х вольтовой  батарейки.   Диод  D1  — желательно любой диод  шоттки.   С обычным выпрямительным тоже работает,  но чтоб обезопасить себя от различных глюков,  связанных с тем что часть схемы питается напряжением «до диода»,  а часть «после диода»  лучше поискать шоттки.  Транзистор VT1 – любой   n-p-n.

Управление часами осуществляется двумя кнопками.  Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок,   но захотелось  попробовать «выкрутится» всего двумя.   Кнопки условно названы «ОК» и «ШАГ».  Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню,  а кнопкой «ОК» изменение параметров  текущего меню.    Сигнал  сработавшего  будильника  также выключается   кнопками  «ОК» или «ШАГ».    Нажатие  любой  кнопки  во время сигнала будильника  отключает  его.     Схема управления получилась такой:

 

Конструктивно часы выполнены на одной ПП.  Размер ПП соответствует размеру индикаторов.    Минимальная ширина дорог ПП – 0,4мм,  расстояние между – 0,4мм.   Так что любители «ЛУТа»  смогут без труда изготовить плату самостоятельно. 

 

Все элементы — в SMD  исполнении, и расположены с одной стороны платы.  А индикаторы с другой.  Получается  миниатюрный монолитный блок, который легко встроить в какой ни будь небольшой плоский корпус.

  

Корпус   спаян из стеклотекстолита,  прошпаклеван и покрашен в цвет «спелая вишня».   Стекло передней панели – обычное  тонированное стекло.   

Финальный результат.

 

>>> Видео работы часов

 

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

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

************************************************************* ************************************************************

АПГРЕЙД  …….

Судя по отзывам после публикации статьи  проектом заинтересовались.  Многие  повторили.  Значит нужно развиваться   дальше.  )))   На  данный момент  самая свежая прошивка —   V1_06.   В ней добавлены —   «скроллинг»  цифр,  полностью  переписана работа  будильников(были глюки при одновременном использовании нескольких будильников),  названия дней недели в настройках будильников сделаны привычные двухбуквенные (было – пон, вто, сре….)  и неделя начинается с понедельника (было на американский манер с воскресенья).    Также добавлена поддержка  AtMega32  (нужна перекомпиляция),    новые шрифты цифр (выбор пока на этапе компиляции),    переназначение  датчиков температуры (можно программно определить какой датчик является домашним,  а какой уличным),    регулировка скорости бегущей строки,   и   кое что по мелочи.   Также отловлены мелкие  глюки,  и конечно же добавлены большие новые )))).    

Регулировка скорости бегущей строки находится в пункте «НАСТРОЙКА».  Теперь после настройки    звукового сигнала   клавиатуры,  по нажатию кнопки    «ШАГ»  мы не возвращаемся  в основной режим,  а переходим к настройке скорости.    На экране  в это время бежит  текст,   а кнопкой «ОК»  можно  регулировать  его  скорость.    Когда    выставите желаемую скорость,   нажмите  «ШАГ» и выйдите из этого пункта меню.   Теперь   везде скорость  текста  будет  такой, как вы установили.      

Если в часах установлено два датчика температуры  ds18b20,  то после настройки скорости строки,  мы попадаем в меню   «переопределения»   датчиков.   В этом меню можно  указать какой датчик у нас находится дома,  а какой на улице.   На  экране в это время  выводится  буква «д»  и температура одного из датчиков.  Нажатием  кнопки   «ОК»  переключаем датчики  так, чтоб на экране отображалась  «домашняя»  температура.   После чего кнопкой «ШАГ»  выходим из этого меню.   Если в часах установлен один датчик,  или не установлено вовсе,  то в пункт переопределения датчиков мы не попадаем,  и сразу после  настройки скорости строки переходим в основной режим.  

Больше всего  вопросов поступило по  применению  матриц   с ОА в строке,  и замене регистра  TPIC6B595.      Самый  простой и дешевый вариант заменыTPIC6B595 это регистр  74HC595 +  ULN2803.   Также можно заменить  на  74HC595 +  восемь  ключей на отдельных  транзисторах.   Транзисторы подойдут и биполярные структуры NPN,   и  полевики (мосфеты)    N-канальные.      

 

СХЕМА   74HC595 +  ULN2803

 

СХЕМА  74HC595 +  восемь   NPN транзисторов.

 

СХЕМА  74HC595 +  восемь   N-канальных полевых транзистора (практически повторяет предыдущую схему). 

Для  того чтоб в часах  применить  матрицы  с «ОА» в строке  их нужно  немного доработать.   Для этого нам понадобится крупный напильник (рашпиль)   и станок лазерной резки…….  ))))))     Шучу, я шучу,   ничего для этого нам не понадобится,   Достаточно просто развести печатную плату по другому.      Вы  спросите, а как это матрица с ОА  будет работать в схеме с ОК?     Легко!    Дело в том, что понятие  «ОК»  или «ОА»   для светодиодной матрицы   довольно условное,   и  для того чтобы «превратить»   матрицу   с ОА   в строке в матрицу   с ОК,   достаточно  всего лишь повернуть её на 90 градусов влево или вправо.

 

Матрица ОА

 

Поворачиваем на 90 градусов и получаем матрицу ОК

Попутно давайте разберемся   с «путаницей»  в маркировке.   Многие наверное заметили что  матрицы   с  общим катодом в строке,  в  прайсах   продавцов  значатся   матрицами с общим анодом.  А все потому,  что производители   маркируют матрицы не по строкам,  как многие привыкли ,  а по столбцам.    По мне, это как то нелогично,  но производителям как говорится  видней….      Давайте будем  называть  матрицы у которых в нормальном положении  в строке катоды диодов – матрицами с ОК,  а у которых в строке аноды – матрицами  с ОА.       Ну а для данной конструкции  можно  с этим вообще  не заморачиваться,   и сначала,  приобрести  матрицы,  а потом  изготовить нужный вариант  платы.     

 

 

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

Напротив   FONT  вместо нолика поставьте  номер желаемого шрифта от 0  до 6.      (0 –   «родной» шрифт).    Компилируйте и прошивайтесь.   

(шрифты рисовал  форумчанин   sirgio  с сайта радиокот).   

 

Для    применения   AtMega32   также понадобится перекомпиляция.    В начале исходника найдите строчки

Напротив    #define   ATMEGA16   поставьте ноль,  а напротив    #define   ATMEGA32      поставьте единичку.   Компилируйте и прошивайтесь.

 

 

Вариант замены  TPIC6B595  на    74нс595+8 транзисторов ВС817 был опробован в железе.    Работает нормально.   Корпус новых часов сделал из  оргстекла.   На матрицы наклеил тонировочную автомобильную пленку зеленого цвета.   Это немного снижает яркость,  зато здорово добавляет контрастности, и улучшает эстетическое восприятие ))).   Но главное — на солнце читаемость становится лучше.    Вообще, я если честно разочарован зелеными матрицами.    При той же заявленной яркости что и красные, и при большем закаченном в них токе чем у красных – читаемость на солнце у них гораздо хуже.  

 

74нс595+8 транзисторов ВС817  вместо TPIC6B595.  Места много, все прекрасно помещается. 

Индикаторы без светофильтра.  Яркость хороша, но читается плохо. 

Индикаторы со светофильтром.  Менее ярко,  но читаемость лучше. 

Корпус из оргстекла.  

Контроль за соблюдением тех. норм и допусков,  осуществлялся серьёзными специалистами высокого уровня. 

Ну и напоследок  >>>видео   новых возможностей часиков.

(«старые» возможности смотрите на видео выше),  и


>>>видео двух часов рядом.  (В этот раз взял у друга камеру получше,  теперь мерцаний и прочей ерунды невидно.)

Вот, вроде пока и все. В ближайших планах  добавить всякие спецэффекты при смене информации,  сделать пины контроллера к которым подключены  столбцы  программно переназначаемыми (идея  форумчанина ВНН),    В далеких планах,  — очень хочется сделать голосовое проговаривание времени  каждый час, и при сработке будильников.  Пока понятия не имею как к этому подступится,  и реально ли это сделать  на данном железе,  но самый «жирный» таймер контроллера   Т1  специально нигде не использовал,  берегу  для этой задачи.

Принимаю интересные идеи для реализации.

Коммерческое использование конструкции без разрешения автора — запрещено

Файлы:
01.rar
02.rar
03.rar
04.rar
05.rar
06.rar
07.rar
12.jpg


Все вопросы в Форум.

Часы на ATmega8 | Библиотека устройств на микроконтроллерах

Часы на ATmega8.

  • 10 будильников на каждый день недели.
  • Отсрочка сигнала, если будильник не отключить, срабатывает примерно через 5 мин.
  • Два будильника на отдельную ножку мк, вкл\откл нагрузки.
  • Два датчика температуры DS18B20 (дома и на улице).
  • Выбор отображения температуры (гашение не значащего нуля).
  • Таймер 99 часов.
  • Яркость индикатора настраивается для дневного и ночного времени.
  • Изменяемый параметр плавно меняет яркость.
  • При пропадании 220 вольт потребление от батарей меньше 40 микроампер.
  • Будильник срабатывает при любом режиме питания.
  • Часы могут показывать до 8 режимов.
  • В схеме можно использовать индикаторы с общим анодом или катодом.

Часы могут показывать до 8 режимов, для которых выбирается один из пятнадцати форматов отображения, время его показа и количество раз, которое он будет пропущен.

Форматы отображения.
0

Число, День недели, Часы-минуты.

1

Часы-минуты-секунды.

2

Часы-минуты.

3

Часы-минуты, День недели.

4

Число_месяц_день недели.

5

Число месяц год.

6

Число месяц год день недели.

7

Температура 1 датчик, Температура 2 датчик.

8

Температура 1 датчик (датчик дома).

9

Температура 2 датчик (датчик на улице).

A

Температура 1 датчик, Часы-минуты.

b

Температура 2 датчик, Часы-минуты.

C

Температура 1 датчик, Температура 2 датчик.

d

Температура 1 датчик, Температура 2 датчик.

E

День недели число месяц год.

F

Число месяц год.

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


Кнопка F — выход из режима. Выбор 3 основных режимов.
Кнопка SET — вход в выбранный режим. Далее переход к следующему параметру (мигающему полю).
Кнопка PLUS — плюс/on. В режиме SETUP листать главные меню.
Кнопка MINUS — минус/__(off). В режиме SETUP листать главные меню.

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

Режим 0
нажать F
SET — вход в режим будильников.
F
SET — вход в режим таймера.
F
SET — вход в режим настроек.
F
Режим 0

Режим CALLS

on/__-будильник вкл/откл.
Дни недели, в которые сработает будильник (здесь в 6 и 7 день будильник выключен).
Будильники для управления нагрузкой.
Будильники A B вкл/откл. вывод call a_h мк. С его помощью вывод call a_h можно устанавливать до 23 часов 59 минут.
Устанавливается время, часы-минуты, на которое включится вывод call a_h. Затем идет установка дней.

Режим SETUP.
Для записи значений в EEPROM нужно все значения в подрежиме подтвердить нажатием SET.
Пример: LIGHT    ->SET-> L.ooooo  ->SET-> НО4Ь L.2  ->SET->    LIGHT .

Главные меню режима SETUP.
PORT PLUS MINUS листать основные режимы меню SETUP.
SET — вход в выбранный режим, далее переход к следующему параметру.
Что бы выйти из выбранного режима нажать F.
ЧАСЫ
УSt SEE
УSt БУД
SIGNAL
LIGHT
DS18B20
СБРОС НАС.

Режим PORT.

Port Установить/сбросить ножку будильника A..H. call a_h.

Режим часы.

Корректировка секунд. Нажатие MINUS сбрасывает секунды в ноль. Если секунд было больше 31, то минуты инкрементируются.
Далее идет установка минут и часов.
Устанавливаются:
число, месяц, год и день недели.
Коррекция хода часов. Данная величина прибавляется или вычитается каждый час. Шаг 0.008 секунды. (50 значений), максимальное значение 0.391. Пример расчета: при коррекции равной нулю измеряется уход часов, например за 5 дней часы убежали на 3 секунды, тогда коррекция ровна 3/(5*24)=0.025.

Режим Уст SEE.

В нулевом режиме часы показывают попеременно до 8 режимов, для которых выбирается один из десяти форматов отображения и время его показа (верхняя таблица).
1 выбор режима.
r5 выбор одного из пятнадцати форматов отображения.
с03 время в секундах, которое будет виден выбранный режим.
n0 сколько раз пропускать (не показывать) режим. Пример:
1 r0 c03n0
2 r5 c03n0
3 r4 c02n1
r0; r5; r4; r0; r5; r4; r0; r5; r4; r0; r5; r4;..
r4; — виден, r4; — пропущен.
При времени равном 00 режим выключен.

Режим УSt Буd. Установки будильника.

Bip сигнал будильника — ШИМ.
Pin сигнал будильника — уст в 1 вывод буд.
Oba Шим и вывод.
Отсрочка сигнала.
Задаётся число отсрочек сигнала.
При откл. отсрочке (00) будильник выключается нажатием любой клавиши.
При вкл. отсрочке сигнала будильник откл. кнопкой F, при нажатии кнопок SET PLUS MINUS сигнал отключается, но опять сработает примерно через 5 минут.
При активной отсрочке сигнала, в нулевом режиме, мигает точка последнего разряда.
Отключение отсрочки (при отсутствии сигнала). В режиме 0, нажатие SET вкл. этот режим. Наличие активной отсрочки индуцирует символ о на 4 знакоместе. Нажатие PLUS MINUS выключает отсрочку.

Режим DS18B20.

Датчики температуры DS18B20.
Режим показывает, как определилось подключение датчиков, и настраивает датчики на разрешение 12 бит.
Выбор отображения температуры.
1 — 07.5
2 —   7.5 гашение нуля.
on — датчик подключен 3 проводами;
PA.- паразитное питание, датчик подключен 2 проводами;
— — датчик отсутствует.
При выходе из этого режима датчики настраиваются на разрешение 12 бит.

Режим Light.

Настраивается яркость для дневного времени.
Для ночи.
Ночное время.

Режим Сигнал.

SIGNAL после входа в режим кнопками плюс/минус выбирается:
budil. S или button. S
соответственно частота ШИМ для будильника и кнопок.
При входе в эти подрежимы на индикаторе:
H004.L000.
Частота генерируется в режиме быстрой шим(CTC mode). Верхний порог задается регистром OCR1A1. H004-старший байт L000-младший байт.
Что бы отключить сигнал от нажатия кнопок — установить H000 L000.
Если в режиме УSt Буd.выбрана опция PIN, для будильника шим сигнал выводится не будет.

Режим Сброс настроек.

По нажатию SET: Установка по умолчанию основных переменных в программе, обнуление всех будильников. Запись этих значений в EEPROM.

Действия в нулевом режиме.

F — выбор режима.
SET — режим отмены отсрочки сигнала
PLUS — режим Уст SEE.
MINUS — установка будильников.


Каждый час, на одну секунду, устанавливается вывод PB2(16).

Для экономии, в режиме питания от батарей запрещается отсрочка сигнала. Так же останавливается работа таймера.


Из схемы можно исключить конденсаторы к кварцу, если запрограммировать fuse бит CKOPT.

Датчик температуры можно подключить двумя проводами, для этого нужно замкнуть GND c VDD, при этом датчик переключится в режим паразитного питания. Такой способ удобно применять для датчика, который расположен на улице. При таком подключении нужен резистор 100 ом для защиты порта, на схеме указан. По программе перед каждым циклом чтения температуры выполняется проверка на замыкание и на присутствие датчика. При любом криминале вывод мк. переводится в Z состояние, на индикаторе: —.

Если будильник настроить на включение вывода, то можно использовать чип от музыкальной открытки.


В этой монтажке не установлены транзисторы на вывод таймера и будильника A..H.
Монтажная плата разрабатывалась под корпус телефонной приставки калибри.

Посмотреть фотографии.


При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg ). посмотреть для PonyProg. Cбросить основные переменные в программе — SETUP -> СБРОС НАС. -> SET.


Исходник WinAVR-20060421.
Прошивки (анод/катод).
Схема в splan5.
монтажки.

Исходник WinAVR-20060421. Прошивки анод, катод и прошивка для схемы с большими индикаторами. C автоматическим переходом на летние зимние время.
Без перехода на летние зимние время.
Схема для больших индикаторов. Прислал Алексей.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован.