Часы на семисегментных индикаторах: Часы на Arduino и 4-х разрядном семисегментном индикаторе: схема и программа

Содержание

Речь пойдет о светодиодных часах, собранных на больших семисегментных индикаторах 70Х110 мм с общим катодом, имеющих по 6 светодиодов в сегменте и, соответственно, требующих питания часов чуть более 12 вольт. Максимальный ток потребления сегмента — 30 мА, но в нашей конструкции сегмент потребляет около 13 мА, чего более чем достаточно для нормальной видимости. Также часы имеют термометр на датчике DS18B20 и коррекцию хода. Контроллер — Atmega8. При отключении питания часы работают от трех пальчиковых батареек, при этом индикация отключается.

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

Схема переделана под данные индикаторы, то есть были добавлены ключи на биполярных транзисторах в анодных цепях и микросхема ULN2003 в катодных.

Резисторы R43-R49 и R50-R53 в реальности не нужны, они поставлены здесь чтобы Протеус адекватно запускал схему. Схема могла быть и проще если применить полевые транзисторы и индикаторы с общим анодом.

В конструкции применены транзисторы BC847 и BC857. Резисторы в анодных цепях по 20 Ом, и подбирать их не нужно поскольку достаточно подобрать напряжение питания, которое идет с LM317. В моем случае оно равно 12,7 вольт. D2- точка, в индикаторах это обычно один светодиод. Её нужно подключать только у одного индикатора.

Настройка происходит нажатием кнопки SET, по кругу.

1. Режим отображения минут и секунд. Если в этом режиме одновременно нажать на кнопку PLUS и MINUS, то произойдет обнуление секунд.
2. Установка минут текущего времени.
3. Установка часов текущего времени.
4. Величина ежесуточной коррекции точности хода часов. Символ c и значение коррекции. Пределы установки -25÷25 сек. Выбранная величина будет ежесуточно в 0 часов 0 минут и 30 секунд прибавлена/вычтена из текущего времени. />

Во всех режимах удержанием кнопок PLUS/MINUS производится ускоренная установка.

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

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

Теперь непосредственно о реализации схемы. Сначала была собрана плата.

Соединение индикаторов между собой производилось проводом МГТФ, а с платой — через разъемы.
Индикаторы скрепляются с помощью вкрученных в них полосок стеклотекстолита

Потом я подпаял датчик к плате и запустил схему.

В качестве корпуса был куплен электрощиток на 18 модулей, с прозрачной крышкой.

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

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

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

Ток потребления часов — не более 100 мА, при отсутствии сети от батареек потребляется около 40 мА.


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

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

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

Wall-E Clock Shield. Своими руками. Часть 1. Железо / Блог им. Ghost_D / RoboCraft. Роботы? Это просто!

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

Прикинул, всяческие ЗА и ПРОТИВ.
Самые веские ЗА:

 1) Не пропадать же выпаянным деталькам впустую 🙂

 2) Этот шилд, по моему мнению, может стать неплохим подарком. (я в некоторой степени «курирую» ардуиновское направление у одного знакомого подростка, и у него, кстати, в начале мая ДР).

 3) Часы относятся к «вечным» ценностям и являются очень полезным и всегда актуальным прибором!

 4) Процесс изготовления — хороший материал для статьи на конкурс Кибервесна 2014 🙂

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

 6) Данный проект просто обязан поднять мой собственный LEVEL в части программирования.

Как корабль не может быть без имени, так и проект должен как-то называться. Проект я назвал WALL-E Clock Arduino Shield. Почему так? Ну, во первых, большинство деталей — взяты с мусора (мат. платы, списанные принтера и т.д.). А во вторых, что бы хоть как-то оправдать нахождение этого проекта на ресурсе, посвященному роботам 🙂

Итак, сформированные требования к будущему шилду-часам (как говорят, «ХОТЕЛКИ»):

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

 2) как минимум, 2 семисегментных индикатора

 3) пусть это будет еще и будильник

 4) размер готовой платы не должен превышать размеры стандартного шилда для Arduino

 5) предусмотрим кнопки для НОРМАЛЬНОЙ установки времени/будильника/задания режима работы (а не через Serial port и тому подобные извраты)

 7) «полуавтономный» вариант.

Итак, с этой же материнской платы дополнительно были извлечены: часовой кварц (32.768 kHz), буззер (пищалка) и батарейный отсек (для батарейки CR2032).

Собираем схему на макетке. Причем, сборка проходила покаскадно 🙂

«Оп-Оп! Ардуино-стайл. »

Не знаю почему, но в мире Arduino, самой ходовой микросхемой RTC (Real Time Clock) является DS1307. Не будем оригинальничать и отступать от традиционного. (Тем более, что эта микросхема еще и легкодоступна. Даже наш минский завод «Интеграл» выпускает ее аналог, с названием IN1307 ).

 Итак, основа наших часов — микросхема DS1307 (в качестве «обвеса» установлены: кварц на 32,768Кгц, батарейка и 2-а подтягивающих резистора на линиях SDA и SCL). Благодаря батарейке они продолжают идти при отключении внешнего питания. Также у DS1307 есть свободные 56 байт энергозависимого статического ОЗУ, которые можно использовать в своих целях (например, хранить настройки будильника).

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


 Регистры микросхемы DS1307.

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

 — Часы хранят информацию в двоично-десятичном виде – для получения данных достаточно прочитать соответствующий им регистр. (Пример, 25 минут хранятся по адресу 1. И записаны в виде: «0010 0101»=37 или HEX=25. Для перевода в нормальный вид нужно (37/16)*10+остаток от деления на 16 = 2*10+(37-32)=25).


 — 7 регистр отвечает за выходной тактовый генератор часов, SQW вывод. Бит OUT инвертирует выходной сигнал, бит SQWE включает тактовый генератор, а биты RS0 и RS1 устанавливают частоту тактовых импульсов.


 Для работы с клавиатурой на скорую руку была сделана такая вот платка


 Такой вариант клавиатуры нужно подключать к пину, с поддержкой АЦП (читай, «аналоговые» входы).

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

DS1307 подключается по протоколу I2С Bus, а это значит, что уже задействованы пины А4 и А5.

 Тактирующий выход DS1307 мы подключим к одному из пинов Arduino, которые поддерживают внешние прерывания.

Подключение индикаторов достаточно простое. Все аноды индикаторов (8 штук у каждого) соединяются параллельно и подключаются к выводам сдвигового регистра 74HC595, а выводы катодов (по два на каждый индикатор) — в нужный момент «садятся на землю» с помощью транзисторных ключей. Очень хорошо подошла для этого сборка Дарлингтона MP4020 (коих я навыпаивал с принтеров в большом количестве).

 Цифровые пины Arduino №3,4,5,6 — подключение баз транзисторной сборки. (Из-за нюансов при разводке печатной платы, подключение немного не логичное. В плане, 6 пин управляет первым сегментом и т.д.)

 Как говорят знающие люди: «Что не допаяно паяльником — скорректируем софтом!»

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

Схема готова.

 Следующим этапом — разводка печатной платы.

(Огромное спасибо Александру, за неоценимую помощь в этом процессе! Особенно мне понравился «финт» с кнопками).

Обратите внимание.
Кнопки должны быть с 4-мя выводами (Дело в том, что попарно замкнутые выводы кнопки используются как перемычки на плате).
Холдер батарейки накрывает DS1307. Примерьте заранее.
Номиналы деталей можно узнать при наведении курсора в SprintLayout.
Я использовал в SprintLayout возможность заполнения медью неиспользуемой площади (Темно-зеленые участки). Без всяких замыслов, банально, чтобы быстрее вытравливалась плата.


 Однако, я РЕАЛЬНО не понимаю, как указать, что это площадь — «земля». Поэтому, при запайке я объединил их с помощью перемычки (резистор 0R).


 ЛУТ, традиционный ЛУТ. Хороший утюг Вам в помощь 🙂
(Честно говоря, мелкие дорожки под индикаторами заставили меня переутюживать плату несколько раз. Так, что не говорю, что процедура простая. Запасайтесь терпением).

Собственно, лицевая сторона платы — тоже ЛУТ. Со слоями в SprintLayout надеюсь разберетесь 🙂

 Собираем до кучи все необходимое.

Ну и пару часов уходит на запайку деталек…
Маленький нюанс. Чтобы изображение (на лицевой стороне) не испортилось, я покрыл его прозрачным лаком для печатных плат. Однако, это лак портится от воздействия спирта. А без спирта — очень тяжело отмыть плату от разводов канифоли. В этот раз (по совету друзей) я паял с помощью глицерина, который ОЧЕНЬ замечательно отмывается простой водой. Приобретается глицерин в аптеке, без всяких проблем.

Личные ощущения. Процесс пайки с помощью глицерина менее «комфортный», чем с флюсом, но вполне приемлем.

Нижняя сторона платы:

Если добрались до этого момента — мои поздравления. С «железячной» частью закончили 🙂

К этому моменту написания статьи, я понял, что опус получается очень «громоздким» и решил разбить его на две части. В следующей части, внимательно рассмотрим программную составляющую проекта.

 Так, что чуть-чуть терпения…

To be continued… (или по нашему) Продолжение следует…

AHTOXA.NET:Про электронику:Проекты на STM32:Часы на семисегментных индикаторах

Внимание! Без жабаскрипта моя удобная и красивая навигация по сайту работать не будет! Либо включите javascript, либо пользуйтесь картой сайта.

Здесь описаны часы на семисегментных индикаторах.

Описание

Это устройство я сделал по двум причинам.

Первая — мне нужны были часы. Дело в том, что я купил измеритель потребляемой мощности, и обнаружил, что музыкальный центр панасоник, который у меня показывал время в зале, жрёт в режиме часов более 10 Вт! Это было слишком. К тому же, центр сбрасывал показания часов при пропадании электричества в розетке.

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

Забегая вперёд, скажу, что всё получилось, чему я очень рад.

Конструкция

Часы состоят из двух плат: платы индикаторов и процессорной платы.

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

Процессорная плата содержит микроконтроллер STM32F100C8 (64К flash, 8К ОЗУ в корпусе LQFP48) с небольшой обвязкой (питание, кварц, ионистор).

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

Передняя стенка — из тонированного оргстекла. Тонировка фиолетовая, в сочетании с индикаторами красного цвета смотрится очень хорошо.

Две кнопки собраны на куске макетной платы и привинчены на верхнюю стенку корпуса. Разъём питания приклеен на боковую стенку.

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

Схема

Схема платы индикации:

Схема процессорной платы:

Или вот эта же схема в pdf

Описание работы

Две кнопки. Одна увеличивает время, другая — уменьшает. На данный момент это всё:)

Надо бы сделать ещё регулировку яркости и корректировку хода. Но что-то всё некогда.

Прошивка

Прошивку пока не выкладываю, допишу как следует — выложу:-)

Часы на STM32 на внутреннем переферийном модуле RTC

Давно я что-то часов не делал… Более того, я еще не сделал ни одних часов на STM32 с начала их изучения… Ну вот сейчас сразу два упущения и устраним)
Мне понадобились некие несложные (в смысле – без особых наворотов) часы с достаточно крупными цифрами. В наличии были 70мм светодиодные семисегментные индикаторы SA23-11HWA, уже достаточно давно по случаю приобретенные у одного из наших форумчан, на них и остановился. Схема получилась такая:

Сразу скажу, что микросхема RTC DS1307, термометр TMP101, ИК-приемник, ЕЕПРОМ и датчик освещенности ISL29010 не устанавливались, хотя такая возможность и сохранена на печатной плате.
Всем огородом управляет микроконтроллер STM32F100C4 (базовая конфигурация, об этом ниже) или С6 (расширенная версия). В качестве часов реального времени задействован встроенный модуль микроконтроллера, тактирование от часового кварца на 32768Гц ZQ1. Микроконтроллер посредством одного из своих аппаратных SPI загружает данные для отображения на дисплее (читай – время) в 4 сдвиговых регистра 74HC4094, нагрузкой которых являются сборки ULN2003 и транзисторные ключи, управляющие непосредственно индикаторами. Индикация получается статическая – ну вот не люблю я динамику, если нет особых ограничений. Питание индикаторов – 12В, от меньшего напряжения их не зажечь – диодов много (9В, думаю, тоже хватит, если что). Входные 12В преобразуются в 5В для питания логики и в 3,3В для микроконтроллера. Управление – пятипозиционная кнопка-джойстик. Короткое нажатие – переход к показу секунд (всегда делаю такой режим, чтобы можно было сразу понять, что часы живы и куда-то идут – полезно на этапе отладки. Долгое нажатие до одного звукового сигнала – настройка: влево/вправо изменение значения, короткое нажатие – подтверждение, сначала ставим часы, потом минуты. Влево/вправо в основном режиме – изменение яркости индикации (сделано ШИМом, причем посредством загрузки в регистры нулевых данных; можно было бы сделать проще, но не предусмотрел и не развел на плате цепь Enable регистров…) Все нажатия подтверждаются звуковым сигналом.
В расширенной версии установлен BlueTooth модуль для удаленной установки/синхронизации времени. Подробнее об этом можно узнать в этой статье. Пришлось несколько доработать софт для синхронизации, новая версия обратносовместима с софтом из упомянутой статьи. Алгоритм и последовательность синхронизации такая же, как в часах «Orbit LED»
Программа для контроллера подготовлена в Keil. Версия прошивки задается на этапе компиляции путем включения или отключения
#define BLUETOOTH 1
Неприятность в том, что при подключении функций работы с BT-модулем код чуть-чуть не влезает в микроконтроллер C4 и требуется уже С6 или С8. Включение оптимизации приводит к получению неработоспособной прошивки. Честно сказать, с причинами такого явления не разбирался: код несложный, критичных мест я там не вижу, возможно, это следствие использования StdPeriphDriverLibrary…
По конструкции – одна печатная плата:

Для удобства подключения – два по-разному ориентированных входных разъема питания. Корпус тоже сделал из текстолита:

На задней крышке сразу подготовлены мета для крепления кронштейна:

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

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

Файлы:
Схема и печатная плата P-CAD 2006
Проект HiAsm и ПО для синхронизации
Исходники и прошивка Keil

Схема часов с светодиодной индикацией » Паятель.Ру

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

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

Изучение схем и функционирования нескольких различных часов, построенных на основе этой микросхемы, позволило сделать вывод, что микросхема КР145ИК1901 сохраняет работоспособность при понижении напряжения питания до 8 В, но при этом не работает индикатор, поскольку на его аноды необходимо подавать напряжение не ниже 20 В. Именно этот режим, в некоторых часах используется для обеспечения хода часов за счет резервной батарейки на 9 В при отключении сетевого напряжения.

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

При том ток, который могут развивать эти выходы оказывается очень небольшим (до 0,2-0,5mA), что не дало возможности подключить светодиодные индикаторы непосредственно к выходам микросхемы. Для того, чтобы это можно было сделать, было решено уровни с выходов сегментов индикации подать на базы транзисторных ключей через резисторы большого сопротивления (150 кОм).

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

Уровни с выходов опроса динамической индикации, которые по типовой схеме поступают на сетки элекролюминесцентного индикатора, в данном случае были поданы на входы инверторов микросхемы К561ЛЕ2, а к её выходам были подключены транзисторные ключи на транзисторах структуры P-N-P для переключения разрядов индикации.

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

Сигналы с сегментных выходов КР145ИК1901 — A…G поступают на входы транзисторных усилителей на VT1-VT7, в коллекторной цепи которых включены сегментные входы индикаторной матрицы составленной из индикаторов Н1-Н4 (одноименные сегментные выводы этих индикаторов соединены вместе, а выводы питания — 14, используются для динамического опроса).

Уровни с выходов разрядов 1Р…4Р поступают на входы инверторов микросхемы D2, которые, также выполняют роль усилителей. С выходов этих инверторов сигналы поступают на базы транзисторных ключей на VT8-VT11, которые по сигналам динамического опроса индикации переключают индикаторы Н1-Н4. Испытания показали, что такая схема нормально работает в диапазоне питающих напряжений 10-15В. />

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

При необходимости ввести будильники, нужно дополнить схему еще двумя кнопками Буд.1 и Буд.2, первую из которых подключить между выводами 47 и 42 D1, а вторую между выводами 46 и 42 D1. Управляющие сигналы для включения исполнительного устройства будильника нужно снимать с выводов 27 и 28 D1.

Отключать индикацию можно при помощи выключателя или электронного ключа, включенного в разрыв проводника, идущего от точки соединения эмиттеров VT8-VT11 до источника питания.

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

Простые часы с термометром на микроконтроллере AVR ATtiny2313 с выводом информации на семисегментный индикатор. Часы используют для отсчета времени микросхему DS1307 — часы реального времени и источником резервного питания в 3 В. Температура измеряется при помощи датчика температуры DS18B20.

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

Точность отображения температуры составляет десятые доли градуса. Погрешность в интевале температуры от -10 до 85 градусов составляет порядка +/- 0.5. В другом диапазоне точность уже +/- 2 градуса.

Температура замеряется 1 раз в минуту. Измеренное значение отправляется в память контроллера в которой может хранится пять послених измеренных значения. Измеренная температура округляется до целого значения. На дисплее имеются специальные символы повашения температуры (стрелка вверх) и понижения температуры (стрелка вниз), которые показывают как изменилась температура повисилась она или понизилась. 

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

Схема часов с термометром на микроконтроллере

Представленные схемы отличаются только общим выводом индикатора анод и катод. Индикаторы работают в динамической индикации. Динамическая индикация раелизована программно. Каждый семисегментный индикатор включается с интервалом 100 раз за 1 секунду. остальное время выключен. 

Прошивка для микроконтроллера

В архиве имеются файлы Proteus и сама прошивка написана на ассемблере. Прошивка может работать для двух вышеприведенных схем, для схемы с индикатором с общим катодом и схемы индикатора с общим анодом. При прошивке микроконтроллера важно выствыить fuse-биты: CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0.

Скачать: прошивка микроконтроллера

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

Для устройства необходимы две печатные платы из одностороннего стеклотекстолита который имеет размеры 50 на 100 мм, на одной плате устанавливаются индикатор с кнопками, а на другой сами часы. Равзодка платы в формате SpringLayout.

Индикатор или дисплей собран на двух семисегментных индикаторах FYD-8021BS-11, каждый имеет 2 разряда и имеют общий анод.

Вместо указаных на схеме вернхних включающих транзисторов платы можно использовать другие к примеру KT361B.

Исходник статьи: Часы-термометр

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

ЧАСЫ НА ATMEGA

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

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

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

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

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

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

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

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

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

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

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

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

Механический семисегментный дисплей Часы: 7 шагов (с изображениями)

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

Вот краткое описание кода, ознакомьтесь с полным руководством для более подробного объяснения и ссылки для загрузки кода — Механические 7-сегментные часы с дисплеем

Начнем с импорта двух библиотек virtuabotixRTC.h для модуля часов и Adafruit_PWMServoDriver.h для сервоприводов. Библиотеку Adafruit можно загрузить и установить непосредственно через диспетчер библиотек в среде IDE.

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

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

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

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

В функции настройки мы запускаем и настраиваем платы управления ШИМ, а также при необходимости обновляем время на часах. Затем мы проходим цикл, чтобы установить дисплей на 8 8: 8 8, чтобы мы знали начальную позицию всех сервоприводов. Это также используется для настройки сервоприводов так, чтобы они все были направлены вверх правильно.

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

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

DIY точные цифровые 7-сегментные часы

Это четвертая, а может и последняя версия моего цифрового настенные часы. Я хотел сохранить все хорошие возможности версии 3. и добавить новые.Я также стремился снизить стоимость запчастей, так как Maxim DS3231 очень дорогой, а драйверы дисплея SAA1064 тоже были не слишком дешевыми. Таким образом, драйверы светодиодов заменены на TLC5925, а RTC изменен на PCF2129. По схемотехнике своп из этих частей был быстрым, но на стороне FW немного медленнее, как у меня написать драйверы.

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

Вы можете увидеть презентацию функций на этом видео. Видео также кратко сравнивает предыдущие версии часов.

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

  • 7-сегментные дисплеи 58 мм (2,3 дюйма)
  • Регулируемая яркость
  • И часы-точки, и десятичные разряды для разных отображений режимы
  • Показывает время, дату, день недели, внутри и снаружи температура, атмосферное давление, относительная влажность и роса точка
  • Два режима переключения, которые чередуются между перечисленными режимами отображения выше
  • Хронометр (секундомер) с точностью до 1/100 с, поддерживает разделение и время круга
  • Часы реального времени с батарейным питанием и очень точным отсчетом времени ИК-пульт дистанционного управления
  • , совместимый с Nec, SIRC (Sony), Kaseikyo, Протоколы Matsushita, Samsung, JVC и RC5.
  • Зуммер для генерации звука, используется для часового гудка и будильника
  • Два разъема для термисторов для измерения внутри и снаружи температуры
  • Дополнительный разъем, например, для Барометр I2C. Поддерживает BME280 датчик.
  • Точное время по GPS с U-Blox Модуль GPS CAM-M8
  • Опционально получить время от NTP-сервера с помощью модуля Wi-Fi ESP8266 (подробности см. здесь)
  • Автоматический переход на летнее время
  • Форматирование времени и даты, а также единицы измерения температуры могут быть изменены для всех регионов
  • Работа ведущего / ведомого устройства через ИК-сигнализацию

Оборудование

Версия 4 использует те же 58 мм (2.3 ) отображается как версия 3. Там Совместимые дисплеи доступны от нескольких производителей. В дисплеи должны быть с обычным анодом. Подходящие дисплеи, например, Серия Sharlight CM1-2302, серия Kingbright SA23-11, Венрун LSD230B, а также большинство дисплеев с диагональю 2,3 дюйма с eBay.

Лучший светодиодный индикатор с плоским верхом для дешевых дисплеев eBay, которые Я нашел Kingbright WP483SRSGW (или более старый код Kingbright L-483SRSGW).На самом деле это двухцветный светодиод, но при установке, как в сборочный чертеж, он горит красным. При установке наоборот, он загорится зеленым. Зеленый цвет подходит для Венруна LSD230BAG-101-01 зеленый дисплей, который можно приобрести в TME по адресу: очень доступная цена. Картинка вверху этой страницы показывает зеленый дисплей Wenrun. Я также использовал термоусадочную трубку вокруг светодиодов. чтобы предотвратить утечку света сбоку.

Предыдущие часы использовали внутренний датчик температуры DS3231 RTC для отображения температуры.Однако это не давало точного показаний, поскольку мощность, рассеиваемая дисплеями и драйверами, была подогрев RTC. Версия 4 имеет разъемы для подключения двух внешних NTC термисторы для измерения внутренней и наружной температуры. Подходящее термисторы можно приобрести на eBay. У них 10 кОм сопротивление бета-значение 3950. Термисторы имеют XH разъем на одном конце, который является китайской копией JST Разъем серии XH.Вы можете использовать либо подлинный JST, либо Китайская реплика на печатной плате. По моим измерениям эти термисторы очень внимательно следят за этим диаграмма на сайте Adafruit. Я измерил один термистор во льду вода 31,87 кОм и в кипятке 652 кОм. В прошивке есть массив на основе таблицы Adafruit и на практике отображаемый значение температуры, кажется, очень близко соответствует коммерческому цифровой термометр.

Улучшена поддержка удаленного управления. Прошивка поддерживает Nec, Nec42, Samsung, SIRC, Kaseikyo, Matsushita, JVC и RC-5 протоколы. Он также имеет функцию обучения, которую можно использовать для обучения он работает с любым пультом дистанционного управления, который использует один из поддерживаемых протоколы. Вы можете использовать, например, старый пульт от телевизора или DVD для контролировать часы. ИК-приемник следует выбирать исходя из несущая частота, используемая протоколом.SIRC использует 40 кГц, RC-5 использует 36 кГц, а остальные используют 38 кГц. Однако 38 кГц работает неплохо также для SIRC и RC-5. Пример подходящей 38 кГц Ресивер Vishay TSOP53438. Это дешево, чувствительно и хорошо подавление шума.

Развертка часов основана на PCF2129AT. Это также обеспечивает резервное питание от батареи. Энергопотребление RTC составляет 2,15 мкА в резервном режиме. Батарея CR2032 имеет типичную емкость 190 мА, так что его хватит на 10 лет.Конечно, когда часы получает питание, аккумулятор не разряжен. PCF2129AT — это температурная стабилизация и точность очень похожа на DS3231 всего за небольшую часть цены.

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

Также есть посадочное место для U-blox CAM-M8 GPS / Glonass / Модуль Galileo / BeiDou. В прошивке есть автоматическое распознавание для модуля GPS и PCF2129 RTC. Он работает с одним или с обоими. Прошивка использует только время и дату GPS, полученные из Сообщение GPRMC.

Схемы

Схема довольно проста.PIC16F1788 прошивка делает большую часть работы.

Входное напряжение подается на разъем X1. Он должен быть достаточно высоким, чтобы уметь управлять цепочкой из 4 светодиодов в каждом сегменте. Для красных отображает это обычно около 7,5 В. Затем выходной каскад TLC5925 требует дополнительных 1,0 В для поддержания регулирования. А 12 В источник питания подходит для большинства типов дисплеев. Для экономии энергии, 9 В поставка обычно тоже в порядке. Можно использовать напряжения до 17 В (или выше до 16 В при использовании MCP1703-3302E / DB в качестве регулятора IC6), но это приводит к увеличению потерь энергии и выделению тепла на дисплее драйверы.Диод D1 защищает от неправильной полярности питания, но для от перенапряжения защиты нет.

Дисплеи управляются тремя светодиодами постоянного тока TLC5925. драйверы. Они управляются через шину SPI от PIC. Светодиодный ток устанавливается резистором на выводе R-EXT на TLC5925. Текущий в каждый выход в 18 раз превышает ток вывода R-EXT. Теперь небольшая хитрость используется для глобального управления яркостью всех сегментов. В интегрированный ЦАП и интегрированный операционный усилитель PIC используются для управления нижние стороны резисторов R-EXT.Это позволяет легко регулировать яркость без использования ШИМ и без всех связанных с этим недостатков с ШИМ.

PCF2129AT RTC может использовать SPI или I²C. Здесь I²C используется. PCF2129AT настроен на вывод тактовой частоты 1 Гц. тема. Это генерирует прерывания для обновления времени. Автобус I²C также доступен на дополнительном разъеме X4.

На схемах ИК-приемник обозначен как TSOP53438. Также многие другие типы должны работать, некоторые из них предложены на принципиальной схеме.ИК расшифровка сделана в прошивке. Светодиоды ИК-излучателя подключаются в ряд. Два управляющих транзистора Q1 и Q2 подключены параллельно для совместного использования тепловая нагрузка. Установлен постоянный ток возбуждения для транзисторов Q1 и Q2. на Vbe Q3, разделенного резисторами R1 и R2, соответственно, давая всего 130 мА. Ток привода слишком велик для непрерывного работы, поэтому светодиоды должны быть импульсными с рабочим циклом от 1/3 до 1/4.

Для считывания переключателя джойстика используется внутреннее подтягивание PIC, поэтому его можно подключен напрямую.Термисторы подключаются к разъемам Х2 и Х3. Они образуют делитель напряжения с резисторами R6 и R7, а разделенное напряжение измеряется с помощью PIC ADC. Зуммер работает от входное питание часов через Q4 для создания достаточно громкого звука.

GPS-модуль CAM-M8 настроен на использование внутренней антенны, поэтому единственный внешний компонент, который ему нужен, — это байпасный конденсатор. это подключен к ПОС через UART. Основная цель модуля по этому часы должны обеспечивать автоматическую и точную установку времени.

kello_v41.sch.pdf 11.9.2018 Схема v4.1

Доска

Плата для часов разработана с использованием версии Cadsoft Eagle. 5.12. Дизайн двухсторонний, и правила оформления вполне соблюдаются. расслаблен. Большинство компонентов SMD и на нижней стороне доска. Только те части, которые должны быть видны или слишком высокие для нижняя сторона находится сверху. Это минимизирует площадь платы, так как дисплеи почти полностью заполняют верхнюю часть платы.Сегмент Порядок установки драйверов дисплея такой же, как и в предыдущей версии. Это обеспечивает простую маршрутизацию всех сегментных сигналов на одном уровне. Этот вызывает дополнительную работу в исходном коде драйвера дисплея, поскольку порядок сегментов различен для двух дисплеев, управляемых одним чип.

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

Общая тележка Digi-Key, в которой есть все части, кроме джойстика. переключатель, нажмите здесь. Альпы SKQUCAA010 5-позиционный переключатель направления доступен в RS (P / N 516-316) и Farnell (P / N 1435775).Ты также можете заказать это у сеянцев заодно заказываете доски. Digi-Key также перечислен видимый переключатель джойстика, но он имеет высокое MOQ. А напрямую совместимый заменитель доступен на eBay.

Примечание при заказе запчастей; вы можете сэкономить, исключив функции, которые вам не нужны. Многие части можно просто пропустить не влияя на другие функции часов. Модуль GPS есть самый дорогой компонент и он не так много приносит преимущество, потому что PCF2129 очень точен.С другой стороны, если вы используете GPS, вы можете оставить PCF2129 и аккумуляторный отсек. Если вы используете функцию ведущего / ведомого, ведомые часы не требуются либо PCF2129, либо GPS, поскольку они будут работать из внутреннего Осциллятор PIC и синхронизируются с главными часами каждую минуту. Ты также можете не использовать ИК-светодиоды и их компоненты привода, если вы этого не сделаете. нужны функции ведущего / ведомого устройства или не использовать зуммер и привод компоненты, если вам не нужен будильник / часовой звуковой сигнал и т. д.

Файлы проекта Eagle и сборочный чертеж можно скачать ниже:

kello_hw_v41.zip 9.9.2018 Схема и файл платы, разработан с Eagle 5.12. Вы можете заказать платы на сайте PCBWay. используя это ссылка на сайт.
kello_v41_assy_dwg.pdf 11.9.2018 Сборочный чертеж, включая ведомость материалов

Прошивка

Прошивка часов написана с помощью компилятора CCS PIC-C.В доступен пакет исходных файлов, включая скомпилированный файл .HEX для скачивания ниже.

Код ИК-приемника изначально был основан на языке Сан Код обнаружения NEC Бергманса и RC-5 код приемника. Поэтому я их немного упростил и преобразован в C. Также улучшен код RC-5: он синхронизируется получатель на каждый полученный бит. Это делает его намного больше терпимо для разных пультов, которые могут немного отличаться тайминги.Ресиверы JVC, Samsung, SIRC, Kaseikyo и Matsushita коды написаны мной, но в основном они работают с одинаковыми принцип действия (конечный автомат, управляемый прерыванием по таймеру). у меня есть также добавлено автоматическое распознавание, поэтому конечный автомат ИК-декодера идентифицирует код, который он получает, и обрабатывает соответственно.

Код GPS-приемника основан на коде из библиотеки кодов форумов клиентов CCS, опубликованной PICoHolic.

Код для Bosch BME280 температуры, атмосферного давления и Модуль относительной влажности поставляется с компилятором CCS.Для PIC16 серия чипов, скомпилированный код может быть слишком большим, чтобы поместиться в памяти сегменты, если весь код является встроенным. Это можно решить, добавив #separate директива перед int32 _bme280_compensate_H_int32 функция. Это заставляет компилятор реализовать эту функцию как отдельный, а не встроенный, и позволяет коду умещаться в памяти сегменты. Еще заметил, что был один неверный регистр адрес в драйвере, предоставленном CCS, что вызывало передискретизацию настройки установлены неправильно.Я сообщил об этом в CCS, поэтому он вероятно, будет исправлено в будущем. Пакет fw v0.91 ниже включает файл .diff, который можно использовать для исправления файла bme280.c, чтобы исправить эту ошибку и добавьте директивы #separate.

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

kello_v40_fw_v06.zip 26.12.2017 Исходные файлы для HW v4.0, FW v0.6. Содержит скомпилированный .HEX с CCS версии 5.054.
kello_v40_fw_v09.zip 3.2.2018 Исходные файлы для HW v4.0, FW v0.9. Содержит скомпилированный .HEX с CCS версии 5.076. В этой версии добавлена ​​поддержка модуля GPS, часовые пояса, летнее время, барометр / влажность BME280 модуль и множество мелких оптимизаций.
kello_v40_fw_v091.zip 7.9.2018 Исходные файлы для HW v4.0, FW v0.91. Содержит скомпилированный .HEX с CCS версии 5.080. В этой версии добавлена ​​поддержка master / slave. функция, сигнализация, расчет точки росы, Kaseikyo and Matsushita IR протоколы, форматирование даты / времени / температуры и день недели дисплей
kello_v4x_fw_v092.zip 16.10.2018 Исходные файлы для HW v4.0 и v4.1, FW v0.92. Содержит .HEX скомпилирован с помощью CCS версии 5.081. Эта версия добавляет совместимость с печатной платой версии 4.1. Единственное отличие в плате v4.1 требуется изменение прошивки — другая скорость передачи U-blox CAM-M8C по сравнению с Fastrax UC530M, используемым в версии 4.0. Скорость передачи по умолчанию 9600 для CAM-M8C, но вы можете изменить его на 115200 бод для UC530M через настройка меню. Также некоторые другие мелкие исправления.
kello_v4x_fw_v100.zip 11.7.2019 Исходные файлы для HW v4.x, FW v1.00. Наконец-то релиз v1.00! Содержит .hex, скомпилированный с помощью CCS версии 5.081. Добавить поддержку 6-го удаленная кнопка (питание). Диагностика резервного аккумулятора и GPS. Фиксированный отображение отрицательных значений точки росы.
kello_v4x_fw_v110.zip 6.7.2020 Исходные файлы для HW v4.x, FW v.1.10. Содержит скомпилированный .hex с CCS версии 5.094. Добавляет хронометр (секундомер), звуковой сигнал кнопки, настройка генератора. Некоторые другие мелкие улучшения и баг исправления.
kello_v4x_fw_v120.zip 12.1.2022 Исходные файлы для HW v4.x, прошивка v1.20. Содержит скомпилированный .hex с CCS версии 5.097. Использует модифицированную библиотеку time.c для поддержки датируется 2078 годом. Добавлены две новые дополнительные кнопки дистанционного управления. Все дополнительные кнопки теперь также можно подключить к линиям PIC ICSP (VPP = мощность, PGC = переключение, PGD = яркость). Некоторые другие маленькие улучшения и исправления ошибок.
kello_v4x_fw_v121.zip 29.3.2022 Исходные файлы для HW v4.x, FW v1.21. Содержит скомпилированный .hex с CCS версии 5.099. Исправляет ошибку, влияющую на часовые пояса, отличные от -2 … +1 UTC.

Как это построить

Сборка печатной платы довольно проста. Лучше начать с нижней стороны (тыльной стороны), имеющей поверхностное крепление составные части. Компоненты выбираются с учетом потребностей DIY, с комфортно большим расстоянием между выводами. Если у вас есть предыдущие опыт пайки SMD компонентов, у вас должно быть все в порядке. Как обычно, начните с пассивных компонентов, а затем с ИС и транзисторы.

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

После того, как вы закончили пайку, внимательно проверьте, что у вас есть все компоненты правильно ориентированы и что вы не сделали шорт.Затем вы можете подать питание на разъем цилиндрического разъема, что-то между 9 В и 12 В постоянного тока. Проверить напряжение с контрольной точки TP2, оно должно быть 3,3 В. Затем можно приступить к программированию микроконтроллера PIC. Ты необходимо, чтобы плата запитывалась от сети во время программирования, поскольку текущее потребление может быть слишком высоким, чтобы программист мог его запитать. Если у вас нет опыта программирования PIC, проверьте здесь.

После успешного программирования вы должны наконец увидеть что-то на дисплеи.

Корпус

Может быть, самым большим усилием в моих проектах с часами было корпус. Я использовал несколько подходов. Я использовал готовый корпус Velleman B8009 с часами первой и второй версий. Я построил деревянный Корпуса и алюминиевые корпуса с дымчатым тонированным лексаном окна. Я использовал фоторамку, чтобы закрыть большие часы v4. с 5-дюймовым семисегментным дисплеем. Я разработал листовой металл корпус с раздвижным акриловым окном с механической САПР программное обеспечение.Было бы дешево производить в больших объемах, но NRE стоимость слишком высока для хобби-проектов. Все эти конструкции служат своим цель хорошо и даже красиво выглядеть, но они либо труд интенсивный или дорогой.

Лазерная резка завоевала популярность, и есть много компаний которые предлагают услуги лазерной резки онлайн. В Финляндии можно даже использовать станки для лазерной резки в некоторых публичных библиотеках бесплатно . ПММА дешев и хорошо режется лазером.ПММА также известен как акрил, или под его общепринятыми торговыми названиями оргстекло или плексиглас. В Самый простой способ — заказать через какой-нибудь онлайн-сервис, вы просто поставляете вырезанные файлы и выберите материал. Я использовал Razorlab для изготовления деталей показано на фото ниже. Материал матовый черный толщиной 3 мм. акрил для задней панели и прозрачный акрил серого оттенка для передняя панель. Из этого же материала можно сделать заднюю панель. прозрачный материал в качестве передней панели, так как это немного дешевле в использовании только один материал.

Я тестировал использование прозрачного красного и прозрачного зеленого PMMA. корпуса. Зеленая форма PMMA Razorlab имеет темно-зеленый цвет. цвет (может быть, ближе к синему, чем к желтому), поэтому ему нужны дисплеи с подходящим чистым зеленым цветом. Многие зеленые 7-сегментные дисплеи желтовато-зеленые, а яркость снижена из-за несоответствия тона. Вы можете скачать файл дизайна в формате SVG. формат ниже:

kello_v4_enclosure_razorlab.svg Файл дизайна акрилового корпуса в формате .svg. Разработано с Inkscape.
kello_v4_enclosure_razorlab — RL1.svg Тот же дизайн, что и выше, но svg оптимизирован Razorlab. Параллельные линии были соединены, чтобы уменьшить порезы.

Обратите внимание, что если вы откроете оптимизированный дизайн с помощью Inkscape, похоже, это всего 75% от предполагаемого размера. Это потому, что он был отредактирован в Adobe Illustrator.если ты используйте эти файлы для заказа в Razorlab, рекомендую упомянуть что конструкция состоит из двух частей размером 360×80 мм, поэтому вся конструкция 360х160 мм.

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

Описание Каталожный номер TME Кол-во
Винт с полукруглой головкой M3x6 B3X6 / BN19 для черной отделки
M3X6 / ISO7380-1-A2 для естественной отделки
16
Прокладки M3x8 мм с внутренней резьбой TFF-M3X8 / DR124 8
распорные винты M3x12 мм с внутренним и внешняя резьба B3X12 / BN3318 4
Шайба плоская M3 B3 / BN1414 4

Вы, наверное, сами догадались бы, как собрать лазерную резку акриловый корпус, но ниже — детальное изображение.Прикрепите 8 мм прокладки к задней панели с помощью винтов с полукруглой головкой. Закрепите печатную плату с помощью 12 мм распорные винты из углов. Используйте плоские шайбы между 12 мм. распорный винт и печатная плата. Шайба необходима для обеспечения надлежащего зазора между семисегментными дисплеями и верхней панелью. Закрепите печатную плату из оставшихся 4 отверстий винтами с полукруглой головкой. Прикрепите верх панель с 4 винтами с полукруглой головкой.

Дисплеи на рисунке ниже — это Sharlight CM1-2302SR0b.Они имеют черное лицо и все стороны тоже черные, что делает их очень красивыми для часового проекта. Эти же часы показаны на обороте вверху. картина. Тонированное переднее стекло приятно увеличивает контраст дисплея.

Как использовать

В прошивке реализована система меню, позволяющая выбрать желаемый режим отображения, а также для настройки различных настраиваемых функции. Вы можете перемещаться по системе меню с помощью 5-позиционного переключатель направления на печатной плате или с помощью ИК-пульта дистанционного управления.Ниже Схема структуры меню в прошивке v1.20. Нажмите изображение, чтобы загрузить его в формате PDF.

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

Когда вы успешно запрограммировали часы, пора настроить его. Сначала вы, наверное, захотите научить часы свой пульт контроль. В противном случае вы можете перейти к следующей главе. Используйте 5-ходовой переключатель направления для перехода в меню настройки, а оттуда в удаленное меню.Вы можете использовать приведенную выше диаграмму в качестве руководства. Это лучшее сначала, чтобы проверить ваш пульт, использует ли он кодировку, которую часы поддерживает. Перейдите к дисплею идентификации, на котором отображается ИК-пульт. протокол управления, если он идентифицирован. Нажмите свой пульт дистанционного управления кнопки. В настоящее время поддерживаются следующие кодировки:

  • Протокол SIRC. Используется Sony. В зависимости от версии протокола, на дисплее отображается Sirc12, Sirc15 или Sirc20.Если твой пульт дистанционного управления использует протокол SIRC, убедитесь, что все кнопки вы собираетесь использовать ту же версию протокола SIRC. Например, некоторые пульты дистанционного управления DVD или Bluray могут также иметь кнопки. для управления телевизором, а протокол ТВ обычно 12-битный, в то время как DVD может быть 15-битным или 20-битным. Протокол
  • NEC. Широко используемый протокол, предположительно разработан NEC. На дисплее отображается «nEc».
  • протокол Samsung.Технически очень похож на протокол NEC. На дисплее отображается «SAMSUn».
  • Протокол Мацусита. На дисплее отображается «MAtSUS» .
  • протокол касэйкё. Иногда его называют японским протоколом. На дисплее отображается JAPAn . Протокол
  • RC-5. Разработано Philips. Был довольно популярен среди любители около 20 лет назад. Сегодня пульты с кодировкой RC-5 редкий. На дисплее отображается rc-5
  • протокол JVC.Разработано JVC. Довольно много, но не все, JVC устройства используют этот протокол. На дисплее отображается Jvc . Протокол
  • NEC42. Расширенная 42-битная версия протокола NEC. На дисплее отображается ‘nEc42’

Если вам не повезло, на дисплее отображается «Ошибка», что означает, что код дистанционного управления не распознается. Попробуй найти другого удаленный. Если на дисплее отображается «nonE», возможно, ваш пульт это вовсе не ИК-пульт или, что более вероятно, в нем разряжены батарейки.Попробуйте, если использование свежих батареек поможет. Почти разряженные батареи также могут иногда может быть причиной появления ошибки, если удаленный сигнал слишком слаб, чтобы быть должным образом распознанным.

Когда вы определили пульт, который распознается часы, вы можете научить этому. Перейдите к «LEArn» в удаленном меню. В часы будут отображать восемь названий кнопок одно за другим. ‘ВВЕРХ’, ‘doWn’, ‘LEFt’, ‘riGht’, ‘bUtton’, ‘PoWEr’, ‘toGGLE’ и ‘briGht’.Нажмите нужную кнопку на пульте дистанционного управления, чтобы научить ее. Если ваш пульт здесь по какой-то причине не работает, и вы не можете продолжить, вы можете выйдите из режима обучения, нажав 5-позиционную кнопку направления. Последний три кнопки не обязательны. Вы можете нажать здесь тот же пульт кнопку, которую вы использовали для ‘bUtton’, чтобы пропустить те дополнительные кнопки, которые вы не хочу программировать. Вы также можете нажать 5-стороннюю переключатель, который пропускает все дополнительные кнопки и сохраняет только пять обязательные.

Теперь у вас должен быть рабочий пульт. Если есть проблема, попробуйте изучить ее еще раз. Если это не поможет, вы можете перейти к ‘Shocod’, который будет отображать адрес пульта дистанционного управления и команду для каждой кнопки дистанционного управления. Первые четыре цифры показывают адрес в шестнадцатеричном формате. Последние две цифры показывают команду. Гарантировать, что все кнопки, которые вы собираетесь использовать, передают тот же адрес, что и это то, что ожидают часы.

Использовать интернет-время с сервера NTP

Уже есть три возможных источника времени для часов; то PCF2129 RTC, модуль GPS U-Blox и прием времени от мастера часы через ИК-сообщения. PCF2129 RTC очень точен и достаточно в большинстве случаев.

GPS-модуль U-Blox стоит довольно дорого и во многих случаях немного дороже. перебор. Прием GPS также может быть проблематичным в помещении. Одна из альтернатив — использовать интернет-время с сервера времени NTP.я был подумываю о реализации временного моста NTP-GPS с использованием ESP8266. К счастью, я сначала поискал в Интернете и нашел этот отличный проект fakeGPS. от SnowHead, который делает именно это. Мне пришлось внести некоторые изменения в код. Этот модифицированный код отправляет время как сообщение GPRMC каждую секунду, как в U-Blox GPS модуль. Я также изменил его, чтобы отправить ‘A’ или ‘V’, которые в GPRMC сообщение указывает, есть ли у GPS исправление. Если ESP8266 не был может обновить время с сервера NTP в течение последнего часа, он будет укажите это как «нет исправления».Это мешает часам сохранять возможно неточное время RTC. Рекомендую использовать v1.20 прошивка для часов, так как есть некоторые изменения для улучшения работы с fakeGPS.

См. Страницу github fakeGPS для получения информации о необходимых библиотеках, настройке и т. Д. Я оставил код перехода на летнее время в эскизе. Но в по крайней мере, в Европе вам не нужно вносить какие-либо изменения в код. Это по умолчанию установлено время по Гринвичу, как всегда по GPS.Вам просто нужно установите часовой пояс и летнее время в меню настройки часов. Если в вашей стране разные правила dst, вы можете ввести их в набросок перед составлением.

Я тестировал fakeGPS с NodeMCU и ESP-01. Оба работают нормально. Для подключения к часам вам понадобится 3 провода:

  • ESP GND для синхронизации GND
  • ESP 3v3 в часы + 3v3 (например, из контрольной точки TP2)
  • GPS данные от контакта GPIO2 / U1TXD на ESP до GPS_TX на часах (контрольная точка TP4)

Ток, потребляемый ESP при активной передаче Wi-Fi, может быть бит высокий для регулятора корпуса SOT223.Но на практике кажется работать нормально, так как количество передач по Wi-Fi невелико. Вы также можете используйте отдельный источник питания для модуля ESP и подключите только GND и TX на часы.

Страница создана 25.12.2017
последнее обновление 31.3.2022 [email protected]

kair.us/ проекты / семисегментные настенные часы / версия kello 4

— купить 7-сегментные часы с бесплатной доставкой на AliExpress

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

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

AliExpress никогда не уступит по выбору, качеству и цене. Каждый день вы будете находить новые онлайн-предложения, скидки в магазинах и возможность сэкономить еще больше, собирая купоны. Но вам, возможно, придется действовать быстро, так как эти часы из семи лучших сегментов в кратчайшие сроки станут одними из самых востребованных бестселлеров. Подумайте, как вам будут завидовать друзья, когда вы скажете им, что у вас есть свои 7-сегментные часы на AliExpress.Благодаря самым низким ценам в Интернете, дешевым тарифам на доставку и возможности получения на месте вы можете еще больше сэкономить.

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

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

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

HowTo: Electronics — Создайте семисегментную светодиодную цифру под названием «pxlDigit» из светодиодов WS2812 — Nerdiy.de

Для другого проекта мне срочно понадобилось относительно большое число, чтобы указать продолжительность. Из этого возник этот небольшой «подпроект». Потому что с помощью описанной здесь 3D-печатной рамы и пары светодиодов WS2812 вы можете легко построить семисегментное число (или несколько) и использовать его для создания дисплеев для отображения чисел.

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

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

Как построить такой номер, описано в следующей статье.

Указания по технике безопасности

Я знаю, что следующие подсказки всегда немного раздражают и кажутся ненужными.Но, к сожалению, многие люди, которые знали это «лучше» по неосторожности, потеряли глаза, пальцы или другие предметы или поранились. Для сравнения, потерю данных почти не стоит упоминать, но даже это может сильно раздражать. Поэтому, пожалуйста, уделите пять минут, чтобы прочитать инструкции по безопасности. Даже самый крутой проект не стоит травм или других неприятностей. https://www.nerdiy.de/en/sicherheitshinweise/

Партнерские ссылки / рекламные ссылки

Указанные здесь ссылки на интернет-магазины являются так называемыми партнерскими ссылками.Если вы нажмете на такую ​​партнерскую ссылку и сделаете покупки по этой ссылке, Nerdiy.de получит комиссию от соответствующего интернет-магазина или поставщика. Цена для вас не меняется. Если вы сделаете покупки по этим ссылкам, вы поддержите Nerdiy.de в возможности предлагать другие полезные проекты в будущем. 🙂

Требования

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

Необходимый материал:

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

Необходимые инструменты:

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

Соберите нужные детали

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

  • Рамка, напечатанная на 3D-принтере
  • 7x 2x светодиода из полосы 60LED / м WS2812
  • прибл.3-полюсный кабель длиной 15 см

Другой вид необходимых деталей

Файлы STL для печати на вашем 3D-принтере можно найти в репозитории по следующей ссылке.

Подготовить светодиодные элементы

Чтобы в дальнейшем можно было легко приклеить светодиодные элементы к раме, их следует предварительно подготовить.

Первым делом залуживаем контакты на светодиодной ленте.

Теперь вы должны отрезать шесть отрезков длиной 3 см от трехжильного кабеля.

Затем вы можете зачистить отрезанные куски лески и оставшуюся часть лески примерно на пять мм на концах.

… и залудить припоем.

Подготовленные таким образом, вы должны легко соединить линии с подготовленными светодиодными лентами…

Убедитесь, что вы припаяли линии к концу светодиодной ленты, где стрелка указывает на светодиод.

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

Установить светодиодные элементы в корпус

После того, как вы подготовили светодиодные ленты, пришло время приклеить их к раме, напечатанной на 3D-принтере. В то время (фотографии, показанные здесь, к сожалению, были сделаны некоторое время назад), я не записывал каждый шаг. Но есть подробные записи каждого подключения, которые, надеюсь, позволяют понять действия. 🙂

В качестве «приблизительного ориентира» вы можете использовать эту принципиальную схему в качестве обзора.

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

  • внизу
  • внизу справа
  • вверху справа
  • вверху
  • вверху слева
  • в центре
  • внизу слева

Соединения, отмеченные синим цветом, показаны только для полноты картины. Конечно, они уже доступны. В противном случае «красный» соответствует питанию 5 В, а «черный» — заземлению.

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

Другой вид приклеенных, но еще не припаянных светодиодных лент.

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

В следующих параграфах приведены подробные записи отдельных подключений.

Вид на перекресток, где пересекаются нижний правый, средний и верхний правый сегменты.

Здесь вы можете видеть, что нижний правый сегмент соединен с верхним правым сегментом.

Конечно, «5V» следует подключить к «5V», «GND» и «DO» одной светодиодной ленты с «DI» другой светодиодной ленты для всех подключений.

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

Здесь вы можете видеть, что нижний левый сегмент соединен с верхним левым сегментом.

Вид в правом верхнем углу. Здесь правый верхний сегмент соединен с верхним сегментом.

Вид в правом нижнем углу.Здесь нижний правый сегмент соединен с нижним сегментом.

Вид в левом нижнем углу. Здесь не подключены никакие сегменты.

Но вы можете видеть, как линия питания (по которой позже энергия и данные будут «отправляться» на светодиодные ленты) выводится из рамки.

Вид в правом верхнем углу. Здесь соединяются верхний левый сегмент и верхний сегмент.

Вид среднего сегмента.

Здесь можно увидеть, что верхний левый сегмент соединен со средним сегментом, а средний сегмент, в свою очередь, соединен с нижним левым сегментом.

Установить переадресацию на следующую цифру

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

Припаяйте одиночный провод к выводу «D0» светодиодной ленты в нижнем левом сегменте.

Затем вы можете вывести эту линию через отверстие для линии подачи.

Вставить диффузор

Чтобы свет светодиодов в одном сегменте позже рассеивался немного лучше, и, таким образом, освещение было более равномерным, теперь вам следует вставить в сегмент рассеиватель. Относительно подходит небольшая полоска бумаги. Вы можете вырезать эту полоску самостоятельно. Если у вас есть плоттер для бумаги, вы также можете обрезать его по размеру. Шаблон для этого связан в области списка материалов.

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

Вид на вставленный диффузор сверху.

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

Другой вид вставленных в диффузор бумажных полосок.

Убедитесь, что диффузоры не выступают за рамку, напечатанную на 3D-принтере.

Клей на бумажную лицевую панель

Есть несколько способов прикрепить переднюю панель. Установка лицевой панели, напечатанной на 3D-принтере, описана в следующем абзаце.В этом разделе описывается, как можно наклеить бумажную обложку, которую лучше всего вырезать с помощью плоттера, в качестве передней обложки. Для этого нанесите лицевые панели на самоклеящуюся «этикеточную бумагу». Таким образом, вы можете легко снять его и приклеить к раме, напечатанной на 3D-принтере.

После того, как вы напечатали лицевую панель, вы можете осторожно удалить ее с бумажной подложки…

… и приклейте его к раме, напечатанной на 3D-принтере.

Затем следует нанести целое число на лицевую сторону и дольше прижать лицевую панель с помощью тяжелого предмета.

Наклеенная передняя панель должна тогда выглядеть примерно так. 🙂

Прикрепите лицевую панель, напечатанную на 3D-принтере

Распечатать лицевую панель на 3D-принтере лучше всего из прозрачной или белой нити. (Конечно, свет должен проходить сквозь него. 🙂) На показанных рисунках я использовал прозрачную нить, чтобы сделать панели для pxlBlck_digitClock . Затем они прикрепляются к рамке цифры горячим клеем.

Эти изображения являются отрывком из образов сборки pxlBlck_digitClock.

Здесь вы можете увидеть четыре напечатанные на 3D-принтере передние панели.

Чтобы связать это с рамкой соответствующей цифры, достаточно…

… нанести на одну каплю горячего клея…

… и с другой стороны.

Затем можно быстро разместить лицевую панель на рамке соответствующего номера.

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

Вид цифр, включая передние панели, напечатанные на 3D-принтере, во время работы.

Код для управления с помощью Arduino

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

Сюда входит первый вариант использования «pxlDigit’s». Связанный код Arduino, надеюсь, поможет с первой работой по программированию.Скоро я напишу отдельную статью о том, как программировать pxlDigit’s. 🙂

Надеюсь, все заработало, как описано. Если нет или у вас есть другие вопросы или предложения, дайте мне знать в комментариях. Также всегда приветствуются идеи для новых проектов. 🙂

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

Нравится:

Hollweg / 7-сегментные часы: проект 7-сегментных часов (аппаратное и программное обеспечение) с использованием микроконтроллера ATMEGA328 с Atmel Studio IDE

Назначение

Это проект часов 7 сегментов, разработанный с нуля, с использованием авторского аппаратного и программного обеспечения . Часы показывают час, минуты и секунды с помощью микроконтроллера ATMEGA328P от ATMEL. Часы с 7 сегментами были разработаны как личный проект и построены на универсальной паяльной плате , согласно схемам папок Proteus внутри этого проекта.В этом README я объясню, как разработать свои собственные часы с 7 сегментами. 🙂

Вот изображение окончательного результата проекта:

Утилита

Код был разработан специально для микроконтроллера ATMEGA328P с использованием ATMEL Studio IDE . Однако, если были внесены некоторые изменения, в основном в инициализацию, конфигурацию и некоторые регистры, проект может быть адаптирован для других семейств микроконтроллеров, от других производителей и IDE.Идея создания 7-сегментного тактового сигнала такая же, но некоторые вещи изменятся, например, регистры таймера, конфигурации ввода-вывода и АЦП.

Как это работает?

Часы начинают отсчитывать время с 00:00, в момент включения питания. Для установки времени до желаемых часов и минут вы должны использовать кнопки схемы (в правой части микроконтроллера). У нас есть две кнопки: одна для увеличения часов, а другая для увеличения минут.

Алгоритм этого проекта отмечает часы, минуты и секунды, но он был построен только с 4 дисплеями, отмечающими часы и минуты.Однако, если вы хотите построить полные часы (также используя маркеры секунд), необходимо только добавить два 7-сегментных дисплея и подключить их к 2 неиспользуемым портам микроконтроллера.

Код был разработан с полной тактовой логикой, но когда я записываю его на микроконтроллер, я комментирую один из маркеров (секунды, например — функция «CalculateSeconds»), и он отмечает Часы + Минуты. С другой стороны, если я хочу увидеть минуты + секунды, вам нужно прокомментировать функцию «CalculateHours», и она отобразит минуты + секунды.

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

Однако, если вам нужно сохранить последнее отмеченное время , даже если цепь обесточена, вы можете использовать оборудование RTC и только читать его временные переменные, чем отображать его в массиве 7 сегментов. Другим способом, согласно тому, что я сказал во время проекта Binary Clock (здесь, в github.com / hollwe / binary-clock), я думаю, что такого рода «апгрейд» не интересен для такого рода проектов, потому что он заставляет вас упускать из виду суть создания настоящих часов, поскольку мышление в логике часов, счетчиках, таймерах, до оптимизации и внедрения программного обеспечения.

— Файл .c содержит код, разработанный на C.
— Файл .asm содержит код, переведенный в сборку
— Файл .hex — это готовый к записи файл, содержащий код на шестнадцатеричном языке.
— Остальные файлы представляют собой файлы конфигурации, созданные компилятором.
— В папке / Proteus находится схема оборудования проекта

Ниже приведено изображение аппаратного обеспечения проекта, описанного в Proteus (с использованием четырех 7-сегментного дисплея):

Вы можете получить доступ к файлам оборудования в папке проекта / Proteus.

Использование четырех 7-сегментных дисплеев

На окончательном изображении проекта видно, что я использовал 7-сегментный дисплейный массив (модель CAI5461AH), уже мультиплексированный и более простой в использовании.

Однако вы можете разработать тот же проект , используя четыре 7-сегментных дисплея.
Перед использованием 7-сегментного массива я протестировал схему и код на макете с четырьмя 7-сегментными дисплеями.
Единственное отличие состоит в том, что контакты необходимо мультиплексировать вручную и подключить резистор между портом микроконтроллера и контактами управления дисплеем (есть 2 контакта управления (общие) для дисплея).
С другой стороны, при использовании 7-сегментной матрицы дисплея нет необходимости подключать резисторы дисплея, поскольку они учтены в его внутренней схеме.

Ниже приведено изображение одного вывода схемы 7-сегментного дисплея:

Здесь вы можете увидеть четыре 7-сегментного дисплея, мультиплексированный .gif:

На изображении вы можете видеть, что для включения каждого вывода управления дисплеем использовались транзисторы, но это не обязательно.
Я разработал систему управления переключателем с помощью программного обеспечения. Каждый раз, когда включается дисплей (5 В — общий катод), микроконтроллер отправляет другим контактам управления дисплеем 0 В, гарантируя, что одновременно будет активен только один дисплей.
Этот управляющий сигнал активируется на короткий период времени, очень быстро, затем он включает другой, разделяя время шины между всеми 4 цифрами. Итак, поскольку сигнал меняется много раз в секунду, у наших глаз создается впечатление, что все 4 цифры включены одновременно, что является подделкой.

Вот изображение схемы с использованием четырех 7-сегментных дисплеев (код, записанный для массива или отдельных дисплеев, точно такой же):

Нет необходимости создавать собственное оборудование, чтобы увидеть, как проект работает. Если вы хотите построить его на плате Arduino UNO (или другой плате Arduino, которая использует ATMEGA328P) , вам необходимо записать код на ATMEGA328P через ATMEL Studio (вы можете увидеть эту ссылку, чтобы настроить Atmel Studio для записи кода для Arduino ) и подключите дисплей и кнопки непосредственно к контактам платы ввода-вывода Arduino.

Ниже я описал соединения оборудования, чтобы упростить сборку проекта. Взглянуть. 🙂

7-сегментные светодиоды:

Сегмент a — ATMEGA328P PD2 — Цифровой вывод Arduino Uno 2
Сегмент b — ATMEGA328P PD3 — Цифровой вывод Arduino Uno 3
Сегмент c — ATMEGA328P PD4 — Цифровой вывод Arduino Uno 4
Сегмент d — ATMEGA328P PD5 — Цифровой вывод Arduino Uno 5 e — ATMEGA328P PD6 — Цифровой вывод Arduino Uno 6
Сегмент f — ATMEGA328P PD7 — Цифровой вывод Arduino Uno 7
Сегмент g — ATMEGA328P PB0 — Цифровой вывод Arduino Uno 8
Управление отображением минут справа — ATMEGA328P PB2 — Цифровой вывод Arduino Uno 10
Управление левым дисплеем — ATMEGA328P PB3 — Цифровой вывод Arduino Uno 11
Управление правым дисплеем в часах — ATMEGA328P PB4 — Цифровой вывод Arduino Uno 12
Управление левым дисплеем в часах — ATMEGA328P PB5 — Цифровой вывод Arduino Uno 13

Кнопки:

Сброс — ATMEGA328P PC6 — Вывод сброса Arduino UNO
Приращение в минутах — ATMEGA328P PC1 — Аналоговый вход 1 Arduino UNO (будьте осторожны: входной контакт 1, а не входной контакт 0)
Приращение часов — ATMEGA328P PC2 — Аналоговый вход Arduino UNO 2

Обс.1 : Если вы используете четыре 7-сегментных дисплея, все 7-сегментные светодиоды соединены вместе.
Obs.2 : Если вы используете четыре 7-сегментных дисплея, каждому дисплею нужен собственный входной резистор (

1 кОм).
Кроме того, контрольные штырьки должны быть подключены к двум его контактам COM.
Obs.3 : Будьте осторожны с типом 7-сегментного дисплея, который вы будете использовать.
Существует два разных типа: общий анод и общий катод. Контрольный вывод
Common Cathode включен с использованием логического сигнала HIGH (5V).Контрольный вывод
Common Anode включен, используя логический сигнал LOW (0 В).

Что было использовано в проекте?

Спецификация материалов :

  1. 1 x микроконтроллер ATMEGA328P
  2. 1 x 28-контактный разъем
  3. 3 x кнопка
  4. 3 резистора 1 кОм (+4 при использовании четырех 7-сегментных дисплеев)
  5. 1 x 16 МГц, кварцевый
  6. Конденсаторы 2 x 22 пФ
  7. Конденсаторы 1 x 100 нФ
  8. 1 x 7-сегментный дисплейный массив
  9. 1 x гнездовой разъем P4
  10. Универсальная паяльная плата 1 x 10×5 см

Напряжение цепи

Разработанная схема находится под напряжением 5В.
Вы можете адаптировать простой аккумулятор 9В + регулятор напряжения 7805 или подключить его непосредственно к зарядному устройству смартфона через разъем P4.

Как это сделать?

Шаг 1: Возьмите источник питания 5 В и обрежьте USB-кабель (при условии, что у него нет разъема P4), оставив доступными только эти 2 контакта: VCC и GND (единственные, которые вам понадобятся).
Шаг 2: Подключите VCC и GND непосредственно к разъему P4 (соблюдайте полярность).

Ваш блок питания готов! 🙂

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

Наконец, есть изображение схемы, работающей очень хорошо:

Авторские права

Проект без проблем воспроизводится.
Тем не менее, я прошу вас только сохранить кредиты авторов. 🙂

Hollweg

Как использовать программное обеспечение logisim для создания ваших первых цифровых часов — Sweetcode.io

Logisim — это бесплатное программное обеспечение, используемое для моделирования цифровых схем. Его разработал Карл Берч из Университета Хендрикса (с 2001 по 2011 год). Он был создан с использованием JAVA и библиотеки графического пользовательского интерфейса Swing.Программное обеспечение Logisim можно найти и бесплатно загрузить с помощью простого поиска в Google.

После загрузки и установки программного обеспечения Logisim вам необходимо сначала ознакомиться с его графическим пользовательским интерфейсом, прежде чем вы сможете использовать его без каких-либо затруднений. В этой статье я дам очень краткий обзор графического пользовательского интерфейса программного обеспечения Logisim. Однако я бы посоветовал вам прочитать документацию к программному обеспечению Logisim (которую можно найти здесь: http: // www.cburch.com/logisim/docs.html), чтобы дать вам больше знаний о том, как ориентироваться в программном обеспечении.

Пользовательский интерфейс программы Logisim

На рис. 1 ниже показаны различные части типичного программного интерфейса Logisim.

— Строка меню: содержит различные инструкции, которые могут быть выполнены в программном обеспечении Logisim.

— Панель инструментов: содержит ярлыки для наиболее часто используемых команд в программном обеспечении Logisim.В таблице на рис. 2 ниже показаны различные команды на панели инструментов и их функции.

— Панель проводника: содержит список компонентов цифровых схем (таких как проводка, вентили, мультиплексоры и т. Д.), Которые доступны для проектирования цифровых схем в Logisim.

— Таблица атрибутов: дает подробные атрибуты компонентов цифрового дизайна (например, логические элементы AND, OR и XOR). Это также позволяет редактировать атрибуты этих компонентов цифрового дизайна.

— Холст: область, в которой создаются и проектируются цифровые схемы. Canvas позволяет одновременно проектировать и моделировать цифровые схемы.

В этой статье я дам краткий обзор только тех компонентов, которые я бы использовал для построения схем цифровых часов. Тем не менее, я бы посоветовал вам глубоко оценить и понять различные компоненты цифровых схем и их функции, чтобы вы прочитали о них, используя следующую ссылку: https: // www.studytonight.com/computer-architecture/basics-of-digital-components

На рис. 3 ниже показаны различные компоненты цифровых схем и их функции.

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

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

Семисегментная схема отображения состоит из семи различных подсхем.Каждая подсхема управляет сегментом семисегментного дисплея, и каждый из этих сегментов обозначается буквой алфавита (от a до f соответственно), как показано на рисунке 4 ниже.

Основная идея схемы семисегментного дисплея состоит в том, что сегмент загорается, если он составляет часть представления числа, которое семисегментный дисплей пытается отобразить. Например, как показано на рис. 5, если число, которое пытается отобразить семисегментный дисплей, равно нулю, то сегменты a, b, c, d, e и f должны загореться, а сегмент g не должен .

Схема решает, должен ли сегмент на семисегментном дисплее загореться или нет, проверяя значение входного бита этого сегмента. Если значение входного бита сегмента равно 1, этот сегмент подсвечивается схемой. Однако, если значение входного бита сегмента равно 0, этот сегмент не подсвечивается схемой.

Семисегментная схема дисплея, разработанная для этой статьи, работает с четырехбитным входным сигналом. Из-за этого любое число, которое должно отображаться на семисегментном дисплее, сначала выражается в виде четырехбитных двоичных цифр, а затем подсвечиваются сегменты дисплея, связанные с этим числом.Например, до того, как число 1 будет представлено в цифровой схеме, оно сначала будет представлено в его четырехбитовой двоичной форме (то есть 0001), а затем сегменты на дисплее, которые связаны с числом 1, подсвечиваются, как показано на Рис.6 ниже:

Семисегментную схему отображения можно спроектировать путем объединения компонентов цифровой схемы в области холста Logisim, как показано ниже на рис. 7:

Проектирование схемы цифровых часов

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

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

На рис. 8 и первый, и второй семисегментные дисплеи представляют собой минуты цифровых часов.

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

Следующее, что нужно сделать, это убедиться, что счетчики не превышают цифру 9. Это связано с тем, что семисегментные дисплеи могут отображать только числа от 0 до 9.

Мы можем гарантировать, что счетчики не превышают число 9, используя логический элемент И для отслеживания значения чисел, которые в настоящее время отображаются на счетчике. Логический элемент И предназначен для немедленного сброса числа, отображаемого на семисегментном дисплее, на ноль, если число, отображаемое на счетчике, становится больше 9.

Последним шагом в разработке схемы цифровых часов является подключение к схеме двух логических элементов И, двух сплиттеров, двух счетчиков и часов. Целью часов в схеме является выпуск двоичных входных сигналов каждую секунду. Назначение счетчиков — отслеживать входные сигналы, выдаваемые часами. Назначение разветвителей — разделить входные сигналы, выдаваемые часами, на количество двоичных разрядов, необходимых схеме для эффективного функционирования.Назначение первого логического элемента И — обеспечить отправку входного сигнала на первую семисегментную схему отображения каждые 60 секунд в течение каждых 9 минут. Наконец, цель последнего логического элемента И — обеспечить отправку входного сигнала на вторую схему семисегментного дисплея каждые 10 минут. Если вы все сделали правильно, ваша схема не должна иметь проблем с отображением от 0 до 59 минут. Примените ту же логику, описанную выше, для подключения еще одного семисегментного дисплея к цепи, чтобы представить часовой дисплей цифровых часов.

Вся схема цифровых часов показана на Рис.10 ниже:

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

Заключение:

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

Нравится:

7-сегментный декодер дисплея — онлайн-симулятор / калькулятор / генератор

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

7-сегментный дисплей — dCode

Тег (и): Электроника, Замена символов, Кодировка символов

dCode является бесплатным, а его инструменты являются ценным подспорьем в играх, математике, геокешинге, головоломках и задачах, которые нужно решать каждый день!
Предложение? обратная связь? Жук ? идея ? Запись в dCode !

7-сегментный декодер

7-сегментный кодировщик

Ответы на вопросы (FAQ)

Как работает 7-сегментный дисплей?

В основном, дисплей состоит из семи сегментов, обозначаемых буквой (от a до g), организованных следующим образом: каждый сегмент обычно связан с ЖК-экраном или светодиодом и, таким образом, может быть активирован / включен 1 или выключен 0.Всего имеется 128 возможных комбинаций отображения, хотя чаще всего используются комбинации из 10 цифр (от 0 до 9).

Как зашифровать с помощью 7-сегментного шифра?

Комбинации сегментов могут представлять символы. Комбинация обычно обозначается серией от 1 до 7 букв (от a до g), соответствующей активированным сегментам.

Их также можно идентифицировать с помощью двоичной строки 1 = активен, 0 = неактивен, начиная с конца gfedcba.Таким образом, a равно 0000001, а g равно 1000000.

Пример: имеет все активные сегменты с кодом abcdefg или 1111111

Пример: имеет 4 активных нижних сегмента с кодом ‘c, d, e, g’ или 1011100

7-сегментные дисплеи могут быть с общим катодом (CC) или общим анодом (CA), в этом втором случае 0 и 1 переключаются.

Как расшифровать 7-сегментный шифр?

Связывание кода abcdefg с дисплеем состоит из подсветки / активации соответствующих сегментов.

Пример: abcdefg освещает все сегменты и отображает

Пример: bcdeg подсвечивает сегменты b, c, d, e, g и отображает

Что такое обычный анодный или обычный катодный дисплей?

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

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

Как распознать 7-сегментный зашифрованный текст?

Код состоит только из букв a, b, c, d, e, f, g группами от 1 до 7 букв без повторения.

Для двоичного варианта коды обычно состоят из 7 битов от 0000000 до 1111111.

Наличие калькулятора, часов или цифровых часов или символов 7SEG являются подсказками.

Какие варианты 7-сегментного дисплея?

Существует также 9 сегментных дисплеев (с дополнительными 2 сегментами по диагонали), 14 сегментов (с 2 диагоналями и центральной вертикальной полосой) или 16 сегментов (идентично 14 сегментам, но с разрезом верхнего и нижнего сегментов пополам).

Код Beghilos использует 7 сегментов с обратным чтением (в обратном направлении).

Когда были изобретены 7-сегментные дисплеи?

Первые патенты датируются началом 20-го века (1903, 1908, 1910), но появление дисплеев произошло в 1970-х годах.

Задайте новый вопрос

Исходный код

dCode сохраняет право собственности на исходный код онлайн-инструмента «7-сегментный дисплей». За исключением явной лицензии с открытым исходным кодом (обозначенной CC / Creative Commons / бесплатно), любой алгоритм, апплет или фрагмент «7-сегментного отображения» (конвертер, решатель, шифрование / дешифрование, кодирование / декодирование, шифрование / дешифрование, переводчик) или любой другой » Функция 7-сегментного дисплея (вычисление, преобразование, решение, дешифрование / шифрование, дешифрование / шифрование, декодирование / кодирование, перевод), написанная на любом информационном языке (Python, Java, PHP, C #, Javascript, Matlab и т. Д.)) и никакая загрузка данных, скрипт, копипаст или доступ к API для «7-сегментного дисплея» не будут бесплатными, то же самое для автономного использования на ПК, планшете, iPhone или Android! dCode распространяется бесплатно и онлайн.

Нужна помощь?

Пожалуйста, посетите наше сообщество dCode Discord для получения помощи!
NB: для зашифрованных сообщений проверьте наш автоматический идентификатор шифра!


Источник: m-gen.ru