Часы на атмега8 схемы: Часы — Схемы радиолюбителей

Содержание

ЧАСЫ НА ATMEGA

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

Схема часов на Atmega8


    Для сборки устройства нам понадобятся:

— Кварц на 32768 МГц 1 шт
— Микроконтроллер Atmega8 1шт.
— Семисегментный светодиодный индикатор с общим катодом 4-х разрядный.
— Две обычные кнопки (не фиксирующиеся)
— Панелька под микросхему (28 ног)
— Провода, или же шлейф.
— И, естественно, программатор, чем будем програмировать МК.

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


   Далее паяем выводы к индикатору. Индикатор у меня 9-ти разрядный, т.к 4х разрядный сгорел, пришлось использовать какой был… Но не забываем про то, что можно сделать его и из двух индикаторов 2-х разрядных, один 4-х разрядный, из одноразрядных 4-х штук можно сделать 4-х разрядный, подсоединив паралельно все ноги кроме общего катода.


   Теперь очередь кнопок для регулировки времени. Паяем к 27 и 28 ногам микроконтроллера Atmega8.


   И припаиваем на общий (минус) остальные выводы от кнопок, хорошо герметизируем, дабы не было КЗ.


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

Видео — часы на МК


   Блок питания подбирайте исходя из типа индикаторов и установленногой яркости (тока). Можете вообще использовать батарейки. Но лучше собрать отдельный блочок — в корпусе с часами. С вами был [PC]Boil.

   Форум по микроконтроллерам

   Форум по обсуждению материала ЧАСЫ НА ATMEGA

ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8

Привет всем читателям и почитателям сайта Радиосхемы! Сегодня хочу поделиться с вами очередной простенькой конструкцией «Часы-термометр». Немного предыстории: вечером очень плохо видно показания уличного термометра, чтобы разглядеть положение стрелки, необходимо довольно долго вглядываться и иной раз пользоваться фонариком. Спустя определённое время мне это надоело и решил заменить прибор на электронный, который бы отображал информацию на светодиодных семи сегментных индикаторах. После чего бы не пришлось даже подходить к окну, чтоб узнать уличную температуру. Так как индикацию хорошо видно более чем с трёх метров. Схем данного устройства в сети полно, но я, как человек относящийся к семейству Радиолюбителей, решил собрать свою. Так как с недавних пор пытаюсь осваивать микроконтроллеры, то выбор пал на широко распространённый и дешёвый МК Atmega8. Далее была изготовлена плата по технологии ЛУТ, после чего уже приступил к программной части. Программа написана на языке Си с помощью среды разработки CodeVisionAVR.

Схема принципиальная электрическая

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

Датчиком температуры является микросхема DS18B20. Так как в устройстве «Часы-термометр» нет своей батареи, при пропадании питания естественно показания будут сбиваться. И что бы это не явилось причиной какого-нибудь опоздания человека на жизненно важные дела, имеется интересная «фишка» — при подаче питания вместо времени на дисплее будут отображаться прочерки, пока не нажмёшь одну из двух кнопок настройки.

Корпусом самодельного измерителя температуры послужила подходящая коробочка от запонок. В неё была помещена сама плата часов-термометра и плата вытащенная из телефонного зарядника. Датчик DS18B20 сделан выносным и подсоединяется через разъём.

Список необходимых деталей

  • Микроконтроллер Atmega8 – 1шт.
  • Кварц  32768 Гц – 1 шт.
  • Датчик температуры DS18B20 – 1шт.
  • Семи сегментный индикатор(4 – разряда) – 1 шт.
  • Резисторы SMD типоразмера 0805:
  • 620 Ом – 8шт.
  • 0 Ом (перемычка) – 1шт.
  • 4,7 кОм – 1шт.
  • Тактовые кнопки – 2 шт.

Видео работы устройства на Ютуб-канале


Схема наручных часов


На аппаратной стороне часы содержат микроконтроллер Atmel ATmega328P, регулятор 2,5 В, часы реального времени Maxim DS3231M, 1,3 ″ 128 × 64 монохромный OLED-экран, 2 светодиода (красный и зеленый), зуммер, зуммер, Трехпозиционный переключатель для навигации, питание от LiPo-аккумулятора емкостью 150 мАч, который можно заряжать через USB и 2 печатные платы (хотя одна печатная плата используется только как подъемник для OLED).

ATmega328P использует свой внутренний генератор 8 МГц и работает от линейного стабилизатора 2,5 В. Его ток потребления составляет около 1,5 мА в активном состоянии и 100 нА в спящем режиме.

DS3231M RTC — это превосходный чип, заключенный в небольшой 8-контактный корпус, который включает встроенный MEMS-резонатор с температурной компенсацией с точностью ± 5 ppm (± 2 минуты 40 секунд в год). Требовались только развязывающий конденсатор и несколько дополнительных подтягивающих резисторов. RTC подключен так, что вместо подачи питания на вывод VCC он подается на вывод Vbat, что снижает потребление тока с примерно 100 мкА до 2.5uA.
К сожалению, этот чип, кажется, очень трудно достать по разумной цене, если вы не в США. Пришлось получить свои в качестве образцов.

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

Вы могли заметить на схеме, что светодиоды напрямую подключены к микроконтроллеру без каких-либо резисторов. Внутренние полевые МОП-транзисторы микроконтроллера имеют сопротивление во включенном состоянии около 40 Ом, поэтому с сопротивлением 2.Напряжение питания 5 В и светодиоды с 2 В f , около 12,5 мА проходит через светодиоды. Мне бы хотелось иметь синий светодиод, но падение напряжения для них обычно превышает 3 В, что потребовало бы дополнительных резисторов и полевого МОП-транзистора.

Поскольку микроконтроллер работает от 2,5 В, необходимо немного снизить напряжение батареи, чтобы получить показания АЦП. Это делается с помощью простого делителя напряжения. Однако с делителем напряжения, подключенным к батарее, через него будет постоянно протекать ток около 350 мкА, это огромная трата энергии.Был добавлен P-MOSFET (и некоторое преобразование уровня напряжения для него, о котором я забыл в первой версии, поэтому он всегда оставался включенным), поэтому делитель можно включать только при необходимости.

Используемый стабилизатор на 2,5 В — это Torex XC6206, выбранный в первую очередь из-за его крошечного тока покоя, составляющего всего 1 мкА.
Почему линейный регулятор, а не импульсный? Импульсные регуляторы, на которые я смотрел, имели КПД не менее 80% при нагрузке 2 мА, но этот КПД быстро упал до менее 50% при нагрузке 100 мкА.Поскольку устройства, подключенные к регулятору, потребляют 2–3 мкА в спящем режиме, импульсный стабилизатор будет работать очень плохо по сравнению с линейным регулятором. Эффективность линейного регулятора 2,5 В составляет 60% при входном 4,2 В до 83% при входном 3 В.

Нижняя сторона

Верхняя сторона, под дисплеем

Итак, в нашем распоряжении есть красивый OLED-дисплей и 32 Кбайт программного пространства. Разве мы можем иметь больше, чем просто время и дату?

Много времени было потрачено на оптимизацию кода рендеринга, которая, короче говоря, включает в себя копирование растровых изображений из флэш-памяти в буфер кадра в ОЗУ и отправку буфера кадра через SPI в OLED.Конечным результатом была возможность поддерживать 100+ кадров в секунду почти во всех областях часов с 8-мегагерцовым AVR. Однако, поскольку анимация основана на кадрах, а не на времени, и для экономии энергии, частота кадров ограничена 60 кадрами в секунду.

Некоторые из основных анимированных вещей:

  • ЭЛТ-анимация при входе и выходе из спящего режима (похожа на ЭЛТ-анимацию, которая есть в некоторых смартфонах Android).
  • Основные временные числа имеют тикерный эффект.
  • Меню имеет анимацию прокрутки влево / вправо, и при выборе параметра текущее меню выпадает с экрана, а следующее выпадает.
  • Установите до 10 сигналов тревоги.
    Количество сигналов тревоги ограничено только объемом доступной EEPROM.
  • Каждый будильник имеет час, минуту и ​​дни недели, когда он должен быть активен.

Меню сигналов тревоги

Breakout

Автомобиль dodge

Фонарик
Включает все OLED-пиксели и светодиоды, также имеет режим стробоскопа

Секундомер

  • 3-канальный регулятор громкости
  • Спящий режим таймаут
  • Яркость дисплея
  • Анимации
    Вы же не собираетесь их выключать, правда?

Настройки громкости

В «активном» режиме микроконтроллер старается максимально уйти в спящий режим.В режиме ожидания контроллер будит каждую миллисекунду, чтобы увидеть, нужно ли что-то обновлять, если нет, он возвращается в режим ожидания, это обычно занимает менее 100 мкс, если дисплей не нуждается в обновлении. В этом режиме потребляемый ток может составлять от 0,8 мА до 2 мА, в зависимости от того, сколько времени требуется для отрисовки кадров (быстрое время отрисовки кадра = больше времени в режиме ожидания).

В «спящем» режиме микроконтроллер выключает OLED-дисплей и переходит в спящий режим с пониженным энергопотреблением, в котором он просыпается только нажатием кнопки, сигналом RTC или подключением USB.В этом состоянии микроконтроллер потребляет ~ 100 нА.

В спящем режиме общий ток, потребляемый часами, составляет около 6 мкА. В активном режиме потребляемый ток может варьироваться от 2 мА до более 70 мА, хотя обычно потребляемый ток составляет 10 мА.


Срок службы батареи в различных режимах
Емкость аккумулятора: 150 мАч 15 часов
Минимум
(спящий режим)
Типичный
(основной дисплей времени)
Высокий
(фонарик)
6uA
2,85 года
64 мА
2 часа 20 минут

Если часы находятся в активном режиме в среднем 1 минуту в день (с 5-секундным таймаутом сна, который будет проверять время 12 раз в день) и Все каналы громкости установлены на минимум, часы должны работать около 1 года и 4 месяцев без подзарядки.


Пробой по току (типовой) мА / 1uA
Деталь Ток
ATmega328P (спящий / активный) 100 нА / 1,5 мА
OLED (спящий / активный)
DS3231M RTC 2,5 мкА
Диод Шоттки (D1) (обратная утечка) 1 мкА
Регулятор (ток покоя) 1 мкА
Всего (спящий / активный) 6.1uA / 10mA

В первой версии было несколько проблем:

  • Добавлено преобразование уровня для P-MOSFET АЦП.
    Без преобразования уровня P-MOSFET всегда был включен. Чтобы выключить P-MOSFET, напряжение затвора должно быть примерно на том же уровне, что и напряжение его источника (который подключен к батарее), но микроконтроллер выдавал только 2,5 В.
  • Добавлен понижающий резистор затвора для полевого МОП-транзистора, управляющего эхолотом.
    Затвор полевого МОП-транзистора был плавающим, когда микроконтроллер был запрограммирован, что вызывало включение полевого МОП-транзистора и пропускание неимпульсного тока через звуковой сигнализатор, что, вероятно, для него не годилось.
  • Большие контактные площадки для разъема MicroUSB.
    Обычно разъемы SMD MicroUSB имеют контакты для пайки по бокам и должны иметь дополнительные контактные площадки под пайкой, но, поскольку они припаяны вручную, нижняя часть недоступна. Без дополнительных площадок для пайки разъем USB шатался, поэтому некоторые из контактов разъема в конечном итоге сломали паяные соединения. Чтобы решить эту проблему, я увеличил боковые контактные площадки для пайки, чтобы разъем можно было припаять по всей его стороне, а не только к язычку. Больше никаких шатких разъемов.

Из 3 OLED-дисплеев 2 умерли через несколько минут после подключения к часам. Один с Ebay, другой с AliExpress. Я до сих пор не уверен, почему они умерли, может просто китайское качество? Тот, который работал, тоже был с Ebay.

  • Программирование через USB.
    На данный момент нужно воткнуть 4 провода в плату (программирование SPI) и потом надеяться, что они не выпадут при программировании.
  • Добавьте датчик уровня топлива IC.
    На данный момент уровень заряда батареи определяется по ее напряжению, это не очень точный метод определения оставшегося заряда батареи.
  • Другой микроконтроллер.
    Текущая прошивка использует ~ 28 КБ из 32 КБ доступного программного пространства в ATmega328P, другой микроконтроллер с дополнительным пространством для программ и, вероятно, потребуется больше ОЗУ, чтобы добавить больше вещей, таких как калькулятор (вещи с плавающей запятой съедают много пространство программы). Тем не менее, ATmega328P имеет больше всего программного пространства для AVR в 32-контактном корпусе TQFP, и для того, чтобы иметь больше программного пространства, мне пришлось бы использовать 44-контактный AVR. Интересно выглядит ATmega1284.
  • Регулятор переключения, регулятор нагнетательного насоса или, может быть, гибридное решение?
    Линейный регулятор, который используется в настоящее время, не особенно эффективен, а импульсные регуляторы не очень хороши с низким потреблением тока. Возможно, регулятор накачки заряда или гибридное решение для переключения между линейным регулятором для спящего режима и импульсным регулятором для активного режима?
  • Случай какой-то?
Исходные коды доступны на GitHub зарядное устройство IC

nF

9013 9013 901 9013 901 9013 — 9013ay аккумулятор ( 9013ay) —
Схема Деталь / значение Описание Количество
U1 Atmel ATmega328CPP 1
U4 XC6206P252MR 2.Регулятор LDO, 5 В 1
U2 DS3231MZ + RTC 1
Q1, Q2 DMP1045U P- 9013 9013 9013 9013 9013 DMOSFET 2 9013 N-MOSFET 2
D1 ZLLS410 Диод Шоттки 1
D2 TS4148 Высокоскоростной диод C 1 Конденсатор 1
C4, C6, C7 100nF Конденсатор 3
C3, C8, C9, C10 905 2,2 мкФ Конденсатор 1
C1, C2, C11 4,7 мкФ Конденсатор 3
R4, R8, R10, R10 R6 2.7K Резистор 1
R5 7.5K Резистор 1
R7 10K Резистор 1
R2, R3, R11 47K Резистор 3
R9 390K Резистор 1
сеть сеть 1
LED1 Светодиод (зеленый) Светодиод 1
LED2 Светодиод (красный) Светодиод 1
LS4der Магнит 1
SW1 3-позиционный переключатель навигации 1
Разъем MicroUSB (Ebay) 1
OLED1 OLED (Ebay / AliExpress) 1
1
Основная плата 1
Плата подъемника дисплея 1
1

Показано на
Atmel, HackADay, Electronics Lab, adafruit

Водонепроницаемость до 0 метров!

% PDF-1.6 % 2056 0 объект > эндобдж xref 2056 107 0000000016 00000 н. 0000003206 00000 н. 0000003343 00000 п. 0000003543 00000 н. 0000003572 00000 н. 0000003624 00000 н. 0000003661 00000 п. 0000003875 00000 н. 0000003959 00000 н. 0000004040 00000 н. 0000004122 00000 п. 0000004204 00000 н. 0000004286 00000 п. 0000004368 00000 н. 0000004450 00000 н. 0000004532 00000 н. 0000004614 00000 н. 0000004696 00000 н. 0000004778 00000 п. 0000004860 00000 н. 0000004942 00000 н. 0000005024 00000 н. 0000005106 00000 н. 0000005188 00000 п. 0000005270 00000 п. 0000005352 00000 п. 0000005434 00000 п. 0000005516 00000 н. 0000005598 00000 н. 0000005680 00000 н. 0000005762 00000 н. 0000005844 00000 н. 0000005925 00000 н. 0000006120 00000 н. 0000006813 00000 н. 0000007644 00000 н. 0000008196 00000 н. 0000008768 00000 н. 0000008872 00000 н. 0000009505 00000 н. 0000010266 00000 п. 0000011014 00000 п. 0000011752 00000 п. 0000012490 00000 п. 0000013203 00000 п. 0000013914 00000 п. 0000027053 00000 п. 0000027724 00000 н. 0000032720 00000 п. 0000037829 00000 п. 0000071234 00000 п. 0000072242 00000 п. 0000072733 00000 п. 0000072813 00000 п. 0000072874 00000 п. 0000072968 00000 п. 0000073141 00000 п. 0000073324 00000 п. 0000073503 00000 п. 0000073646 00000 п. 0000073757 00000 п. 0000073929 00000 п. 0000074016 00000 п. 0000074107 00000 п. 0000074240 00000 п. 0000074381 00000 п. 0000074505 00000 п. 0000074626 00000 п. 0000074736 00000 п. 0000074883 00000 п. 0000074987 00000 п. 0000075138 00000 п. 0000075267 00000 п. 0000075351 00000 п. 0000075509 00000 п. 0000075623 00000 п. 0000075724 00000 п. 0000075824 00000 п. 0000075926 00000 п. 0000076055 00000 п. 0000076165 00000 п. 0000076293 00000 п. 0000076470 00000 п. 0000076568 00000 п. 0000076668 00000 н. 0000076859 00000 п. 0000077051 00000 п. 0000077244 00000 п. 0000077436 00000 п. 0000077629 00000 п. 0000077820 00000 п. 0000078012 00000 п. 0000078204 00000 п. 0000078396 00000 п.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *