Светодиодные часы atmega. Светодиодные часы на микроконтроллере ATmega: пошаговая инструкция по сборке

Как собрать светодиодные часы на ATmega8 своими руками. Какие компоненты понадобятся для сборки. Как запрограммировать микроконтроллер и настроить часы. Какие функции реализованы в часах на ATmega.

Содержание

Компоненты для сборки светодиодных часов на ATmega8

Для сборки часов потребуются следующие основные компоненты:

  • Микроконтроллер ATmega8
  • Микросхема часов реального времени DS1307
  • Светодиодный индикатор с общим катодом
  • Транзисторные драйверы на BC547
  • Микросхема ULN2003A для коммутации индикаторов
  • Кварцевый резонатор 32768 Гц
  • Резисторы, конденсаторы, кнопки управления

Микроконтроллер ATmega8 является «мозгом» часов и управляет всеми функциями. DS1307 обеспечивает точный отсчет времени. Светодиодный индикатор отображает время крупными яркими цифрами.

Схема подключения компонентов часов

Принципиальная схема часов на ATmega8 включает следующие основные узлы:

  • Питание от стабилизированного источника 5В
  • Подключение DS1307 по I2C интерфейсу
  • Драйверы светодиодного индикатора на транзисторах
  • Коммутация разрядов индикатора через ULN2003A
  • Кнопки управления с защитными резисторами
  • Пьезоизлучатель для звуковых сигналов

Светодиодный индикатор подключается по схеме динамической индикации для экономии выводов микроконтроллера. Это позволяет управлять 4-разрядным индикатором всего 11 выводами ATmega8.


Программирование микроконтроллера ATmega8

Для программирования ATmega8 потребуется:

  • Программатор (например, USBasp)
  • Среда разработки (AVR Studio, Atmel Studio)
  • Hex-файл прошивки часов

При программировании необходимо правильно настроить fuse-биты микроконтроллера для работы с внешним кварцевым резонатором. Основной алгоритм работы часов реализован на языке C.

Функциональные возможности часов на ATmega8

Собранные часы на ATmega8 обладают следующим функционалом:

  • Отображение текущего времени (часы, минуты, секунды)
  • Отображение даты (день, месяц, год)
  • Будильник с настройкой времени срабатывания
  • Настройка яркости индикатора (6 уровней)
  • Автоматический переход на летнее/зимнее время
  • Секундомер с точностью 0.1 сек
  • Таймер обратного отсчета

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

Особенности конструкции корпуса часов

Для размещения электронной начинки часов подойдет пластиковый или деревянный корпус. Важные моменты при проектировании корпуса:


  • Обеспечить хорошую видимость индикатора
  • Предусмотреть вентиляционные отверстия
  • Обеспечить доступ к кнопкам управления
  • Продумать крепление платы внутри корпуса
  • Сделать отверстие для пьезоизлучателя

Корпус можно изготовить из фанеры или оргстекла методом лазерной резки. Это позволит сделать аккуратные отверстия под индикатор и кнопки управления.

Настройка и калибровка собранных часов

После сборки часы необходимо настроить и откалибровать:

  1. Установить точное время и дату
  2. Настроить яркость индикатора
  3. Установить будильник (при необходимости)
  4. Проверить точность хода часов
  5. При необходимости подстроить частоту кварцевого резонатора

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

Возможные проблемы и их устранение

При сборке и настройке часов могут возникнуть следующие проблемы:

  • Часы отстают или спешат — проверить настройку кварцевого резонатора
  • Не работает индикатор — проверить подключение и драйверы
  • Сбивается время при отключении питания — заменить батарею резервного питания
  • Самопроизвольное срабатывание кнопок — добавить RC-фильтры

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


Дополнительные возможности модернизации часов

Базовую конструкцию часов на ATmega8 можно дополнить новыми функциями:

  • Добавить датчик температуры и влажности
  • Реализовать управление по ИК-пульту
  • Добавить цветную RGB-подсветку индикатора
  • Интегрировать модуль беспроводной связи
  • Реализовать синхронизацию времени по радиосигналам

Открытая архитектура на базе микроконтроллера позволяет постоянно совершенствовать функционал часов путем доработки программы и схемы. Это превращает простые часы в многофункциональное устройство.


Большие светодиодные часы-календарь на микроконтроллере ATMega8 — Меандр — занимательная электроника

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

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

В основе  часов находится микроконтроллер ATMega8 и  микросхема — DS1307.  Таким образом принципиальная схема получилась достаточно простой (Рис.1).

Рис.1. Принципиальная схема часов на микроконтроллере ATMega8

Микросхема DS1307 – представляет собой экономичные часы реального времени с последовательным интерфейсом. DS1307 содержит часы-календарь с представлением информации в двоично-десятичном коде и 56 байт энергонезависимого статического ОЗУ. Адрес и данные передаются по двунаправленной двухпроводной последовательной шине. Информация о реальном времени и календаре представляется в секундах минутах, часах, дне, дате, месяце и годе. Если текущий месяц содержит менее 31 дня, то микросхема автоматически определит количество дней в месяце с учетом высокосности текущего года. Часы работают или в 24-часовом или 12-часовом формате с индикатором AM/PM (до полудня/ после полудня). DS1307 содержит встроенную схему контроля уровня основного источника питания и при его недопустимом значении автоматически переключается к резервной батареи Bat1.

Написание программы для микроконтроллера ATmega8 и его сопряжение с DS1307 не составило особого труда.

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

Как известно микроконтроллер ATmega8 питается от 5В, а для моего светодиодного табло необходимое напряжение около 14В.

Светодиоды соединены по такой схеме:

Рис.2. Светодиодный индикатор

В одном сегменте индикатора 6 светодиодов, рассчитанных на 3В каждый. Как видим из Рис.2 все сегменты соединены между собой катодами (индикатор с общим катодом).

Каждый сегмент индикатора коммутируется с «+» источника питания через транзисторные драйвера выполненные на транзисторах BC547 (см.Рис.1, VT1,VT2). Таких драйверов 7 (на каждый сегмент). С другой стороны, для коммутации индикаторов (подключения общих катодов индикаторов к «-» источника питания) используется микросхема ULN2003A. Это 7-канальный коммутатор мощных нагрузок на основе транзисторов Дарлингтона (составных) с открытым коллектором.

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

Вот так получилось:

Рис.3. Часы с большим светодиодным дисплеем на микроконтроллере ATmega8

Рабочий режим:

Рис.4. Часы с большим светодиодным дисплеем на микроконтроллере ATmega8

Рис.5. Часы с большим светодиодным дисплеем на микроконтроллере ATmega8Рис.6. Часы с большим светодиодным дисплеем на микроконтроллере ATmega8

Часы и календарь отображаются на табло поочередно.

Видео работы и настройки часов-календаря:

Да, чуть не забыл, в начале каждого часа подается короткий сигнал через buzer со встроенным генератором (см. Рис.1).

Файлы к проекту:

[hidepost]Прошивка, Исходник[/hidepost]

Fuse-биты при программировании выставляем так:

Простые часы на микроконтроллере ATMega328p

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

Сам по себе проект ничего особенного собой не представляет — микроконтроллер Atmega328p и часы DS3231. Более-менее интересный момент только один — индикатор с общим анодом, но подключен к MAX7219, которая управляет индикаторами с общим катодом. Пришлось немного заморочиться с отображением цифр.

Хочется отметить (в первую очередь для себя, на будущее):

  • Откомпилированный код занимает чуть больше 3Кб, так что вполне можно было использовать Atmega8. Не самая большая проблема, конечно
  • Вот конкретно эти кнопки — ужасны. Использую их уже во второй поделке и плююсь. Срабатывания нечеткие, контакты ужасно дребезжат. На помойку.
  • Вследствие этого попрыгал с устранением дребезга — это лучше делать аппаратно, нежели программно.
  • Таймер DS3231 хороший, в одном корпусе с кварцем. Программируется очень просто. Один момент — в даташите прописано, что после каждого блока данных надо ждать ACK, но при этом оно зависает намертво. Зато прекрасно работает с NACK. Видимо, где-то глюк, но разбираться лень.
  • Разъем Micro USB показался мне более удобным и надежным. В предыдущих часах Mini USB и он уже разболтался, еле держит. Хотя часы — не мобильный телефон. Каждый день их никто туда-сюда не дергает.
  • Разъем программатора с шагом 1.27 мм тоже неплох в плане занимаемого места. Однако собственно разъем нужно подобрать какой-нибудь другой. Обычные pin head до одурения хлипкие.
  • Фоторезистор и динамическое управление яркостью — это очень, очень хорошо. В результате часы нормально читаются и на солнце, и ночью.

Встроенный в микросхему часов таймер имеет на борту датчик температуры, который безбожно врет. Возможно, это просто дефект конкретной микросхемы. А так больше никаких сюрпризов не было.

Собранная схема жрет в пике порядка 0.05А. В темноте — еще меньше.

Исходники и схема лежат в моём репозитории на гитхаб.

ЧАСЫ ЭЛЕКТРОННЫЕ СВЕТОДИОДНЫЕ

   Еще в юности мне хотелось собрать электронные часы. Мне казалось, что собрать часы, это было вершиной мастерства. В итоге я собрал часы с календарем и будильником на серии К176. Сейчас они уже морально устарели и мне захотелось собрать что-нибудь более современное. После долгих поисков по интернету (никогда не думал, что мне так трудно угодить;)) понравилась эта схема. Отличие от приведенной схемы в том, что не используется редкая микросхема ТРIC6В595, а ее составной и более мощный аналог на микросхемах 74HC595 и ULN2003. Исправления в схеме приведены ниже.



Схема электронных LED часов бегущая строка

   Автор схемы уважаемый ОLED, прошивка тоже его. Часы индицируют текущее время, год, месяц и день недели а также температуру на улице и внутри дома бегущей строкой. Имеют 9 независимых будильников. Имеется возможность подстройки (коррекции) хода +- минуту в сутки, выбор скорости бега строки, смена яркости свечения светодиодов, в зависимости от времени суток.

   При пропадании электричества, часы питаются либо от ионистора (емкости 1 Фарад хватает на 4 суток хода), либо от батарейки. Кому что по душе, плата рассчитана на установку того и другого. Имеют очень удобное и понятное меню управления (все управления производится всего двумя кнопками). В часах использованы следующие детали (все детали в СМД корпусах):

Микроконтролер АтМЕГА 16А

 —
Сдвиговый регистр 74HC595

 —
Микросхема ULN2803 (восемь ключей Дарлингтона)

 —
Датчики температуры DS18B20 (устанавливаются по желанию)

 —
25 резисторов на 75 Ом (типономинала 0805)

 —
3 резистора 4.7кОм

 —
2 резистора 1.5 кОм

 —
1 резистор 3.6 кОм

 —
6 СМД конденсаторов емкостью 0.1 мкф

 —
1 конденсатор на 220 мкф

 —
Часовой кварц на частоту 32768 герц.

 —
Матрицы3 штуки марки 23088-АSR 60х60 мм — общий катод

 —
Бузер любой на 5 вольт.




Плата печатная электронных LED часов бегущая строка

   Для жителей Украины подскажу, матрицы есть в магазине Луганского радиомаркета. Преимущества часов перед другими аналогичными устройствами это минимум деталей и высокая повторяемость. Светодиодные часы начинают работать сразу после прошивки, если конечно отсутствуют косяки в монтаже. Прошивается микроконтроллер внутрисхемно, для этого на плате предусмотрены специальные выводы. Я прошивал программой Понипрог. Скрины фьюзов для программ понипрог и AVR приведены ниже, также выложены файлы прошивки на украинском и русском языке, кому что роднее. 


   Если Вам не нужны датчики температуры, то их можно не устанавливать. Часы автоматически распознают подключение датчиков, и если один или оба датчика отсутствуют, то устройство просто перестаёт отображать температуру (если отсутствует один датчик, то не отображается температура на улице, если оба — то не отображается температура вообще).

Самодельный корпус для LED часов

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

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


   Собрано уже четыре экземпляра данных часов, дарю каждый на день рождения родственникам. И всем они очень понравились. Если вам тоже захотелось собрать эти часы и у вас возникли вопросы, милости прошу на наш форум. С уважением, Войтович Сергей (Сергей-78).

   Обсуждение конструкции

   Форум по обсуждению материала ЧАСЫ ЭЛЕКТРОННЫЕ СВЕТОДИОДНЫЕ



Многофункциональные цифровые часы на микроконтроллере Attmega8. Схема и описание

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

Дисплей построен на шести 7-сегментных светодиодных индикаторов с регулировкой яркости. Часы также оснащены резервным питанием от батарей.

Описание конструкции микроконтроллерных часов

Как уже было сказано выше, часы имеют шестизначный дисплей, состоящий из двух трехзначных дисплеев T-5631BUY-11, работающий в мультиплексном режиме. Аноды индикаторов сгруппированы по разрядам и переключаются с помощью транзисторов Т1…Т6.

Катоды сгруппированы в сегменты и питаются непосредственно от микроконтроллера IO1 Attmega8. Частота мультиплексирования составляет 100Гц.

Часы контролируется низкочастотным кварцевым резонатором X1 с частотой 32768 Гц. В результате активации бита CKOPT, разрешающего использование внутренних конденсаторов 36пф для кварца, отпадает необходимость в использовании внешних конденсаторов.

В случае возникновении проблем с запуском генератора, можно попробовать подключить 2 конденсатора по 22пф. Для еще большей точности часов можно вообще отключить внутренние конденсаторы (сбросить бит СKOPT) и оставить только внешние.

Пъезоизлучатель REP1 издает звуковой сигнал будильника и сигнализирует о завершении работы таймера. Во время звукового сигнала на выводе 16 (порт PB2) появляется лог.1. Этот сигнал можно использовать для управления какой-либо нагрузкой.

Управление часами производится тремя кнопками — минуты, часы и режим. Кнопки подключены через резисторы, которые защищают порты микроконтроллер Attmega8. Схема питается от источника 5 вольт (7805). Потребление тока в основном зависит от числа активных индикаторов, а так же от степени настройки яркости.

Блок питания 0…30 В / 3A

Набор для сборки регулируемого блока питания…

При максимальной яркости ток потребления доходит до 60 мА. Часы снабжены резервной батареей питания. Во время работы от батареи, часы переходят в экономичный режим, при котором дисплей выключен. Так же в этом режиме не активны и кнопки за исключением случая, когда необходимо отключить звуковой сигнал.

Напряжение резервного питания от 3 до 4,5 В. Это может быть одна батарея на 3В, три NiMH или NiCd по 1,2 В или один аккумулятор Li-Pol или Li-Ion (от 3,6 до 3,7 В). Ток потребления от 3В батареи составляет всего лишь 5…12мA. Время автономной работы часов в экономичном режиме от батареи 3В типа CR2032 со стандартной емкостью 200mAh теоретически должно хватить примерно на 2,5 — 3 лет.

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

Управление часами

Часы управляются с помощью TL1-минута, час-TL2 и TL3-режим. Кнопки часы и минуты используются в режиме часов для назначения часов и минут. В других режимах они имеют различные функции. Кнопка режима переключает между различными режимами, которых в общей сложности 8:

Режим 1-й — Часы

В этом режиме на дисплее отображается текущее время в формате «ЧЧ.ММ.СС». Кнопка часов используется для установки часов. Кнопка минут для установки минут. При ее нажатии происходит сброс секунд.

Режим 2-й — Включение перехода на летнее время и установки года

Здесь Вы можете включать и выключать автоматический переход между летним и зимним временем и установить год. Данные следующего формата «AC ‘RR» (АС – автоматическое время, пробел, последние две цифры года).

 

Режим 3-й — Таймер обратного отсчета

Это режим позволяет организовать обратный отсчет от заданного значения до нуля. По истечении этого времени раздастся звуковой сигнал и светится светодиод LED1. Звуковой сигнал может быть остановлен нажатием кнопки Режим. Данные следующего формата «ЧЧ.ММ.СС». Максимально возможное значение составляет 99.59.59 (почти 100 часов).

Режим 4-й – Комбинированный вывод информации

В этом режиме, попеременно показывается:

  1. текущее время в формате «ЧЧ.ММ.СС»
  2. дата в формате «AA.DD.MM.» 

Каждый формат отображается в течение 1 секунды. В этом режиме используются кнопки Часов и Минут, для регулировки яркости дисплея (Часы-, Минуты+). Яркость изменяется логарифмически в 6 этапов: 1/1, 1/2, 1/4, 1/8, 1/16 и 1/32-й. По умолчанию установлено 1/2

Режим 5-й — Установка дня недели и режим работы будильника

В этом режиме можно установить день недели — с понедельника по воскресенье (отображается как пн, вт, ср, чт, пт, сб, вс), включать будильник и выбирать его режим работы. Данные следующего формата «AA AL._» (день недели, пробел, AL., Настройка будильника).

Кнопка часов устанавливает день недели. Кнопка минут используется для включения/выключения звукового сигнала будильника и выбора режима его работы: «AL._» = будильник не активный, «AL.1″ = будильник сигналит 1 раз (затем автоматически переходит в положение»AL._»), «AL.5» = сигнал будильника только в будние дни (пн-пт, кроме сб-вс), «AL.7» = будильник звонит каждый день

Режим 6-й – Установка дня недели и даты

Кнопка часов позволяет установить день месяца. Кнопка минут позволяет установить месяц.

Режим 7-й — Секундомер

Секундомер позволяет измерять время с точностью 0,1 сек. Максимальное время измерения составляет 9.59.59.9 (почти 10 часов). Данные следующего формата «H.MM.SS.X». Кнопка минут используется для запуска и остановки секундомера. Кнопка часов используется для сброса.

Режим 8-й — Будильник

Этот режим используется для отображения и установить время будильника (ALARM). Данные следующего формата «HH.MM.AL». Кнопка Минуты устанавливает минуту будильника, кнопку Часы устанавливает час будильника.

Ниже приведена схема аналогичных часов, имеющие индикатор с общим катодом

Скачать прошивку с общим анодом (37,7 KiB, скачано: 1 378)

Скачать прошивку с общим катодом (29,9 KiB, скачано: 766)

http://danyk.cz

Часы на микроконтроллере AVR с DS1307. Самодельные наручные часы

Предлагаю для повторения схему простых электронных часов с будильником, выполненные на типа PIC16F628A. Большим плюсом данных часов является светодиодный индикатор типа АЛС, для отображения времени. Лично мне порядком надоели всевозможные ЖКИ и хочется иметь возможность видеть время из любой точки комнаты в том числе в темноте, а не только прямо с хорошим освещением. Схема содержит минимум деталей и имеет отличную повторяемость. Часы испытаны на протяжении месяца, что показало их надежность и работоспособность. Думаю из всех схем в интернете, эта наиболее простая в сборке и запуске.

Принципиальная схема электронных часов с будильником на микроконтроллере:


Как видно из схемы часов, является единственной микросхемой, используемой в данном устройстве. Для задания тактовой частоты используется кварцевый резонатор на 4 МГц. Для отображения времени использованы индикаторы красного цвета с общим анодом, каждый индикатор состоит из двух цифр с десятичными точками. В случае использования пьезоизлучателя, конденсатор С1 — 100мкФ можно не ставить.

Можно применить любые индикаторы с общим анодом, лишь бы каждая цифра имела собственный анод. Чтоб электронные часы были хорошо видны в темноте и с большой дистанции — старайтесь выбрать АЛС-ки чем покрупнее.


Индикация в часах осуществляется динамически. В данный конкретный момент времени отображается лишь одна цифра, что позволяет значительно снизить потребление тока. Аноды каждой цифры управляются микроконтроллером PIC16F628A. Сегменты всех четырех цифр соединены вместе и через токоограничивающие резисторы R1 … R8 подключены к выводам порта МК. Поскольку засвечивание индикатора происходит очень быстро, мерцание цифр становится незаметным.


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


Питаются часы от стабилизированного источника напряжением 5В. Можно и от батареек. В часах реализовано 9 режимов индикации. Переход по режимам осуществляется кнопками «+» и «-«. Перед выводом на индикацию самих показаний, на индикаторы выводится короткая подсказка названия режима. Длительность вывода подсказки — одна секунда.


Кнопкой «Коррекция» часы — будильник переводятся в режим настроек. При этом кратковременная подсказка выводится на пол секунды, после чего корректируемое значение начинает мигать. Коррекция показаний осуществляется кнопками «+» и «-«. При длительном нажатии на кнопку, включается режим автоповтора, с заданной частотой. Все значения, кроме часов, минут и секунд, записываются в EEPROM и восстанавливаются после выключения — включении питания.


Если в течение нескольких секунд ни одна из кнопок не нажата, то электронные часы переходят в режим отображения времени. Нажатием на кнопку «Вкл/Выкл» включается или выключается будильник, это действие подтверждается коротким звуком. При включенном будильнике светится точка в младшем разряде индикатора. Думал куда бы пристроить часы на кухне, и решил вмонтировать их прямо в газовую плиту:) Материал прислал in_sane.

Обсудить статью ЭЛЕКТРОННЫЕ ЧАСЫ БУДИЛЬНИК

Часы со светодиодным семисегментным индикатором на микросхеме К145ИК1911

История этих часов появления на сайте немного иная, от других схем на сайте.

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

Кратко о схеме.Это схема электронных часов своими руками выполненная на микросхеме К145ИК1911 , и время выводится на семи сегментные светодиодные индикаторы.И так его статья.Смотрим все.

Схема часов:


Для увеличения снимка, его просто стоит увеличить нажатием.И сохранить компьютер.

Не так давно передо мной встала задача – либо купить новые часы, либо собрать новые самостоятельно. Требования к часам выдвигались простые – на дисплее должны отображаться часы и минуты, должен быть будильник, причём, в качестве устройства отображения должны использоваться светодиодные семисегментные индикаторы. Не хотелось нагромождать кучу логических микросхем, а с программированием контроллеров связываться не было желания. Выбор остановил на разработке советской электронной промышленности – микросхеме К145ИК1901 .

В магазине на тот момент её не оказалось, но был аналог, в 40 выводном корпусе – К145ИК1911. Наименование выводов данной микросхемы ничем не отличается от предыдущей, различие – в нумерации.



Минусом этих микросхем является то, что они работают только с вакуумными люминесцентными индикаторами. Для обеспечения стыковки со светодиодным индикатором потребовалось построить схему согласования на полупроводниковых ключах.

В качестве драйверов строк – J1-J7 можно применить транзисторы КТ3107 с буквенным индексом И, А, Б. Для драйверов выбора сегментов D1-D4 пойдут КТ3102И, либо КТ3117А, КТ660А, а также любые другие с максимальным напряжением коллектор-эмиттер не менее 35 В и током коллектора не менее 100 мА. Ток сегментов индикаторов регулируется резисторами в коллекторных цепях драйверов строк.



Для разделения разрядов часов и минут используется точка, мигающая с частотой 1 Гц.

Эта частота присутствует на выводе микросхемы Y4, после того, как начался отсчёт времени. В данной схеме также предусмотрена возможность отображения на дисплее вместо часов и минут – минут и секунд соответственно. Переход в данный режим осуществляется нажатием на кнопку «Сек.». Возврат к индикации времени часов и минут осуществляется после нажатия кнопки «Возврат». Данная микросхема обеспечивает возможность установки двух будильников одновременно, но в данной схеме второй будильник не используется за ненадобностью. В качестве звукоизлучателя использована пьезо-пищалка со встроенным генератором, с напряжением питания 12В. Сигнал включения будильника снимается с вывода Y5 микросхемы. Для обеспечения прерывистого звучания, сигнал модулируется частотой 1 Гц, используемой для индикации секундного ритма (точки). Для более подробного изучения функционала микросхемы К145ИК1901(11) можно обратиться к документации, которую в последнее время можно без труда найти в сети. Питание микросхемы должно осуществляться отрицательным напряжением -­27В±10%. Согласно проведённым экспериментам, микросхема сохраняет работоспособность даже при напряжении -19В, причём точность хода часов при этом ничуть не пострадала.

Схема часов приведена на рисунке выше. В схеме были применены чип-резисторы типоразмера 1206, что позволяет существенно уменьшить габариты устройства. В качестве семисегментных индикаторов подойдут любые, с общим анодом.

Ну вот кончилась статься на данный момент.Которая будет еще дорабатываться и пополняться.А я выражаю благодарность ее автору-Федоренко Евгений,по всем вопросам а так же дать его почту.Пишите на Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Совсем не давно появилась необходимость в доме заиметь часы, но только электронные , так как я не люблю стрелочные, потому что они тикают. У меня есть не малый опыт в пайке и вытравки схем. Порыскав по просторам Интернета и почитав некоторую литературу, я решил выбрать самую простую схему, так как мне не нужны часы с будильником.

Выбрал эту схему так как по ней легко

сделать часы своими руками

Приступим, так что же нам надо для того, чтобы сделать себе часы своими руками? Ну конечно руки, умение (даже не большое) чтения схем, паяльник и детали. Вот полный перечень того, что я использовал:

Кварц на 10 мГц – 1 шт, микроконтроллер ATtiny 2313, резисторы на 100 Ом – 8 шт., 3 шт. на 10 кОм, 2 конденсатора по 22 пФ, 4 транзистора, 2 кнопки, светодиодный индикатор 4 разрядный KEM-5641-ASR (RL-F5610SBAW/D15). Монтаж я выполнял на одностороннем текстолите.

Но в этой схеме есть недостаток : на выводы микроконтроллера (далее МК), которые отвечают за управление разрядами, поступает довольно таки приличная нагрузка. Ток в общей сумме намного превышается от максимального тока порта, но при динамической индикации МК не успевает перегреваться. Для того чтобы МК не вышел из строя, добавляем в цепи разрядов 100 Ом резисторы.

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

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

Так как у меня имеется БП на 5В, я из схемы исключил стабилитрон.

Чтобы изготовить плату, выполнялось нанесение схемы с помощью утюга. То есть печатная схема распечатывалась на струйном принтере с использованием глянцевой бумаги, ее можно взять с современных глянцевых журналов. После вырезался текстолит нужных размеров. У меня размер получился 36*26 мм. Такой маленький размер из-за того, что все детали выбраны в SMD корпусе.

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

Пока шел процесс вытравки, дабы не ломать себе голову и не писать прошивку для работы часов, пошел на просторы Интернета и нашел под данную схему прошивку. Как прошивать МК, так же можно найти в Интернете. Мною был использован программатор, который прошивает только МК компании ATMEGA.

И вот наконец-то наша плата готова и мы можем приступить к пайке наших часов. Для пайки нужен паяльник на 25 Вт с тонким жалом для того, чтобы не спалить МК и другие детали. Пайку осуществляем осторожно и желательно с первого раза припаиваем все ножки МК, но только по отдельности. Для тех, кто не в теме знайте, что детали, выполненные в SMD корпусе, имеют на своих выводах олово, для быстрой пайки.

А вот так вот выглядит плата с припаянными деталями.

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

Итак, у нас есть некая платформа (Arduino, Raspberry, PIC/AVR/STM-контроллер, etc), и стоит задача подключить к нему некую индикацию. Есть множество вариантов, которые мы и рассмотрим.

Сегментная индикация

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

Осторожно, траффик!

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

Есть 1001 статья как подключить светодиод к микроконтроллеру, гугл в помощь. Сложности начинаются тогда, когда мы захотим сделать большие часы — ведь смотреть на мелкий индикатор не особо удобно. Тогда нам нужны такие индикаторы (фото с eBay):

Они питаются от 12В, и напрямую от микроконтроллера просто не заработают. Тут нам в помощь приходит микросхема CD4511 , как раз для этого предназначенная. Она не только преобразует данные с 4-битной линии в нужные цифры, но и содержит встроенный транзисторный ключ для подачи напряжения на индикатор. Таким образом, нам в схеме нужно будет иметь «силовое» напряжение в 9-12В, и отдельный понижающий преобразователь (например L7805) для питания «логики» схемы.

Матричные индикаторы

По сути, это те же светодиоды, только в виде матрицы 8х8. Фото с eBay:

Продаются на eBay в виде одиночных модулей либо готовых блоков, например по 4 штуки. Управление ими весьма просто — на модулях уже распаяна микросхема MAX7219 , обеспечивающая их работу и подключение к микроконтроллеру с помощью всего лишь 5 проводов. Для Arduino есть много библиотек, желающие могут посмотреть код.
Плюсы: невысокая цена, хорошие углы обзора и яркость.
Минус: невысокое разрешение. Но для задачи вывода времени вполне достаточно.

ЖК-индикаторы

ЖК-индикаторы бывают графические и текстовые.

Графические дороже, однако позволяют выводить более разнообразную информацию (например график атмосферного давления). Текстовые дешевле, и с ними проще работать, они также позволяют выводить псевдографику — есть возможность загружать в дисплей пользовательские символы.

Работать с ЖК-индикатором из кода несложно, но есть определенный минус — индикатор требует много управляющих линий (от 7 до 12) от микроконтроллера, что неудобно. Поэтому китайцы придумали совместить ЖК-индикатор с i2c-контроллером, получилось в итоге очень удобно — для подключения достаточно всего 4х проводов (фото с eBay).


ЖК-индикаторы достаточно дешевые (если брать на еБее), крупные, их просто подключать, и можно выводить разнообразную информацию. Единственный минус это не очень большие углы обзора.

OLED-индикаторы

Являются улучшенным продолжением предыдущего варианта. Варьируются от маленьких и дешевых с диагональю 1.1″, до больших и дорогих. Фото с eBay.

Собственно, хороши всем кроме цены. Что касается мелких индикаторов, размером 0.9-1.1″, то (кроме изучения работы с i2c) какое-то практическое применение им найти сложно.

Газоразрядные индикаторы (ИН-14, ИН-18)

Эти индикаторы сейчас весьма популярны, видимо из-за «теплого лампового звука света» и оригинальности конструкции.


(фото с сайта nocrotec.com)

Схема их подключения несколько сложнее, т.к. эти индикаторы для зажигания используют напряжение в 170В. Преобразователь из 12В=>180В может быть сделан на микросхеме MAX771 . Для подачи напряжения на индикаторы используется советская микросхема К155ИД1 , которая специально для этого и была создана. Цена вопроса при самостоятельном изготовлении: около 500р за каждый индикатор и 100р за К155ИД1, все остальные детали, как писали в старых журналах, «дефицитными не являются». Основная сложность тут в том, что и ИН-хх, и К155ИД1, давно сняты с производства, и купить их можно разве что на радиорынках или в немногих специализированных магазинах.

С индикацией мы более-менее разобрались, осталось решить, какую аппаратную платформу лучше использовать. Тут есть несколько вариантов (самодельные я не рассматриваю, т.к. тем кто умеет развести плату и припаять процессор, эта статья не нужна).

Arduino

Самый простой вариант для начинающих. Готовая плата стоит недорого (около 10$ на eBay с бесплатной доставкой), имеет все необходимые разъемы для программирования. Фото с eBay:

Под Arduino есть огромное количество разных библиотек (например для тех же ЖК-экранов, модулей реального времени), Arduino аппаратно совместима с различными дополнительными модулями.
Главный минус: сложность отладки (только через консоль последовательного порта) и довольно-таки слабый по современным меркам процессор (2КБайт RAM и 16МГц).
Главный плюс: можно сделать много чего, практически не заморачиваясь с пайкой, покупкой программатора и разводкой плат, модули достаточно соединить друг с другом.

32-разрядные процессоры STM

Для тех кто захочет что-то помощнее, есть готовые платы с процессорами STM, например плата с STM32F103RBT6 и TFT-экраном. Фото с eBay:

Здесь мы уже имеем полноценную отладку в полноценной IDE (из всех разных мне больше понравилась Coocox IDE), однако понадобится отдельный программатор-отладчик ST-LINK с разъемом JTAG (цена вопроса 20-40$ на eBay). Как вариант, можно купить отладочную плату STM32F4Discovery, на которой этот программатор уже встроен, и его можно использовать отдельно.

Raspberry PI

И наконец, для тех кто хочет полной интеграции с современным миром, есть одноплатные компьютеры с Linux, всем уже наверное известные Raspberry PI. Фото с eBay:

Это полноценный компьютер с Linux, гигабайтом RAM и 4х-ядерным процессором на борту. С краю платы выведена панель из 40 пинов, позволяющая подключать различную периферию (пины доступны из кода, например на Python, не говоря о C/C++), есть также стандартный USB в виде 4х разъемов (можно подключить WiFi). Так же есть стандартный HDMI.
Мощности платы хватит к примеру, не только чтобы выводить время, но и чтобы держать HTTP-сервер для настройки параметров через web-интерфейс, подгружать прогноз погоды через интернет, и так далее. В общем, простор для полета фантазии большой.

С Raspberry (и процессорами STM32) есть одна единственная сложность — ее пины используют 3-вольтовую логику, а большинство внешних устройств (например ЖК-экраны) работают «по старинке» от 5В. Можно конечно подключить и так, в принципе заработает, но это не совсем правильный метод, да и испортить плату за 50$ как-то жалко. Правильный способ — использовать «logic level converter», который на eBay стоит всего 1-2$.
Фото с eBay:

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

ESP8266

Способ скорее экзотический, но довольно-таки перспективный в силу компактности и дешевизны решения. За совсем небольшие деньги (около 4-5$ на eBay) можно купить модуль ESP8266, содержащий процессор и WiFi на борту.
Фото с eBay:

Изначально такие модули предназначались как WiFi-мост для обмена по serial-порту, однако энтузиастами было написано множество альтернативных прошивок, позволяющих работать с датчиками, i2c-устройствами, PWM и пр. Гипотетически вполне возможно получать время от NTP-сервера и выводить его по i2c на дисплей. Для тех кто хочет подключить много различной периферии, есть специальные платы NodeMCU с большим числом выводов, цена вопроса около 500р (разумеется на eBay):

Единственный минус — ESP8266 имеет очень мало памяти RAM (в зависимости от прошивки, от 1 до 32КБайт), но задача от этого становится даже интересней. Модули ESP8266 используют 3-вольтовую логику, так что вышеприведенный конвертор уровней тут также пригодится.

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

Я в итоге остановился на использовании Raspberry PI с текстовым индикатором, настроенным на работу с псевдографикой (что вышло дешевле чем графический экран той же диагонали). Сфоткал экран настольных часов во время написания этой статьи.

Часы выводят точное время, взятое из Интернета, и погоду которая обновляется с Яндекса, все это написано на Python, и вполне работает уже несколько месяцев. Параллельно на часах запущен FTP-сервер, что позволяет (вкупе с пробросом портов на роутере) обновить на них прошивку не только из дома, но и из любого места где есть Интернет. Как бонус, ресурсов Raspberry в принципе хватит и для подключения камеры и/или микрофона с возможностью удаленного наблюдения за квартирой, или для управлением различными модулями/реле/датчиками. Можно добавить всякие «плюшки», типа светодиодной индикации о пришедшей почте, и так далее.

PS: Почему eBay?
Как можно было видеть, для всех девайсов приводились цены или фото с ебея. Почему так? К сожалению, наши магазины часто живут по принципу «за 1$ купил, за 3$ продал, на эти 2 процента и живу». В качестве простого примера, Arduino Uno R3 стоит (на момент написания статьи) 3600р в Петербурге, и 350р на eBay с бесплатной доставкой из Китая. Разница действительно на порядок, безо всяких литературных преувеличений. Да, придется подождать месяц чтобы забрать посылку на почте, но такая разница в цене думаю, того стоит. Но впрочем, если кому-то надо прямо сейчас и срочно, то наверно и в местных магазинах есть выбор, тут каждый решает сам.

Светодиодные простые часы можно сделать на дешёвом контроллере PIC16F628A. Конечно, в магазинах полно различных электронных часов, но по функциям у них может или нехватать термометра, или будильника, или они не светятся в темноте. Да и вообще, иногда прото хочется что-то спаять сам, а не покупать готовое. Чтобы увеличить рисунок схемы — клац.

В предлагаемых часах есть календарь. В нём два варианта отображения даты — месяц цифрой или слогом, всё это настрайвается после ввода даты переключением дальше кнопкой S1 во время отображения нужного параметра, термометр. есть прошивки под разные датчики. Смотрите устройство внутри корпуса:


Все знают, что кварцевые резонаторы не идеальные по точности, и в течение нескольких недель набегает погрешность. Для борьбы с этим делом, в часах предусмотрена корекция хода, которая устанавливается параметрами SH и SL . Подробнее:

SH=42 и SL=40 — это вперёд на 5 минут в сутки;
SH=46 и SL=40 — это назад на 3 минуты в сутки;
SH=40 и SL=40 — это вперёд на 2 минуты в сутки;
SH=45 и SL=40 — это назад на 1 минуту в сутки;
SH=44 и SL=С0 — это вперёд на 1 минуту в сутки;
SH=45 и SL=00 — это корекция отключена.

Таким образом можно добится идеальной точности. Хотя придётся несколько раз погонять коррекцию, пока выставите идеально. А теперь наглядно показывается работа электронных часов:

температура 29градусов цельсия

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

Часы, будильник, термометр на ATmega8, DS1307, DS18B20


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


Захотел, чтобы новые часы информировали не только о текущем времени, но и о температуре в помещении, где они находятся. Задался поиском подобных схем в интернете, отталкиваясь от уже имеющихся комплектующих, а именно: микроконтроллер ATmega8 и светодиодный индикатор с общим катодом. Отличное решение нашлось на этой странице, которое предоставил пользователь Soir, за что ему большая благодарность.


Схема часов не сложная, плюс, я сделал в ней некоторые упрощения. Что получилось, я привожу ниже. Оригинальная и упрощенная схема, разведенная в Proteus, имеется в АРХИВЕ. В данном архиве приведены также прошивки ATmega8, дающие разный функционал часам, пример выставления фьюзов, полная инструкция по настройке часов и их возможностях, а так же разведенная печатная плата в формате *.lay6. Печатная плата разводилась мной под уже имеющийся корпус. В архиве представлены прошивки для индикаторов с общим анодом и катодом.



Хочу признать, что часы получились отлично. В часах есть будильник (как разовый, так и по дням недели), термометр. Для регулировки освещения индикатора в дневное и ночное время, могут использоваться как предустановки в часах, так и специальный датчик (фоторезистор). Есть возможность коррекции времени, если оно отстает или спешит; цифровая коррекция отображения температуры с градацией 0,1ºС.


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



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


Пользователь «yurich» предоставил свой вариант разводки платы под корпус советских часов «Кварц». Файл можно скачать ЗДЕСЬ.

Часы + термометр — Два выходных дня

Установка показаний времени на электронных часах – занятие, не отнимающее много времени, но, тем не менее, хотелось бы обойтись без этой процедуры.  В поисках конструкции электронных часов, работающих по принципу «Включил и забыл», я обнаружил интернет-сайт, на котором автор опубликовал конструкцию электронных часов с синхронизацией времени при помощи спутниковой системы навигации (GPS) и повторил её, добавив уличный термометр. 

Рисунок 1 —  Внешний вид устройства

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

  • счёт и отображение текущего времени;
  • ежечасная синхронизация текущего времени с временем спутника;
  • установка часового пояса;
  • режим «Будильник»;
  • режим «Секундомер».

Принцип работы часов

Основу устройства составляет микроконтроллер Atmega8-16PI, работающий под управлением программы, которая реализует все вышеупомянутые функции часов. Приёмником спутниковых сигналов является GPS модуль «NEO-6M» с выносной антенной. Четырёхразрядный светодиодный индикатор в основном режиме отображает текущее время, минуты и секунды в режиме секундомера, а при настройке — номер часового пояса, индикацию включения/выключения и время установки будильника.

Звуковой излучатель BF1 служит для подачи сигнала будильника, а светодиоды HL1 и HL2 показывают процесс поиска информации со спутника. Кнопки SB1-SB3 служат для установки часового пояса, включения режима «Секундомер» и установки времени срабатывания будильника.

Рисунок 2 — Принципиальная электрическая схема часов 

При подаче напряжения питания микроконтроллер Atmega8-16PI инициализирует GPS модуль «NEO-6M», который, в свою очередь, ожидает поступления с любого найденного спутника информационной строки, содержащей текущее время, соответствующее нулевому часовому поясу. Этот процесс сопровождается коротким звуковым сигналом и появлением бегущей «змейки» в разрядах индикатора. Для достоверности информационная строка принимается пять раз, после чего микроконтроллер запускает счётчик секунд, «змейка» исчезает и начинается отображение текущего времени.

Последующая синхронизация времени часов с временем спутника осуществляется каждый час и сопровождается кратковременным свечением светодиодов «SAT» и «GPS». Процесс синхронизации происходит в фоновом режиме и не влияет на ход часов. Если по каким-то причинам фоновая синхронизация времени не произошла, часы не остановятся, но точность показаний будет хуже.

Назначение кнопок управления

Кнопка «UTC«. Как уже упоминалось, при первичной синхронизации часы принимают время нулевого часового пояса. При нажатии этой кнопки на индикаторе отобразится «U — — -«, что значит переход в меню выбора часового пояса, а при отпускании — отобразится «U 3» (часовой пояс установленный по умолчанию). Далее, нажатием этой кнопки устанавливают необходимый часовой пояс в диапазоне минус 12 плюс 12. Установка часового пояса осуществляется «по кольцу», с шагом «+1».

Кнопка «Alarm clock» или «Будильник». При нажатии этой кнопки произойдёт переход в меню установки будильника, при этом на индикаторе отобразится «A-.—«. После отпускания, если будильник выключен, на индикаторе появятся прочерки, а если будильник был включен, то отобразится время его срабатывания. Чтобы полностью выключить или включить будильник, нужно нажать кнопку «UTC», находясь в меню установки будильника.

Последующие нажатия кнопки «Alarm clock» и нажатия кнопки «Sec» в меню установки будильника позволяют установить будильник на нужное время, часы и минуты, соответственно. Установка возможна только «вперёд. При достижении числа «24» в часах и «60» в минутах происходит сброс показаний в «0» часов и минут соответственно.

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

Кнопка «Sec» или «Секундомер». Нажатие данной кнопки переведёт часы в режим секундомера, при этом на индикаторе отобразится «C-.—«, а при отпускании кнопки — начнётся отсчёт секунд. Максимальное время — 23:59:57. При превышении этого значения произойдёт автоматический переход в режим часов. До одного часа в 1 и 2 разрядах отображаются минуты секундомера, а в 3 и 4 разрядах отображаются секунды, после часа — часы и минуты.

Выход из режима секундомера осуществляется нажатием на любую из трёх кнопок.

          Функции термометра:

  • диапазон измерения температуры от — 55 до +125°C;
  • точность измерения составляет ± 0,5°C в диапазоне от — 10 до +85°C и ± 2°C на остальных участках диапазона измерения температуры;
  • проверка исправности линии связи термометра с датчиком;
  • проверка контрольной суммы информации, принимаемой с датчика.

Принцип работы термометра

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

Рисунок 3 — Принципиальная электрическая схема термометра

При подаче напряжения питания микроконтроллер ATTINY2313 в течении одной секунды тестирует индикатор, засвечивая все его сегменты, после чего переходит к проверке исправности датчика и линии связи с датчиком.

При обрыве или коротком замыкании линии связи на индикаторе отображаются прочерки «—«. Далее производится проверка контрольной суммы информации, принимаемой с датчика. При ошибке контрольной суммы (CRC) на индикаторе появится сообщение «crc».

Если все проверки завершены успешно, то микроконтроллер перейдёт к чтению информации с датчика температуры и отправит измеренное значение температуры на индикатор. В диапазоне измерения от — 9 до +99°C в третьем разряде отображается символ «°».

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

Конструкция устройства и применяемые радиоэлементы

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

Считаю, что разработка и изготовление печатных плат устройств категории «Для себя» — это лишняя трата времени. Платы установлены на эбонитовых стоечках на дно корпуса из органического стекла толщиной 5 мм и крепятся винтами М2.

Рисунок 4 — Макетная плата

 

Рисунок 5 — Вид со стороны монтажа

 

Рисунок 6 — Вид со стороны радиоэлементов

 

Рисунок 7 — Индикаторы

 

Рисунок 8 — Плата кнопок и модуля GPS

 

Рисунок 9 — Вид со стороны гнезда питания

 

Рисунок 10 — Модуль «NEO-6M»

Плата кнопок управления использована готовая от отслужившего свой век электронного оборудования. Микроконтроллеры Atmega8-16PI и ATTINY2313 установлены на панельки. Применены индикаторы красного свечения с общим анодом размером символа 0.56 » для часов и 0.36 » для термометра. GPS модуль «NEO-6M» необходимо приобретать с выносной антенной. Без внешней антенны приём информации со спутника не происходит, хотя, по утверждению разработчика часов, в модуле имеется внутренняя антенна. Звукоизлучатель BF1 со встроенным генератором, напряжение питания на устройство подаётся через гнездо типа micro USB, расположенное на отдельной покупной плате.

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

   Часы+термометр помещены в корпус склеенный из органического стекла толщиной 3 мм и выкрашенный чёрной нитроэмалью. Передняя часть корпуса изготовлена из органического стекла оранжевого цвета. Для уменьшения яркости индикаторов добавлен светофильтр, вырезанный из пластиковой бутылки.

 

Рисунок 11 — Готовое устройство

 

Рисунок 12 — Элементы корпуса

 

Рисунок 13 — Светофильтр из пивной бутылки

 

Рисунок 14 — Задняя стенка устройства

В качестве источника питания применено зарядное устройство от сотового телефона с выходным напряжением 5±0,5В. и выходным током 0,55А., снабжённое штеккером типа micro USB. Также в источник питания входит устройство защиты от превышения напряжения. При увеличении выходного напряжения зарядного устройства выше верхнего предела открывается транзистор VT1, в результате чего перегорает плавкий предохранитель FU1, обесточивая часы+термометр. Радиоэлементы платы защиты смонтированы на макетной плате и помещены во всем знакомую упаковку.

 

Рисунок 15 — Принципиальная электрическая схема устройства защиты

  

Рисунок 16 — Источник питания устройства

 

Рисунок 17 — Устройство защиты от превышения напряжения

 

Рисунок 18 — Ток потребления устройства

 

Рисунок 19 — Часы+термометр+источник питания

Датчик температуры — микросхема DS18B20, с подпаянным к её выводам трёхпроводным кабелем, помещена в стеклянную трубку, заполненную белым герметиком, после высыхания которого обеспечивается защита микросхемы от атмосферных осадков. Датчик закреплён при помощи магнита на отливе за окном. Другой конец кабеля снабжён трёхконтактным разъёмом типа TRS (jack) 3,5мм, который вставляется в соответствующее гнездо на задней стенке устройства.

 

Рисунок 20 — Расположение датчика температуры за окном

 

Рисунок 21 — Подключение датчика температуры

 

Рисунок 22 — Расположение устройства в комнате

 

Рисунок 23 — Расположение устройства в комнате

Наладка правильно собранных схем часов и термометра не потребовалась. Оба устройства заработали сразу после подачи напряжения питания. Были опасения, что в предполагаемом месте размещения в квартире (2 метра от оконного стекла и 0,5 метра в сторону) приём информации со спутника будет затруднён, но всё обошлось.

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

   Управляющая программа для микроконтроллера часов Atmega8-16PI

   Управляющая программа для микроконтроллера термометра ATTINY2313

   Резервные ссылки

   Atmega8-16PI

   ATTINY2313

   Индикаторы с общим анодом

 

 

 

DIY Digital Wristwatch — Zak’s Electronics Blog ~ *

Основным стимулом для этого проекта было увидеть, сколько аппаратного и программного обеспечения я могу втиснуть в устройство, похожее на наручные часы, размером не больше самого дисплея. Был выбран OLED-дисплей толщиной всего 1,5 мм и не требующий подсветки (каждый пиксель излучает свой собственный свет), но в основном потому, что они выглядят круто. Изначально у часов должен был быть дисплей 0,96 дюйма, но оказалось слишком сложно разместить под ним все, что я хотел.Увеличение размера до 1,3 дюйма было идеальным.



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


На аппаратной стороне часы содержат микроконтроллер Atmel ATmega328P, регулятор 2,5 В, часы реального времени Maxim DS3231M, 1,3 ″ 128 × 64 монохромный OLED, 2 светодиода (красный и зеленый), зуммер, зуммер, 3-позиционный переключатель для навигации, питание от 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-пиксели и светодиоды, а также имеет режим стробоскопа

Секундомер

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

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

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

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

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


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

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


    Потери тока (тип.)
    Деталь Ток
    ATmega328P (спящий / активный) 100 нА / 1,5 мА
    OLED (спящий / активный) 500 нА / 8,5 мА
    DS3231M RTC 2,5 мкА
    Диод Шоттки (D1) (обратная утечка) 1 мкА
    Регулятор (ток покоя) 1 мкА
    и т. Д. 1uA
    Всего (спящий / активный) 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 N-MOSFET сетевой резистор сетевой sounder 1
    94
    Схема Деталь / значение Описание Количество
    U1 Atmel ATmega328P Микроконтроллер 1
    1
    U4 XC6206P252MR 2.Регулятор LDO 5 В 1
    U2 DS3231MZ + RTC 1
    Q1, Q2 DMP1045U P-MOS106 Q2 2
    D1 ZLLS410 Диод Шоттки 1
    D2 TS4148 Высокоскоростной диод C 17nF Конденсатор 1
    C4, C6, C7 100nF Конденсатор 3
    C3, C8, C9, C10 9010 2,2 мкФ Конденсатор 1
    C1, C2, C11 4,7 мкФ Конденсатор 3
    R4, R8, R10
    R6 2.7K Резистор 1
    R5 7.5K Резистор 1
    R7 10K Резистор 1 900
    R2, R3, R11 47K Резистор 3
    R9 390K Резистор 1
    RN1 1
    LED1 LED (зеленый) LED 1
    LED2 LED (красный) LED 1
    LS106
    SW1 3-позиционный переключатель навигации 1
    Разъем MicroUSB (Ebay) 1
    OLED1 OLED (Ebay / AliExpress) 1
    1
    Основная плата 1
    Плата подъемника дисплея 1
    — 9010p 9010p 9010p G 1

    Рекомендовано на
    Atmel, HackADay, Electronics Lab, adafruit

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

    Цифровые часы с использованием микроконтроллера AVR Atmega16

    Цифровые часы революционизируют наш образ жизни, помогая людям придерживаться своего графика.Эта статья научит вас создавать свои собственные цифровые часы, используя микросхему DS1307 RTC и микроконтроллер Atmega16. Как мы все знаем, DS1307 — это простой чип часов реального времени, который показывает секунды, минуты, часы, день, дату и год. Мы использовали простой ЖК-дисплей 16 × 2 вместе с ним для отображения всех данных, полученных с чипа RTC с помощью микроконтроллера AVR.

    ДИЗАЙН ЦИФРОВЫХ ЧАСОВ С ИСПОЛЬЗОВАНИЕМ AVR:

    Эта система была разработана с использованием простой микросхемы RTC DS1307 и микроконтроллера AVR. Чип RTC отслеживает секунды, минуты, часы, день, месяц и год.Этот чип передает на AVR параметры в реальном времени. Затем введенные параметры отображались на простом ЖК-экране. Изначально RTC был запрограммирован с желаемыми значениями, такими как секунды, минуты, часы и так далее, через интерфейс I2C. После записи в чип он начинает отслеживать время, которое будет считываться и отображаться на ЖК-экране.

    часов реального времени DS1307:

    Это простая микросхема реального времени, известная как RTC, которая широко используется во многих системах, где требуется реальное время. Этот чип потребляет меньше энергии и может работать от резервного аккумулятора.Этот чип поддерживает протокол I2C, по которому происходит передача данных. Этот чип состоит из регистров с возможностью чтения / записи, в которых хранятся временные параметры и отслеживаются их параметры.
    Если мы хотим заставить этот чип работать с желаемого времени, мы хотим записать в регистры данные, которые являются временными параметрами по нашему желанию. Позже мы можем читать из этих регистров, чтобы узнать о значениях в реальном времени. Подробное описание режима использования этого чипа читайте в разделе «Работа RTC-чипа DS1307». Я предлагаю вам просмотреть эту статью, прежде чем продолжить.

    ШАГОВ ДО ПРОГРАММЫ:

    • Инициализировать контроллер для связи по протоколу I2C.
    • Отправить D0 на микросхему RTC, указывая, что контроллер собирается писать.
    • Отправить адрес регистра, в который вы собираетесь начать запись данных, с последующей записью параметра времени в соответствующие регистры.
    • Условие остановки передачи для прекращения связи I2C.
    • Теперь начните обмен данными и отправьте D1 на микросхему, указывая на операцию чтения с микросхемы.
    • Задайте начальный адрес и начните считывание параметров и отображение значений на ЖК-экране, поместите его в бесконечный цикл.

    Подробнее: Цифровые часы с использованием микроконтроллера AVR Atmega16

    AVR Смотреть | fabiobaltieri

    Следуя тенденции делать вещи для развлечения, это наручные часы с микроконтроллером AVR и 7-сегментным дисплеем!

    Характеристики:

    • Откройте файлы прошивки и дизайна оборудования
    • AVR и V-USB на базе
    • Использует SMD 7-сегментный дисплей — ретро-вид!
    • Встроенное зарядное устройство USB Maxim
    • Показывает, как сканировать 7-сегментные дисплеи с приводом без внешних компонентов.

    Недостатки:

    • Короткое время автономной работы (менее недели с литий-полимерным аккумулятором 100 мАч)
    • Сложно припаять вручную (если у вас нет термофена)
    • Заставляет людей думать, что вы сумасшедший (я должен добавить это в «особенности»…)
    • Похоже на маленькую бомбу замедленного действия, я бы не стал ее носить в аэропорту

    Как и большую часть моего дизайна, я сделал этот, потому что у меня был какой-то 7-сегментный дисплей, и я хотел создать что-то с ними (именно поэтому у меня нет спецификации проекта).Кроме того, мне нравится идея иметь часы DIY, которые выглядят как лабораторный источник питания (они также показывают уровень заряда батареи в вольтах).

    Замечания по проектированию

    ATmega168, используемый в этой конструкции, имеет возможность использовать Timer2 в асинхронном режиме, обычно с внешним кристаллом 32 кГц (типично для таймеров RTC), что позволяет останавливать все другие часы и получать очень низкое энергопотребление (в микроконтроллере). диапазон ампер для версии «P»).

    Недостатком этой конфигурации является то, что для нее требуется низкочастотный кристалл, подключенный к выводам XTAL, поэтому он несовместим с требованиями стека V-USB soft-USB.По этой причине эта реализация использует тактовую частоту 12 МГц и снижает энергопотребление в режиме ожидания за счет отключения USB и понижения тактовой частоты MCU до 3 МГц, когда это необходимо.

    В качестве альтернативы можно было бы удалить стек USB, синхронизировать Timer2 от генератора 32 кГц и использовать порт UART для настройки (есть две перемычки для подключения TTL UART к порту USB).


    Эксплуатация

    Микропрограммное обеспечение обычно находится в состоянии ожидания, с выключенным дисплеем и активированным только таймером 1 в конфигурации RTC и IRQ смены контактов.

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

    Нажмите нижнюю кнопку , чтобы отобразить уровень заряда батареи… в вольтах! В этом состоянии вы можете нажать кнопку еще раз, чтобы переключить USB-соединение и режим низкого энергопотребления (обозначен четвертой десятичной точкой на дисплее). USB следует деактивировать, когда он не нужен, поскольку при этом задействуется предварительный делитель тактовой частоты / 4, что снижает энергопотребление в режиме ожидания.

    При подключении к ПК через порт USB вы можете установить время, отправив запрос CUSTOM_RQ_SET_TIME (0x01) на контрольную конечную точку (да, вам нужен ПК для установки часов), передав действительную временную метку UNIX в индексе / значении. слова. Вы найдете сценарий для этого с помощью usbtool (из источников V-USB) в репозитории проекта, и он работает следующим образом:

    #! / bin / sh
    
    время = $ (дата +% s)
    time = $ (($ time + 60 * 60 * 2)) # это для CEST
    время = $ (printf% 08x $ время)
    
    high = $ {time: 4: 4}
    low = $ {time: 0: 4}
    
    usbtool -P AVR-Clock control в устройстве поставщика 0x01 0x $ high 0x $ low
     

    Кроме того, вы можете отправить запрос CUSTOM_RQ_RESET (0xff) для сброса MCU, удерживая нажатой верхнюю кнопку, чтобы вы могли перейти на загрузчик (bootloadHID) для загрузки новой прошивки.

    Аккумулятор и зарядное устройство

    Чтобы зарядить аккумулятор, просто подключите USB-кабель. Конструкция использует зарядное устройство MAX1555 LiPo в конфигурации 100 мА для зарядки аккумулятора и последовательно загорается десятичная точка во время зарядки.

    Строительство

    В этой конструкции используются только SMD-компоненты, поэтому сборка может быть довольно сложной, если у вас нет станции горячего воздуха. В таком случае предлагаю смонтировать в порядке:

    • ИС и генератор
    • Пассивные компоненты
    • Разъем USB
    • Два маленьких светодиода
    • 7-сегментные дисплеи
    • Нажмите на кнопки

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

    Однако, чтобы выполнить первое программирование, вам необходимо построить кабель ISP и временно подключить его к контрольным точкам ISP (опять же, для этого вам нужна твердая рука).

    Удачи с этим!

    Файлы дизайна

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


    Схемы в формате PDF можно скачать здесь.


    Печатная плата доступна на BatchPCB!


    Нравится:

    Нравится Загрузка …

    Связанные

    Big Digital Clock с использованием Arduino Atmega328 с погодой

    / * Цифровые часы с погодой от somtips.com * /

    #include «SevSeg.h»

    #include «RTClib.h»

    #include «DHT.h»

    DHT dht (A1, DHT22);

    RTC_DS1307 rtc;

    SevSeg sevseg;

    символьных днейOfTheWeek [7] [12] = {«ВС», «НЕТ», «ВТ», «ЕВД», «ЧТ», «ПТ», «СБ»};

    char text [11] [6] = {«TINE», «», «DATE», «», «», «YEAR», «», «TENP», «», «HUND», «»} ;

    int я = 0;

    длинный таймер без знака;

    DateTime сейчас;

    void setup () {

    byte numDigits = 4;

    байта digitPins [] = {1, 2, 3, 4};

    байта segmentPins [] = {5, 6, 7, 8, 9, 10, 11};

    bool resistorsOnSegments = false; // «false» означает, что резисторы находятся на цифровых выводах

    байта hardwareConfig = COMMON_ANODE; // Смотрите README.md для опций

    bool updateWithDelays = true; // По умолчанию рекомендуется false

    booladingZeros = true; // Используйте ‘true’, если хотите сохранить ведущие нули

    bool disableDecPoint = true; // Используйте ‘true’, если ваша десятичная точка не существует или не подключена

    sevseg.begin (hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,

    updateWithDelays, leadingZeros, disableDecPoint);

    sevseg.setBrightness (90);

    дхт.начинать();

    rtc.begin ();

    pinMode (12, ВЫХОД);

    pinMode (13, ВЫХОД);

    таймер = миллис () — 4000;

    }

    void loop ()

    {now = rtc.now ();

    snprintf (текст [1], 5, «% 02d% 02d», now.hour (), now.minute ());

    snprintf (текст [3], 5, «% 02d% 02d», now.day (), now.month ());

    snprintf (текст [4], 5, «% s», daysOfTheWeek [now.dayOfTheWeek ()]);

    snprintf (текст [6], 5, «% d», now.год());

    float h = dht.readHumidity ();

    float t = dht.readTemperature ();

    Строка hu = Строка (h);

    hu.toCharArray (текст [10], 5);

    t = t * 10;

    Строка k = Строка (t);

    Строка r = k.substring (0,3) + «c»;

    r.toCharArray (текст [8], 5);

    переключатель (i)

    {

    case 0:

    digitalWrite (12, HIGH);

    digitalWrite (13, LOW);

    перерыв;

    case 1:

    digitalWrite (12, LOW);

    digitalWrite (13, LOW);

    перерыв;

    case 2:

    digitalWrite (12, HIGH);

    digitalWrite (13, ВЫСОКИЙ);

    перерыв;

    case 3:

    digitalWrite (12, LOW);

    digitalWrite (13, LOW);

    перерыв

    ;

    корпус 4:

    разрыв;

    корпус 5:

    разрыв;

    корпус 6:

    разрыв;

    корпус 7:

    разрыв;

    корпус 8:

    разрыв;

    case 9:

    digitalWrite (12, HIGH);

    digitalWrite (13, LOW);

    перерыв;

    case 10:

    digitalWrite (12, LOW);

    digitalWrite (13, LOW);

    перерыв;

    по умолчанию:

    перерыв;

    }

    if (millis ()> (timer + 4000)) {

    switch (i);

    севсег.setChars (текст [i]);

    i ++;

    , если (i> = 11) i = 0;

    таймер = миллис ();

    }

    sevseg.refreshDisplay ();

    }

    Супер крутые часы? | Учебники Cytron Technologies

    Введение

    Да, теперь у нас есть эти супер крутые и огромные часы. Он приходит в нерабочем состоянии, и необходима пайка. Набор для часов Big-time — это стильные цифровые часы с ремешком на липучке и гладким акриловым корпусом.Сердцем комплекта является очень почитаемый ATMega328, использующий источник тактовой частоты 32 кГц для измерения времени. Чтобы узнать время, просто нажмите кнопку на боковой стороне часов, и она появится на 4-значном 7-сегментном светодиодном дисплее. Благодаря некоторому низкоуровневому хакерству, ATMega работает на сверхнизком уровне энергопотребления и, по оценкам, проработает около 2 лет на одной монетной ячейке CR2032!

    The Big Time — это комплект для сквозных отверстий с небольшим количеством деталей, поэтому он отлично подходит для начинающих паяльщиков. После того, как вы закончите пайку компонента и печатной платы, просто сложите вокруг нее акриловые детали и прикрутите их вместе прилагаемыми винтами с шестигранной головкой.Как только это будет сделано, вставьте батарейку типа «таблетка» и начните хвастаться своим ботаническим шиком!

    Этот комплект часов супер взломать. Контакты, совместимые с загрузчиком Arduino, выломаны сбоку на плате, и прошивка часов работает поверх загрузчика Arduino! Это означает, что все, что вам нужно сделать для добавления собственного кода, — это открыть Arduino или Wiring и выбрать в качестве платы «Arduino Pro или Pro Mini 3.3V / 8MHz w / ATmega328».

    В комплект входит:

    • 1 x предварительно запрограммированная микросхема DIP для ATMega328

    • 1 x 4-значный 7-сегментный дисплей

    • 1 x 32 кГц, кристалл

    • Резистор 1 x 10 кОм

    • 2 х 0.Конденсаторы 1uF

    • 1 х тактильная кнопка под прямым углом

    • Держатель для плоских батареек, 1 x 20 мм

    • Батарейка-таблетка 1 x 20 мм

    • 4 x 4-40 Винты

    • 1 шестигранный ключ

    • 1 х ремешок для часов на липучке

    • Акриловые детали корпуса

    • Простое руководство по сборке

    Комплект для часов Big Time

    Набор для пайки

    Свинец

    -Программное обеспечение не требуется

    Комплект для часов Big Time

    Руководство по сборке комплекта часов Big Time Watch

    1-й шаг: Припаять микросхему ATMega 328

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

    Поэтому, когда вы вставляете чип ATMega, будьте осторожны, чтобы не переворачивать чип. Контакт 1 Atmega должен быть на правой стороне печатной платы.

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

    2-й шаг: Припаиваем конденсатор и резистор

    В этот слот нужно припаять 2 конденсатора и 1 резистор.Полярность конденсатора и резистора не требуется. Не стесняйтесь паять в любой ориентации, которая вам нравится, если она входит в правильные контактные площадки.

    3-я ступень: 7-й сегмент

    Хорошо, этот шаг очень важен, и, пожалуйста, убедитесь, что вы в точности следуете объяснениям. Ориентация 7-го сегмента не должна быть обратной, иначе у вас будут неисправные часы, и их нельзя будет исправить, так как распайка требует навыков.

    Обратите внимание, что 4 точки из 7-го сегмента должны быть внизу, совместите их с отображением на плате, и вы получите правильную ориентацию.

    4-я ступень: гнездо аккумулятора

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

    Далее следует припаять гнездо / держатель батареи. Убедитесь, что отверстие (куда вставляется батарея) гнезда обращено вниз. Припаяйте остальные 4 вывода.

    5-й шаг: кнопка и кристалл

    Кнопка и кристалл. Кристаллу 32 года.768 кГц, и это популярный кристалл для часов реального времени.

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

    Реальное изображение и расположение компонента, как показано ниже:

    6-й шаг: удаление вывода компонента

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

    Перед тем, как отрезать лишние провода.

    После срезания лишнего лидерства 🙂 Отлично! Убедитесь, что вывод Atmega328 и кнопка тоже обрезаны, так как мы хотим аккуратно выровнять плату PCB по акриловому корпусу.

    7-й шаг: удаление акрилового защитного пластика

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

    Снимите защитную крышку

    А вот как это будет выглядеть после снятия защитной крышки.

    8-й шаг: Собираем все вместе 🙂

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

    Это должно выглядеть, как показано ниже:

    Если корпус вас устраивает, вставьте кабель на липучке.

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

    Заверните все 4 гайки.Закрутите сверху вниз, потому что вы не хотите, чтобы ваша рука чувствовала колпачок гайки, когда вы носите часы.

    Давайте посмотрим на образец ниже

    СДЕЛАНО….

    Теперь вы можете носить часы и идти куда угодно.

    ДЛЯ УСТАНОВКИ ВРЕМЕНИ

    Удерживайте кнопку, пока не увидите мигание двоеточия.

    Продолжение удерживания кнопки увеличит значение.

    • Припаяйте компонент к разъему для подготовки, если провод соединит 2 контактные площадки, это вызовет короткое замыкание.

    • Когда перерезаете провод сзади, убедитесь, что он достаточно снят, чтобы закрыть другой осветительный прибор, иначе вы не сможете ввинтить проход через него.

    простых светодиодных проектов с использованием микроконтроллера AVR — мигание, переключение и управление светодиодами

    Эта статья — еще один шаг вперед в изучении микроконтроллеров AVR. Мы продемонстрировали 3 простых проекта на основе светодиодов с использованием микроконтроллера ATmega328, которые помогут вам изучить его основные концепции.ATmega328 — это восьмибитный микроконтроллер на базе AVR (Advanced Virtual RISC). Это мощный микроконтроллер со встроенной внутренней памятью около 32 КБ. Большинство плат Arduino состоит из 8-битного микроконтроллера AVR Atmel с различным объемом флэш-памяти, контактов и функций. Arduino Uno — это плата микроконтроллера на базе ATmega328.

    Микроконтроллеры

    AVR очень просты в использовании. Для всех микроконтроллеров AVR требуется интегрированная среда разработки (IDE), такая как Atmel Studio. Используя эту IDE, мы можем создавать, компилировать и отлаживать программу на всех микроконтроллерах AVR.

    Давайте разработаем простые программы мигания светодиодов для ATmega328 с помощью Atmel Studio 7.

    1. Два мигающих светодиода при использовании ATmega328
    2. Управление двумя светодиодами с помощью кнопочного переключателя
    3. Переключение двух светодиодов с помощью кнопочного переключателя

    №1.

    Два мигающих светодиода при использовании ATmega328

    В этом разделе мы узнаем, как мигать двумя светодиодами с микроконтроллером AVR ATmega328. Сначала мы подключим 2 светодиода к PB2 и PB3 порта PORTB микроконтроллера ATmega328.Затем мы заставим 2 светодиода мигать с интервалом в 1 секунду. Это означает, что сначала будет светиться только светодиод 1 st , а в следующую секунду он погаснет, а светодиод 2 и будет светиться. Этот процесс продолжается вечно, поэтому светодиоды постоянно мигают.

    Два мигающих светодиода при использовании ATmega328 — принципиальная схема

    Два мигающих светодиода при использовании ATmega328

    Соберите схему, как показано на схеме.Фотография собранной схемы представлена ​​ниже. Ниже представлена ​​видеодемонстрация проекта.

    Программа Описание

    Два мигающих светодиода при использовании ATmega328 — Скачать программу

    В начале программы определяется препроцессор с именем «F_CPU». Это просто ваш способ сообщить некоторой части кода библиотеки, сколько циклов процессора в секунду выполняет процессор. Здесь мы определили F_CPU как 1 МГц.«#Include » — это файлы заголовков, которые предоставляют вам различные операции ввода-вывода, такие как DDRx, PINx, PORTx и т. Д. «#Include » — это файл заголовка, который предоставляет со встроенными функциями задержки, такими как _delay_ms (), _delay_us () и т. д. «_delay_ms (1000)» обеспечивает задержку в 1000 миллисекунд (т. е. эквивалентную 1 секунде).

    DDRx — Регистр направления данных конфигурирует направление данных порта (ввод / вывод). Команда «DDRB | = (1 << DDB2)» делает вывод соответствующего порта выходным.

    PORTx — Регистр порта предназначен для присвоения соответствующих значений выводам порта.

    Запись в PORTx.n немедленно изменит состояние контактов порта в соответствии с заданным значением. «PORTB | = (1 << PORTB2)» сгенерирует высокий сигнал на PB2. А «PORTB & = ~ (1 << PORTB3)» предназначен для генерации низкого сигнала на PB3.

    №2. Управление двумя светодиодами с помощью кнопочного переключателя

    Здесь мы узнаем, как управлять работой двух светодиодов с помощью кнопочного переключателя.Как и в предыдущей схеме, сначала мы подключим 2 светодиода к PB2 и PB3 порта PORTB микроконтроллера. Затем кнопочный переключатель присоединяется к выводу PB0 и поднимается с помощью резистора 10 кОм. Оставшаяся клемма переключателя заземлена. Функция подтягивающего резистора заключается в обеспечении того, чтобы, оставляя переключатель не нажатым, состояние вывода PB0 оставалось высоким. В микросхему ATmega встроены подтягивающие резисторы 20 кОм, к которым также можно получить доступ из программного обеспечения. Но здесь мы используем внешнюю подтягивающую схему.При нажатии переключателя два светодиода будут гореть и погаснут, пока мы отпускаем переключатель. Вот как схема будет работать.

    Управление двумя светодиодами с помощью кнопочного переключателя — принципиальная схема

    Управление двумя светодиодами с помощью кнопочного переключателя — ATmega328

    Соберите схему, как показано на схеме. Фотография собранной схемы также представлена ​​выше. Ниже представлена ​​видеодемонстрация проекта.

    Программа Описание

    Управление 2 светодиодами с помощью кнопочного переключателя — программа загрузки

    Мы уже обсуждали препроцессоры и библиотеки в предыдущем разделе.Единственное, что недавно было включено в этот код, — это назначение вывода PB0 в качестве порта ввода и цикла «if», связанного с этим выводом.

    «DDRB & = ~ (1 << DDB0)» - это код, используемый для назначения PB0 как входного порта. Цикл «if» включен в цикл «while», который будет постоянно контролировать состояние вывода PB0 и соответственно изменять состояние двух светодиодов.

    Регистр PIN

    используется для чтения данных с контактов порта, если порт настроен как вход. «! (PINB & (1 << PINB0))» - это условие внутри цикла «if», которое определяет, высокий или низкий статус вывода PB0.Когда статус станет низким, контроллер включит светодиод. Светодиоды погаснут, когда контроллер считывает низкое значение на выводе PB0.

    № 3. Переключение двух светодиодов с помощью кнопочного переключателя

    В этом разделе мы будем переключать состояние двух светодиодов в соответствии с входом от кнопочного переключателя. Схема, необходимая для этого, аналогична схеме, описанной в предыдущем разделе. Единственное отличие — в программной части. И работа схемы тоже немного отличается.Каждый раз, когда контроллер получает сигнал от переключателя, он переключает текущее состояние двух светодиодов.

    Переключите 2 светодиода с помощью кнопочного переключателя — принципиальная схема

    Переключите 2 светодиода с помощью кнопочного переключателя

    Соберите схему, как показано на схеме. Ниже представлена ​​видеодемонстрация проекта.

    Программа Описание

    Переключите 2 светодиода с помощью кнопочного переключателя — загрузка программы

    Подобно предыдущим разделам, сюда мы также включили препроцессоры и библиотеки.(1 << PINB3) ”- это инструкция для переключения текущего состояния контактов PB2 и PB3. В конце программы также включена задержка 300 мс, чтобы избежать дребезга кнопочного переключателя.

    arduino — Как я могу заставить мой atmega328 работать в течение года от батарей?

    Здесь есть два вопроса, но только второй действительно является частью названия вопроса, поэтому, вероятно, будет лучше, если вы откроете еще один для вопроса программирования Arduino. Я отвечу здесь на второй вопрос.

    Емкость одной топовой щелочной батареи AA 1,5 В емкостью около 2600 мАч. Если вы выберете литиевые батареи, вы можете получить около 3400 мАч, если вам повезет. Давайте возьмем эту цифру за основу для наилучшего случая.

    Теоретическое максимальное время работы нагрузки рассчитывается просто путем деления емкости на нагрузку. Если ваша нагрузка составляет 1 мА, вы можете проработать его в течение 3400/1 = 3400 часов = 141 день = ~ 5 месяцев. Однако это всего лишь теоретический максимум , поскольку за это время вы начнете получать значительное падение напряжения примерно на 65%.Если вы регулируете выход, вы получите эффект разгона, когда чем ниже напряжение батареи, тем выше ток, необходимый для поддержания регулируемого напряжения, что быстрее разряжает батарею. Я был бы удивлен, если бы вы смогли получить от него более 80% заявленной емкости при достаточно высоком напряжении для работы вашего устройства.

    Итак, предположим, что вы получаете 80% этого времени после падения напряжения и неэффективности регулятора. Предположим, вы работаете от 3,3 В от трех последовательно соединенных батарей.Это все равно даст вам ту же мощность, но напряжения будет достаточно для регулятора. Если ваше устройство работает от 15 мА (это довольно консервативная оценка), цифры будут выглядеть так:

    • Емкость после 80% эффективности = 3400 * 0,8 = 2720 мАч
    • Время = 2720/15 = 181 час = 7,54 дня

    Итак, вам понадобится около 144 литиевых батарей (48 комплектов по 3), чтобы проработать его в течение года. Не так хорошо, как хотелось бы!

    Я бы предложил вместо этого использовать стабилизированный источник постоянного тока от сети.Может быть включен резервный аккумулятор, который легко настроить с помощью реле SPDT — просто подключите катушку к сети постоянного тока и подключите «выключенный» контакт к аккумулятору. Когда DC выходит из строя, контакт падает, и вместо него используется аккумулятор.

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

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