Часы на atmega8 своими руками

Часы на atmega8 своими руками

В данной конструкции используются четыре газоразрядных индикатора LC513. Для точного расчета времени применена микросхема PCF8583. Сердцем устройства является микроконтроллер ATmega8. Чтобы не настраивать заново время при отключении питания, используется электролитический конденсатор высокой емкости. Лампы питаются от напряжения 150В.

Часы размещены в деревянном корпусе, сделанным "Под старину" — настоящее украшение для любого дома!

Внимание! В устройстве используется опасное для жизни напряжение!

Железо

Принципиальная схема контроллера:

Сердцем является микроконтроллер U1 (ATmega8), тактирующийся от внутреннего генератора с частотой 8 МГц. Микросхема часов реального времени U2 (PCF8583) тактируется кварцевым резонатором X1 (32,768 кГц) и связана с микроконтроллером через шину I2C. Конденсатор С4 (4700uF/5V) способен в течении нескольких часов питать микросхему U2 в случае отключения питания. Резисторы R17 (3,3 кОм) и R18 (3,3 кОм) — подтяжка шины I2C к положительному выводу источника питания. Разъем SW используется для подключения четырех кнопок управления работой часов. Транзистор T11 (BC558) с резистором R15 (3,3 кОм) и R16 (3,3 кОм) — для подключения пищалки. Разъемы GpA и GpK обеспечивают связь между контроллером и платой драйвера дисплея. Разъем Prog и резисторы R11 — R14 (330R) — для прошивки микроконтроллера. Стабилизатор напряжения построен на микросхеме U3 (7805) и конденсаторах С1 (220uF) и С2 (47uF). Высоковольтные транзисторы Т1 — Т2 (MPSA42) и резисторы R1 — R10 (33k) управляют работой катодов дисплея.

На рисунке ниже показана схема драйвера дисплея:

Лампы L1 — L4 (LC513) соединены таким образом для применения мультиплексирования. Транзисторы Т1 (MPSA92) и Т2 (MPSA42) вместе с резисторами R1 (33k), R2 (470K) и R3 (100K) необходимы для подачи на анод высокого напряжения. Ток через L1 ограничен резистором R13 (47k). Обвязка всех ламп одинакова. Неоновая лампа, выступающая в качестве разделительной точки контролируется транзистором T9 (MPSA42), резистор R18 (220k) ограничивает ток. Разъемы GpA и GpK используются для подключения к плате контроллера. Разъем HV — для подачи напряжения на лампы с повышающего преобразователя.

Прислали мне тут намедни схемку часов с просьбой проверить их работоспособность. Схема крайне простая и именно этим она меня заинтересовала.

Как видно из схемы, в этой конструкции всего несколько деталей, однако меня смутило то, что питание на микроконтроллер подаётся через резистор. Скорее всего это было сделано для того, чтобы сэкономить на резисторах в цепях анода индикатора и тем самым понизить ток индикатора до приемлемого уровня.
Для сборки потребуется микроконтроллер ATmega8, кварц с частотой 32.768 Герц, резистор 100 Ом, и любой индикатор с общим катодом. Ну и пара кнопок для установки времени.
Для начала я собрал часы по оригинальной схеме.

Читайте также:  Исправить географические ошибки в тексте

Вот что получилось.

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

Несколько поменялся и рисунок платы.

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

Вот теперь яркость стала намного больше и индикатор светится равномерно.

Тут можно посмотреть фьюзы и прошивку микроконтроллера.

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

Теги статьи: Добавить тег

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

Автор:
Опубликовано 01.01.1970

Всем привет. Часы на ATmega8 умеют делать следующие вещи:

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

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

Форматы отображения.
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

on/__-будильник вкл/откл.
Дни недели, в которые сработает будильник (здесь в 6 и 7 день будильник выключен).
Будильники A B C D E F G H вкл/откл. вывод call a_h мк. Будильник пригодится для управления нагрузкой. С его помощью вывод call a_h можно устанавливать на любое количество минут.
___-выключен, SET-ножка буд. A-H уст в 1, CLS уст в 0.
n-сработает один раз, o-вкл. всегда.

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

Главные меню режима SETUP.
PORT

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

Режим PORT.

Port

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

Режим часы.

Устанавливаются: минуты, часы, день недели, число.
Месяц.
Корректировка секунд. Нажатие MINUS сбрасывает секунды в ноль. Если секунд было больше 31, то минуты прибавляются на один.
Коррекция хода часов. Данная величина прибавляется или вычитается каждый час. Шаг 0,03 секунды. Max=0.87.

Режим Уст SEE.

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

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

1

2

3

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

4

5

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

6

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

7

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

8

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

9

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

A

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

b

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

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

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

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

Режим DS18B20.

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

Режим DEFAULT.

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

LIGHT

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

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

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

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

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

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

Программа написана на си в WinAvr.
Скачать исходник, HEX и EEP файлы. clock_t.rar (18 Kb)

При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg ). Запрограммировать бит CKOPT (подключение внутренних конденсаторов). посмотреть для PonyProg. Затем прошить EEPROM, или сбросить основные переменные в программе таким образом — SETUP -> DEFAULT -> SET.

А вот тут можно скачать весь проект целиком. Ну чтоб был.

Ссылка на основную публикацию
Функция overdrive в мониторе
Технология компенсации времени отклика LCD-матрицы, известная как Overdrive (у каждого производителя она имеет свое фирменное название) обеспечивает существенное ускорение переключения...
Формула рандома в паскале
Здравствуйте, уважаемые читатели нашего сайта. Сегодня мы рассмотрим две полезные процедуры в паскале - Random и Randomize.И опять я начну...
Формула расчета мощности конденсатора
Реактивная мощность обусловлена способностью реактивных элементов накапливать и отдавать электрическую или магнитную энергию. Eмкостная нагрузка в цепи переменного тока за...
Функция еош в excel
Всем добрый день! Эта статья посвящается вопросу, как можно избавится от ошибки в результате вычисления, так как это делает функция...
Adblock detector