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

- Микроконтроллер (например, PIC16F627A)
- Светодиоды (182 шт для полноценных часов)
- Резисторы для ограничения тока светодиодов
- Кварцевый резонатор на 32768 Гц
- Транзисторы для управления светодиодами
- Кнопки для настройки времени
- Печатная плата
- Блок питания 5В
Точный перечень компонентов зависит от конкретной схемы часов. Для начала рекомендуется собрать упрощенный вариант на макетной плате для отработки алгоритма работы.
Принцип работы схемы часов на светодиодах
Принцип работы электронных часов на светодиодах заключается в следующем:
- Микроконтроллер генерирует импульсы с частотой 1 Гц на основе кварцевого резонатора
- Программа в микроконтроллере ведет отсчет секунд, минут и часов
- С помощью динамической индикации микроконтроллер управляет свечением светодиодов, отображающих текущее время
- Для экономии линий ввода-вывода используется метод Чарлиплексинга для управления большим количеством светодиодов
- Кнопки позволяют настраивать текущее время
Важным элементом является использование прерываний в программе микроконтроллера для точного отсчета времени и мультиплексного управления светодиодами.

Метод Чарлиплексинга для управления светодиодами
Чарлиплексинг — это метод управления большим количеством светодиодов с помощью небольшого числа линий ввода-вывода микроконтроллера. Принцип работы заключается в следующем:
- Светодиоды соединяются в матрицу между всеми парами линий ввода-вывода
- Для включения конкретного светодиода одна линия устанавливается как выход высокого уровня, а вторая — как выход низкого уровня
- Остальные линии переводятся в высокоимпедансное состояние
- Быстрое переключение между светодиодами создает эффект одновременного свечения
Благодаря Чарлиплексингу 14 линий ввода-вывода позволяют управлять 182 светодиодами, что достаточно для отображения времени в часах, минутах и секундах.
Программирование микроконтроллера для часов
Программа для микроконтроллера в электронных часах на светодиодах должна выполнять следующие основные функции:
- Инициализация портов ввода-вывода и таймеров
- Отсчет времени с использованием прерываний от таймера
- Динамическая индикация — последовательное включение светодиодов
- Обработка нажатий кнопок для настройки времени
- Управление яркостью свечения светодиодов
- Формирование сигналов будильника (при наличии этой функции)
Программирование выполняется на языке ассемблера или Си с использованием среды разработки MPLAB от Microchip. Важно оптимизировать код для обеспечения точного хода часов.

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

Схема автомобильных часов на светодиодах » Схемы электронных устройств
Схема автомобильных часов на светодиодах | |
Многие владельцы легковых автомобилей хо гели-бы иметь в салоне машины точные и экономичные электронные часы-будильник с светящимися цифрами. Промышленность к сожалению такие часы не выпускает. Все возможные импортные электронные часы для автомобиля всегда сделаны на основе жидких кристаллов, которые очень плохо видны ночью (свет от встроенной подсветки преломляется индикатором и цифры можно увидеть только по определенным углом зрения) и к тому-же, жидкокристаллический индикатор замерзает зимой и некоторое время не функционирует, или портится летом от прямых солнечных лучей.![]() Принципиальная схема часов показана на рисунке 1. В основе комплект микросхем К176 — К176ИЕ18 (задающий генератор), К176ИЕ13 (универсальный счетчик), К176ИД2 (дешифратор). Микросхема К176ИЕ18 содержит кварцевый генератор, предназначенный для работы с резонатором на 32768 гц, и два делителя частоты с коэффициентами деления 32768 и 60. Сопротивление резистора R1 может быть в пределах 10-20 Мом. Конденсатор С3 служит для точной подстройки частоты кварцевого генератора, а следовательно для точной подстройки хода часов. На выходах Т1-Т4 микросхемы формируются импульсные последовательности с частотой 128 гц и скважностью 4. Эти последовательности сдвинуты по фазе между собой на четверть периода, таким образом, что в каждый момент времени импульс присутствует только на одном из этих выводов. Они используются как управляющие для переключения разрядов индикатора для осуществления динамический индикации, и как управляющие для переключения выходов четырех счетчиков, расположенных в микросхеме К176ИЕ13, так, чтобы при включении определенного разряда к выходам микросхемы подключался соответствующий внутренний счетчик. Микросхема К176ИЕ18 имеет формирователь звукового сигнала, который используется в режиме будильника. При поступлении на вход HS импульса положительной полярности с такого-же выхода микросхемы К176ИЕ13 на выводе 7 DD1 появляются положительные импульсы частотой 2048 гц. Этот выход сделай с открытым стоком и позволяет непосредственно подключать различные звукоизлучатели с сопротивлением не менее 50 ом. Микросхема DD2 содержит счетчики минут и часов, выходы которых через коммутаторы подключены к общим выходам (A-D) микросхемы, коммутаторы управляются сигналами динамической индикации. Еще микросхема содержит регистр памяти будильника и цифровой компаратор для сравнения содержимого регистра с текущим состоянием счетчиков. На выходе Q1 после каждого переключения счетчиков формируется импульс, включающий на запись информации входные триггеры дешифратора DD3. Светодиодные семисегментные индикаторы переключаются при помощи транзисторных ключей VT1-VT4, на базы которых поступают управляющие импульсы с выходов Т1-Т4 DD1. Во время выключенного зажигания соединенные вместе эмиттеры этих транзисторов не соединяются с общим проводом и индикаторы не светятся. При включении зажигания напряжение питания поступает на схему через более низкое сопротивление R18 и на базу транзистора VT5, который открывается и подключает эмиттеры VT1-VT4 к общему проводу. Диод VD6 служит для развязки. При включении питания (при подключении часов к аккумулятору автомобиля) счетчики часов, минут и регистр памяти будильника автоматически переводятся в нулевое состояние. Для установки счетчика минут нажимают кнопку SB2, при этом показания разрядов минут начинают изменяться в сторону увеличения с частотой 2 гц от «00» до «59» по кольцу. В момент перехода минут от «59» на «00» состояние счетчика часов увеличивается на единицу. Если нажать на кнопку SB3 то с такой-же частотой начнут увеличиваться показания часов от «00» до «23» по кольцу. Микросхема К176ИД2 содержит дешифратор, преобразующий сигналы двоичного кода в сигналы для управления семисегментным светодиодным индикатором. На входах микросхемы включены триггеры, которые могут запоминать коды, поступившие на вход и сохранять их до тех пор, пока на вход S не поступит положительный импульс, при этом старая информация о кодах сотрется, и запишется новая, которая будет присутствовать на входах в момент спада этого импульса. Ток короткого замыкания выходов микросхемы около 10 мА, что позволяет подключать светодиодные индикаторы без использования транзисторных ключей, непосредственно через резисторы R10-R16. Часы собраны на двух печатных платах, чертежи которых показаны на рисунках. | |
Категория: Часы В настоящее время большинство электронных часов, выпускаемых промышленностью, работают либо на жидкокристаллическом дисплее, либо на злектролюминесцентном. Часы с жидкокристаллическим дисплеем, обычно работают от автономного источника потребляя минимальный ток, но их показания в темноте не видны. Различные, широко рекламируемые, жидкокристаллические табло с подсветкой не всегда оправдывают ожидания. Свечение индикатора получается неравномерным, а показания напоминают тени в свете карманного фонарика. К тому же, жидкокристаллический дисплей боится низкой и высокой температуры, поэтому дисплеи широко распространенных автомобильных часов китайского производства летом в жару темнеют, а зимой на морозе светлеют. Часы, преимущественно, российского производства (или белорусского), работающие на вакуумный электролюминесцентный индикатор, требуют наличие источника повышенного напряжения для питания анодов индикаторов и поэтому, малопригодны для работы в качестве дополнительного автомобильного оборудования. К тому же стеклянный и достаточно тяжелый индикатор часто выходит из строя от вибрации, связанной с движением автомобиля. Таким образом, наилучшим вариантом будут часы с ярким светодиодным дисплеем, но промышленностью, почему-то такие часы не производятся, а имеющиеся в продаже различные радиобудильники китайского или индийского производства, хотя и имеют крупный светодиодный дисплей, но не только питаются от сети, но и используют частоту сети переменного тока как опорную, что так же их делает малопригодными для питания от автомобипьной бортсети. По-прежнему, как много лет назад, лучшим оказывается самодельный вариант часов на светодиодных индикаторах с кварцевой стабилизацией хода. Во-первых, динамическая индикация не позволяет получить высокую яркость свечения индикаторов, Во-вторых сложно ввести регулировку яркости индикаторов. Может показаться более предпочтительным вариант на микросхемах К176ИЕЗ и К176ИЕ4, но эти микросхемы имеют относительно слабые выходы, и для получения высокой яркости свечения индикаторов требуется на их выходах устанавливать транзисторные ключи, что не всегда целесообразно. Принимая во внимание все изложенное, были разработаны цифровые часы со статической индикацией, схема которых показана на рисунке 1. В качестве устройств, управляющих индикаторами, взяты дешифраторы К176ИД2, их выходы достаточно мощны и имеют ограничители тока, работая в статическом режиме они способны обеспечить достаточно высокую яркость свечения индикаторов (субъективно, на порядок выше, чем микросхемы К176ИЕЗ и К174ИЕ4), а используя их вход гашения можно организовать импульсное питание индикаторов, когда необходимо понизить их яркость (например, ночью). |
Поделитесь с друзьями ссылкой на схему: |
Сборка аналоговых светодиодных часов — Часть 1 Линии ввода-вывода. Я сразу подумал, что хорошим применением этой техники было бы изготовление часов. Он будет иметь три круга по 60 светодиодов в каждом. Внешний круг светодиодов будет обозначать секунды, средний круг — минуты, а внутренний круг — часы. Хотя для отображения часов потребуется всего 12 светодиодов, я подумал, что было бы более симметрично, если бы я использовал 60 и увеличивал их каждые 12 минут. Я предполагал использовать как светодиоды T1 (3 мм), так и T1-3/4 (5 мм); светодиоды большего размера будут использоваться в каждой пятой позиции на каждой часовой отметке.
Часы никогда не были чем-то большим, чем идея в глубине моего сознания, пока я не решил сделать их для старшего проекта, чтобы получить степень в области электротехники.
Решения, Решения
Я хотел использовать микроконтроллер с наименьшим возможным количеством выводов. Я решил, что смогу управлять светодиодами с 14 контактами ввода-вывода, используя Charlieplexing (подробнее об этом позже). Еще два контакта ввода-вывода будут использоваться для чтения двух кнопок, используемых для установки часов.
Я уже выбрал микроконтроллер, который хотел использовать. Я много лет экспериментировал с продуктами Microchip, поэтому выбрал PIC16F627A. Это был 18-контактный контроллер с 16 линиями ввода-вывода — именно столько линий ввода-вывода, сколько мне было нужно.
Однако мой профессор настоял, чтобы я добавил функцию будильника. Теперь мне нужно было добавить зуммер для будильника и, возможно, еще пару кнопок для его установки. Кроме того, необходим еще один светодиод для индикации включения сигнализации.
Я решил включить еще один светодиод для индикатора PM, чтобы будильник, установленный, скажем, на 6:00, не звучал в 18:00. Затем я подумал, что буду запускать микроконтроллер с его внутренним генератором, который, вероятно, не был таким уж стабильным; часы не будут показывать точное время. Гораздо точнее было бы контролировать 60 Гц от электросети для временной базы (см. врезку). Сколько еще контактов ввода-вывода теперь потребуется?
Хотя у Microchip есть множество микроконтроллеров с более чем достаточным количеством контактов ввода/вывода для этого проекта, я действительно не хотел увеличивать количество контактов контроллера! Действительно ли можно было управлять 182 светодиодами и зуммером, а также контролировать четыре кнопки и частоту сети всего с 16 контактами ввода-вывода? Или моя гордость навлекла на меня неприятности (почему я не мог просто добавить несколько булавок)?
Зуммеру определенно нужна отдельная выделенная линия ввода/вывода. Для светодиодов потребуется 14 контактов ввода/вывода. Это оставило бы только один контакт для чтения кнопок и контроля частоты линии.
Мне пришла в голову пара идей. У меня было смутное представление о том, что я могу подключить кнопки и сигнал 60 Гц через сеть резисторов к контакту ввода-вывода. Аналоговый вход для обнаружения изменений напряжения может использоваться для интерпретации нажатой в данный момент комбинации кнопок и в то же время контролировать линию 60 Гц. Другая мысль заключалась в том, чтобы использовать четыре контакта ввода-вывода светодиодов для стробирования кнопок и, используя диоды для изоляции, соединить кнопки и 60 Гц вместе с выводом ввода-вывода.
Беглый взгляд на техническое описание PIC16F627A показал, что у него есть все необходимые функции для запуска часов. У него было 16 линий ввода-вывода с возможностью сильного тока для прямого управления светодиодами, внутренний генератор и возможность аналогового ввода. Если 1Кбайт памяти программ было недостаточно, можно было использовать либо PIC16F628A, либо PIC16F648A, которые имеют 2К или 4Кбайт памяти программ соответственно. В остальном они идентичны PIC16F627A.
Управление 182 светодиодами всего с 14 контактами ввода-вывода
Дополнительный привод светодиодов, также известный как Charlieplexing, позволяет управлять большим количеством светодиодов с относительно небольшим количеством контактов ввода-вывода, как упоминалось ранее. Charlieplexing назван в честь Чарли Аллена из Maxim Integrated.
Он использовал эту технику для создания микросхем драйверов светодиодов для Maxim в 1990-х годах ( www.maximintegrated.com/en/app-notes/index.mvp/id/1880 ). Идея Чарлиплексирования проста: при каждой возможной комбинации двух портов ввода-вывода подключите между ними два светодиода, причем два светодиода будут параллельны и направлены в противоположные стороны.
Другой способ взглянуть на Чарлиплексирование — рассмотреть стандартную матрицу 4×4 светодиодов ( Рисунок 1 ).
РИСУНОК 1. Стандартная светодиодная матрица 4×4.
Имеется четыре строки и четыре столбца, для управления 16 светодиодами требуется восемь линий ввода-вывода. Вы заметите, что у каждого столбца есть токоограничивающий резистор. Чтобы зажечь светодиод, вы должны подать + 5 В на столбец и заземлить на ряд. На этом перекрестке загорится светодиод. Например, чтобы зажечь D7, вы должны подать + 5 В на столбец 3 (показан красным) и подать землю на ряд 2 (показан зеленым). В результате загорается D7.
Теперь предположим, что вы удалили диагональные светодиоды и на этих пересечениях соединили строки со столбцами. Теперь строки больше не нужны и их можно удалить. В результате 12 светодиодов подключены всего к четырем линиям ввода-вывода (, рис. 2, ). Это Чарлиплексинг.
Чтобы зажечь светодиод, вы должны подать +5 В на столбец, как и раньше, но заземление будет подаваться на другой столбец. Например, чтобы зажечь D7, вы должны подать +5 В на столбец 3 и землю на столбец 2. В результате загорится только D7. В этой конфигурации ток протекает через два резистора: R3 и R2. Светодиод будет иметь напряжение от 2 В до 2,4 В, в зависимости от светодиода и его характеристик. Следовательно, на резисторах R2 и R3 будет падение напряжения от 1,3 до 1,5 В.
Несмотря на то, что к D10 подключены питание и заземление, он имеет обратное смещение и не загорается. Имеются дополнительные пути тока прямого смещения; например, через D3 и D5. Однако на любом таком пути есть как минимум два светодиода. Поскольку D7 выдерживает падение не более 2,4 В, ни один другой светодиод в матрице не будет иметь напряжения более 1,2 В. Этого напряжения недостаточно для пробоя PN-перехода; следовательно, ток не будет течь, и никакие другие светодиоды не загорятся.
Важно, чтобы все остальные столбцы были плавающими; то есть они не подключены к +5В или земле. Это достигается путем перевода этих линий ввода-вывода микроконтроллера в их состояние ввода, что создает условия с высоким импедансом, чтобы они не потребляли и не получали никакого тока.
Как при заданном количестве линий ввода-вывода (N) рассчитать количество управляемых светодиодов? Рисунок 2 дает визуальное представление ответа.
РИСУНОК 2. Четырёхстрочная матрица Чарлиплекса.
Количество светодиодов, которые можно сложить по Чарли, равно N (количество строк) умножить на N (количество столбцов) минус N (количество удаленных диагональных светодиодов). В этом примере количество светодиодов, которыми могут управлять четыре контакта ввода-вывода, можно рассчитать следующим образом:
светодиода = ( N•N ) — N = (4•4) — 4 = 12 = ( N•N ) — N = (14•14) — 14 = 182
Именно столько светодиодов нам нужно для светодиодных часов!
В матрице Charlieplex одновременно может гореть только один светодиод. Чтобы создать иллюзию одновременного включения до пяти светодиодов, светодиоды загораются по одному в быстрой последовательности — достаточно быстро, чтобы человеческий глаз не мог различить мерцание. Я решил использовать светодиоды высокой интенсивности, так как каждый из них будет гореть примерно 20% времени.
Я решил построить меньшую схему из 12 светодиодов на макетной плате, чтобы протестировать концепцию и начать разработку программного обеспечения. Однако самой большой проблемой было выяснить, как считывать несколько кнопок и сигнал 60 Гц, используя только один контакт ввода-вывода.
Использование 60 Гц для хронометража
Мне часто задают вопрос: «Насколько точны 60 Гц от электроснабжения?» Простой ответ заключается в том, что он удивительно точен.
В 1920-х годах Лоренс Хаммонд изобрел электрические часы, приводимые в движение синхронным двигателем переменного тока. Он отсчитывал время, используя двигатель, синхронизированный с частотой 60 Гц, генерируемой коммунальными предприятиями. Он раздал сотни этих часов электростанциям в качестве стимула для поддержания постоянной частоты, что позволило использовать его недорогие часы в любой точке Северной Америки.
Хаммонд помог создать орган Хаммонда, который использовал синхронный двигатель переменного тока для привода генератора «тонового колеса», который создавал идеальную высоту звука для инструмента.
Почти все, что имеет часы и подключается к стене, использует для синхронизации 60 Гц. У меня на тумбочке стоит недорогой будильник, который при отключении питания гаснет дисплей, но держит время на батарейке. При подключении к сети часы показывают отличное время. Если я отключу его от сети и возьму с собой в поездку, когда через несколько часов доберусь до пункта назначения, часы неизменно отстают или отстают на несколько минут.
В 2010 году я сделал таймер обратного отсчета, который использовал 60 Гц от электросети в качестве базы времени. Я использовал часы, которые синхронизировались с атомными часами в Боулдере, штат Колорадо, чтобы проверить точность моего таймера. В то время я заметил, что таймер смещается на 5 или 10 секунд в течение дня. Я никогда не видел, чтобы он отставал более чем на 10 секунд, и он всегда возвращался к правильному времени примерно в одно и то же время каждый день.
С тех пор коммунальные предприятия стали менее требовательны к точности генерируемой частоты 60 Гц. Для поддержания точности производится корректировка частоты, известная как коррекция временных ошибок (TEC). Чем чаще будут производиться ТИКи, тем более точными будут часы, отсчитывающие на них свое время. Энергетические предприятия, используемые для обеспечения правильности общего количества циклов за 24 часа, используя ежедневные ТЭО. Теперь TEC создается, когда совокупная ошибка превышает определенный порог. В результате частота не такая точная, как раньше, но все же очень точная.
Я запускал таймер обратного отсчета, а также аналоговые светодиодные часы, периодически сверяя их друг с другом и с атомными часами. Год спустя таймер обратного отсчета и светодиодные часы идеально синхронизированы друг с другом (как и следовало ожидать), и оба опережают атомные часы на 24 секунды. Максимальное отклонение моего таймера и часов от атомного времени составляло 52 секунды. Я думаю, что любые часы, которые в течение года идут с точностью до минуты, очень точны.
К сожалению, в Северной Америке предпринимаются попытки отменить требования для TEC. Было подсчитано, что если бы TEC не были реализованы в 2016 году, часы, использующие эту частоту для своей базы времени, потеряли бы около семи минут в течение года. Все еще не так уж плохо; определенно намного лучше, чем часы в моей машине!
Специальное примечание:
Пожалуйста, имейте в виду, что где бы я ни упоминал 60 Гц, эта концепция будет одинаково хорошо работать в большинстве стран мира, где электроэнергия работает на частоте 50 Гц. Простое изменение кода будет соответствовать 50 Гц.
Подробнее о микроконтроллере PIC16F627A
PIC16F627A имеет 16 контактов ввода/вывода, но только 14 из них могут подавать и принимать ток. Один контакт (RA4) мог только потреблять ток, а оставшийся контакт (RA5) был только входом. Причина ограниченных возможностей RA4 и RA5 заключалась в том, что они одновременно использовались как контакты для программирования чипа. Это позволяет программисту манипулировать этими контактами без вмешательства работающей программы.
Поскольку все контакты в матрице Charlieplex должны быть способны подавать и потреблять ток, 14 контактов ввода-вывода, которые могут и то, и другое, должны были использоваться для светодиодов. Линия ввода-вывода, которая может потреблять только ток, будет работать для управления зуммером. Это оставило контакт только для ввода для чтения переключателей и 60 Гц. Все идет нормально.
Однако RA5 — контакт только для ввода — не имел аналоговых возможностей; его нельзя было подключить к внутреннему компаратору микросхемы. Мало того, что RA5 была просто входной линией, это была только цифровая входная линия. Поэтому моя первая идея использовать резисторную сеть для подачи переменного напряжения на входной контакт не сработала. Тем не менее, вторая идея со стробированием кнопок четырьмя светодиодными линиями может быть вполне оправдана.
Тестовая схема
Готовую тестовую схему можно увидеть на Рис. 3 .
РИСУНОК 3. Тестовая схема на макетной плате.
Для питания цепи я использовал настенную розетку с выходом переменного тока на девять вольт. Он подключается к J1 и J2 схемы, показанной на рис. 4 .
РИСУНОК 4. Схема тестовой схемы с блоком питания, микроконтроллером и светодиодами.
Я построил мостовой выпрямитель (D5-D8), затем стабилизатор +5 В (U1), а затем соответствующие фильтрующие конденсаторы (C1-C2) для создания источника питания. Затем 12-светодиодная матрица Charlieplex (DH00-DH03, DM00-DM03, DS00-DS03) была подключена к четырем контактам ввода-вывода через соответствующие токоограничивающие резисторы (R1-R4). Узлы, которые после токоограничивающих резисторов — СР01-СР04.
В тестовом коде микроконтроллер запускал последовательность этих 12 светодиодов — аналогичную той, которая будет использоваться для готовых часов, при этом каждый светодиод горит 20% времени. Я обнаружил пару вещей.
Во-первых, светодиоды Charlieplexing работают на удивление хорошо. Я ожидал увидеть небольшое количество света, исходящего от выключенных светодиодов, поскольку через них все равно будет протекать небольшой ток. Даже в кромешной тьме с полностью закрытыми горящими светодиодами я не смог обнаружить никакого света, исходящего от негорящих светодиодов.
Во-вторых, я был удивлен, обнаружив, что для правильного баланса кажущейся яркости светодиодов светодиоды T1-3/4 (5 мм) должны быть более чем в два раза ярче, чем светодиоды T1 (3 мм). . Это имело смысл, когда я подсчитал, что большие светодиоды имеют площадь поперечного сечения примерно в 2,8 раза больше, чем меньшие. Оказалось, что очень хорошо работают маленькие светодиоды с яркостью от 250 до 310 мкд и большие светодиоды с яркостью от 680 до 700 мкд.
Давай пошумим
Затем я подключил зуммер (BZ1) между линией ввода-вывода и +5 В ( Рисунок 5 ). Я добавил 150 Ом (R9) последовательно для некоторого ограничения тока, так как зуммер был рассчитан на работу с тремя вольтами. Позже я определил, что 33 Ом было достаточно, и в итоге использовал два резистора по 75 Вт, включенных параллельно, для эквивалентного сопротивления 37,5 Ом.
РИСУНОК 5. Схема тестовой цепи с добавленным зуммером.
Было довольно просто заставить его гудеть вблизи его резонансной частоты 2 кГц. Я уже настроил прерывание на запуск каждые 256 мкс (о программном обеспечении я расскажу во второй части). Все, что мне нужно было сделать, это отключить выходную линию при одном прерывании, а затем освободить ее при следующем прерывании; это создало прямоугольную волну с периодом 512 мкс, или 1,953 Гц.
Вход 60 Гц
У меня возникла идея соединить каждую кнопку с линией в светодиодной матрице. Другая сторона кнопок и сигнал 60 Гц будут соединены вместе — добавление диодов последовательно для изоляции — к контакту только для ввода (RA5). К входной линии добавляется подтягивающий резистор к +5В.
Чтобы считать переключатели, я подтягивал линию к одному переключателю (в то время как все остальные светодиодные линии плавали в высокоимпедансном состоянии) и считывал результат на RA5.
Одна из проблем с этой схемой заключалась в том, что пока кнопка удерживалась нажатой, подтягивающий резистор подавал напряжение на светодиодную матрицу. Даже при достаточно высоком значении подтягивающего резистора это приведет к случайному свечению светодиодов.
Другая проблема, которую я быстро понял, заключалась в том, что, когда микроконтроллер удерживал одну из линий переключателя, ток проходил через светодиоды к другим линиям переключателя, фактически удерживая их частично в нажатом состоянии.
Другие линии не упадут на землю, но будут удерживаться на уровне около двух вольт или около того. Цифровой вход не смог бы надежно различить разницу; поэтому программное обеспечение не сможет определить, какие переключатели были активированы. Удерживание одной линии переключателя на низком уровне при удерживании трех других на высоком уровне предотвратило бы эту проблему, но было бы неприемлемо, поскольку это привело бы к включению светодиодов.
Стало очевидным, что необходимо использовать аналоговый вывод для кнопки ввода. Поэтому я решил выделить RA5 для мониторинга линии 60 Гц. Поскольку линия переменного тока колеблется далеко за пределами диапазона напряжения входного контакта, я добавил токоограничивающий резистор (R5).
Входной контакт RA5 имеет внутренний диод для фиксации входа на землю, но нет внутреннего диода для фиксации входа на +5В. Это связано с тем, что микросхема переводится в режим программирования путем поднятия этого вывода выше пяти вольт. Мне не хотелось, чтобы микросхема переходила в программный режим, поэтому я добавил D5, чтобы зажать вход на +5В ( Рисунок 6 ).
РИСУНОК 6. Схема тестовой цепи с добавленным входом переменного тока.
Тестирование
Тестовая схема работала так, как я и предполагал. Он запускал последовательность подсчета, аналогичную той, что будет работать в последних часах. Он реагировал на кнопки и мог издавать звуковой сигнал. Единственная проблема заключалась в том, что некоторые из светодиодов, которые должны были быть выключены, слабо светились.
Снял цепь кнопки, думал проблема в ней, но светодиоды продолжали светиться. Я удалил микроконтроллер и вручную включил различные светодиоды, и свечение исчезло. Я подумал, что свечение, вероятно, было вызвано либо ошибкой программирования, либо паразитной емкостью на макетной плате.
Даже если я не мог убрать свечение, оно было достаточно тусклым, чтобы быть едва заметным. На финальный круг!
Кнопки
Мне нужно было придумать способ считывания переключателей с помощью аналогового вывода. Разумеется, все аналоговые входные контакты использовались для управления светодиодной матрицей. Что бы я ни пробовал, либо загорались нежелательные светодиоды, либо не читалось состояние переключателей. Как раз когда я собирался использовать микроконтроллер с большим количеством контактов ввода-вывода, я наткнулся на решение!
Цепь кнопки была подключена к узлам CP01-CP04, которые стоят после токоограничивающих резисторов R1-R4 светодиода; см. Рисунок 7 .
РИСУНОК 7. Схема тестовой цепи с добавленными кнопками.
Делитель напряжения был создан с R6 и R7, который обеспечивает 2,5 В, которые подаются на CP04 через резистор R8. Кнопки S1-S3 были подключены к выходу делителя напряжения. Другая сторона кнопок была подключена к CP01-CP03 через диоды (D1-D3). Эти диоды изолируют CP01-CP03 друг от друга при одновременном нажатии более одной кнопки.
Как работает схема
Вспомним, что когда микроконтроллер управляет светодиодом, на каждом из двух задействованных токоограничивающих резисторов возникает падение не менее 1,3 В. Следовательно, ток в узле-приемнике будет не менее 1,3 вольт, а в узле-источнике тока — не более 3,7 вольт. Если CP04 не управляет светодиодом, он находится в состоянии высокого импеданса.
Следовательно, на CP04 появляется выход делителя напряжения 2,5 вольта. В этом случае напряжение на любом пораженном светодиоде в матрице не превысит 1,2 В (3,7–2,5 В или 2,5–1,3 В), что недостаточно для его включения.
Предположим, что S2 нажата, когда CP02 потребляет ток. Выходное напряжение делителя падает не менее чем до 2,0 В из-за падения 0,7 В на D2. Если CP04 находится в режиме высокого импеданса, это подаст 2,0 вольта в цепь Чарлиплекса в этой точке. Исходная линия Charlieplexed может давать падение до 1,7 В на светодиоде (3,7–2,0 В), в то время как отводящая линия может давать падение до 0,7 В (2,0–1,3 В) — ни того, ни другого недостаточно. чтобы включить светодиод.
Я обнаружил, что когда CP04 подает ток в матрицу, это приводит к увеличению выходного напряжения делителя напряжения с 2,5 В до 2,9 В.вольт. Предположим, что в это время нажимается кнопка S2. Ток может проходить через эту кнопку и D2 в матрицу на CP02. Из-за падения напряжения на D2 на 0,7 В в матрицу можно было бы поместить источник тока не более 2,2 В. Это даст не более 0,9 вольта на любой светодиод — опять же, намного ниже того, что требуется для его включения.
Когда CP04 используется для отвода тока в светодиодной матрице, выходное напряжение делителя напряжения падает примерно до 2,1 вольта. Если, например, нажата кнопка S2, D2 не позволяет этому напряжению обеспечить сток тока в матрицу. На CP02 появляется источник тока с напряжением 1,4 вольта, всего на 0,1 вольта выше линии, на которую подается низкий уровень — этого явно недостаточно для включения светодиода.
Таким образом, независимо от того, какой светодиод горит и какие кнопки нажаты, схема кнопок не может вызвать загорание других светодиодов в матрице.
Для определения состояния кнопки линия ввода-вывода для этой кнопки переводится в низкий уровень, а все остальные линии ввода-вывода в светодиодной матрице остаются в состоянии ввода с высоким импедансом.
Например, чтобы считать S1, CP01 (который подключен к S1 через D1) должен быть установлен на низкий уровень вывода. Если кнопка не нажата, 2,5 В с делителя напряжения через R8 подается на CP04. Светодиод DM03, катод которого подключен к CP01, а анод к CP04, приведет к падению выходного напряжения делителя до рабочего напряжения этого светодиода — между 2,0 В и 2,4 В.
Это напряжение появляется на микроконтроллере на RA2 через R4. Ток, проходящий через DM03, сильно ограничен резисторами R6 и R8, и, поскольку кнопка считывается за несколько микросекунд, через светодиод будет протекать ток, недостаточный для того, чтобы он светился для человеческого глаза.
Если нажать S1, ток через D1 вызовет падение напряжения на выходе делителя до 0,7 вольт. Это напряжение проходит через R8 и R4 и появляется на RA2. Таким образом, чтобы определить, нажата ли кнопка, микроконтроллер переводит линию ввода-вывода этой кнопки в низкий уровень, а затем смотрит на результирующее напряжение на RA2.
Если около 0,7 вольта, то кнопка нажата; если два и более вольта, то нет. Каждая кнопка считывается по одной, переводя линию этой кнопки в низкий уровень, в то время как другие линии Charlieplexed остаются в состоянии высокого импеданса.
Микроконтроллер имеет встроенный компаратор и встроенный программируемый источник опорного напряжения, который можно использовать для обнаружения небольших изменений напряжения. Я запрограммировал микроконтроллер так, что RA2 подключен к инвертирующему (-) входу компаратора, а неинвертирующий (+) вход подключен к программируемому опорному напряжению. Я установил опорное напряжение на 1,042 В.
Если кнопка нажата, напряжение на контакте ввода-вывода составляет 0,7 В, и на выходе компаратора появляется высокий уровень. Если кнопка не нажата, входное напряжение составляет не менее 2,0 В, а выход компаратора становится низким. Выход компаратора считывается микроконтроллером как 1 или 0.
Время вышло
На этом первая часть заканчивается. Во второй части мы завершим схему, изготовим печатную плату, создадим часы и посмотрим, как работает программное обеспечение. Тем временем вы можете найти исходные файлы программного обеспечения с загрузками статей, если хотите заглянуть. Увидимся в следующий раз! NV
Комплект можно приобрести в интернет-магазине Nuts & Volts по адресу https://store.nutsvolts. com/project-kits/sku15871 .
Загрузки
201803-Gill.zip
Что в архиве?
Файлы печатных плат
Код
201803-Gill-Manual.zip
Что в почтовом индексе?
Руководство по сборке
— часть 1 Аппаратное обеспечение…
Опубликовано
В этом проекте/руководстве мы собираемся обсудить, как мы можем создать простое, но очень полезное устройство для управления нашей жизнью, цифровые часы. Хотя в настоящее время существуют цифровые часы, которые можно настроить, просто подключившись к Интернету, я решил использовать часы реального времени (RTC), потому что: (1) Очевидно, что они работают даже без подключения к Интернету. (2) Это недорого. (3) Он потребляет очень мало энергии. (4) и чтобы мы могли видеть, как это работает. Это будет очень длинный урок, поэтому мы разделим его на три части. В этой части мы обсудим аппаратное обеспечение, во второй части программное обеспечение, а в последней части мы протестируем цифровые часы. Итак, давайте сначала проверим компоненты, которые нам нужны для создания цифровых часов.
Используемые компоненты
1. ATmega328P-PU, 28-контактный разъем для ИС, 2 шт. Конденсаторы керамические 0,1 мкФ, кристалл 16 МГц, 2 шт. Керамические конденсаторы 22 пФ, резистор 10 кОм (минимальный/автономный Arduino Uno)
2. Модуль точных часов реального времени (RTC) DS3231
3. 2 шт. Модуль точечно-матричного светодиодного дисплея MAX7219 4-в-1 (перемычки «гнездо-гнездо» входят в комплект)
4. 5 шт. Тактильные переключатели 12 мм
5. 2N3904 BJT и резистор 1 кОм
6. 2 шт. Электролитические конденсаторы 470 мкФ
7. Разъемы «папа» и «мама»
8. Разделительная плата microUSB (дополнительно)
Таким образом, основными компонентами этих цифровых часов являются минималистичный Arduino Uno (автономный Arduino Uno), модуль DS3231 RTC и матричный светодиодный дисплей MAX7219. модули. С этими тремя компонентами мы уже можем отображать время и дату. Однако мы не сможем установить время и дату на часах, если снова не перепрограммируем микроконтроллер (MCU). Поэтому я добавил тактильные переключатели, чтобы мы могли устанавливать время и дату без перепрограммирования MCU и других компонентов, чтобы сделать цифровые часы стабильными. Теперь давайте проверим аппаратные соединения.
Аппаратное соединение
Матричный светодиодный дисплей Схема цифровых часовКак вы можете видеть на схеме выше, у нас есть минимальный Arduino Uno, который состоит из микроконтроллера ATmega328P-PU и других пассивных компонентов (C1, C2, C3, C4, R1 и X1). Модуль DS3231 RTC подключается к MCU через линии I2C (SDA и SCL).
DS3231 — это устройство I2C RTC, которое поддерживает точное время даже при отключении основного питания за счет включения резервной батареи. Он поддерживает информацию о секундах, минутах, часах, дне, дате, месяце и году, пока резервная батарея находится в хорошем состоянии. Если резервная батарея удаляется при отсутствии основного питания, время и дата будут сброшены на значения по умолчанию, поэтому вам нужно будет установить их снова.
Итак, это модуль DS3231 RTC, который я использовал. Это очень распространено, и вы можете легко купить его в Интернете. Большая микросхема на изображении — это DS3231, а меньшая микросхема под ней — это AT24C32, которая представляет собой EEPROM на случай, если вам нужно сохранить некоторые значения. Преимущество этого модуля в том, что вам больше не нужно использовать внешние подтягивающие резисторы, поскольку он уже имеет встроенные подтягивающие резисторы 4,7 кОм, подключенные к линиям I2C. Также модуль включает в себя держатель батареи 2032. Как вы можете видеть на изображении, у нас есть батарея CR2032.
Тем не менее, одна вещь, которую я бы хотел, чтобы они не включали в эту плату, — это дрянная схема зарядки аккумулятора. Аккумулятор, который поставляется с этим модулем, даже не перезаряжается. Но даже если он идет с перезаряжаемой батареей, я бы не стал заряжать батарею с такой схемой зарядки:
Поэтому, чтобы не повредить батарею, я бы лучше отключил цепь зарядки батареи, удалив резистор 200 Ом. Как вы можете видеть на изображении ниже, я выпаял резистор, чтобы отключить VCC от батареи. В этом случае, даже при использовании перезаряжаемой батареи 2032, батарея больше не будет заряжаться. Вам просто нужно следить, если уровень заряда батареи все еще в хорошем состоянии. Но, поскольку устройство DS3231 потребляет очень мало энергии, я уверен, что батареи хватит надолго.
Теперь для матричного светодиодного дисплея MAX7219 его драйвер, MAX7219, имеет вход 3-проводного последовательного интерфейса, который можно подключить к порту SPI микроконтроллера. Устройство MAX7219 представляет собой драйвер дисплея с общим катодом, который связывает обычные микроконтроллеры с 7-сегментными дисплеями (до 8 цифр), гистограммными дисплеями или 64 отдельными светодиодами. 64 отдельных светодиода в этом случае представляют собой матричный светодиодный дисплей 8×8.
Можно добавить дополнительные светодиодные дисплеи с точечной матрицей 8×8, используя дополнительные устройства MAX7219 и подключая их каскадно. Модуль дисплея 4-в-1, который мы используем, имеет четыре матричных светодиодных дисплея 8×8, что означает наличие четырех MAX7219.на нем каскадно, и поскольку мы используем два модуля дисплея 4-в-1, всего 8 устройств MAX7219 подключены каскадно. Как видно на принципиальной схеме, мы подключили выход первого модуля дисплея 4-в-1 ко входу второго модуля дисплея 4-в-1.
Как упоминалось ранее, мы уже можем отображать дату и время с помощью минимального Arduino Uno, модуля RTC DS3231 и модулей точечно-матричных светодиодных дисплеев MAX7219. Однако мы не сможем установить RTC, кроме как если снова запрограммируем MCU (позже мы увидим в коде, как устанавливается RTC). Поэтому я добавил четыре тактильных переключателя, чтобы мы могли устанавливать время и дату без перепрограммирования микроконтроллера. Пятый переключатель предназначен для ручного сброса MCU. Позже в программном обеспечении/коде и демонстрации/тестировании мы увидим, как работает каждый из этих переключателей.
Я также добавил два электролитических конденсатора 470 мкФ-16 В, C5 и C6.