Светодиодные часы с термометром своими руками

Добавил пользователь Владимир З.
Обновлено: 18.09.2024

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

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

Также есть и инструкция, на которой показаны некоторые детали предстоящей операции.

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

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

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

Обратите внимание на маленький размер слота батарейки. Батарейку на 3V такого размера у себя в Перми я не нашел, и позже вы узнаете, как я решил эту проблему.

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

Пакую всю конструкцию в корпус. Вот, обратите внимание, как я решил проблему с батарейкой. Я взял слот для cr2032 (батарейка, как на материнской плате пк) и вынес его в свободную область проводами из места установки штатного слота. Вставил в него новенькую батарейку cr2032. Все работает.

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

Между часами и минутами моргает разделитель в виде двоеточия в такт секундам. Фото сделано как раз в тот момент, когда он потух.

Между часами и минутами моргает разделитель в виде двоеточия в такт секундам. Фото сделано как раз в тот момент, когда он потух.

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

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

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


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

Шаг 1. Список компонентов

Чтобы собрать простые часы на светодиодных матрицах вам потребуется всего несколько дешёвых компонентов:

  • платформа Arduino. Подойдут самые простые модели — Arduino Nano или Micro;
  • контактная макетная плата;
  • соединительные провода для макетной платы;
  • модуль часов реального времени Adafruit DS3231;
  • светодиодный матричный модуль 32x8 MAX7219;
  • две кнопки.

Также понадобится персональный компьютер и USB—mini-USB кабель для загрузки программы управления в память Arduino IDE. Вот и всё — паяльник, щипцы для снятия изоляции, монтажные ножи и прочие профессиональные инструменты не нужны: все операции выполняются руками. Разве что в некоторых случаях удобнее использовать пинцет, но можно обойтись и без него.

Детали для сборки электронных часов на Arduino

Детали для сборки электронных часов на Arduino

Шаг 2. Сборка электронной схемы

Схема электронных часов с индикацией на светодиодах с применением Arduino даже для неопытных радиолюбителей покажется довольно простой. Для сборки требуется всего несколько проводников. Таблица подключений:

Модуль Arduino → светодиодная матрица 32x8 MAX7219

Модуль Arduino → часы реального времени Adafruit DS3231

Модуль Arduino → кнопки

Второй вывод кнопок соединяется с землёй GND.

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

Схема электрических подключений макетной платы

Схема электрических подключений макетной платы

Два ряда (1 и 4) с обеих сторон замкнуты горизонтально — обычно они используются как линия питания +5V и земля GND. Все внутренние контакты (2 и 3) замкнуты вертикально. При этом монтажная плата как вертикально, так и горизонтально разделена на две независимые друг от друга симметричные части. Это позволяет, например, собрать два разных устройства на одной плате.

Схема электронных часов с индикацией на светодиодах, а также расположение элементов на монтажной плате представлена на иллюстрации:


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

Внешний вид собранного устройства

Внешний вид собранного устройства

Шаг 3. Прошивка Arduino

Интерфейс среды разработки Arduino IDE

Интерфейс среды разработки Arduino IDE

Теперь для завершения работы над устройством потребуется выполнить лишь ряд простых операций:

  1. подсоедините Arduino к USB-порту компьютера. Если модуль подключается впервые, то необходимо будет дождаться определения устройства операционной системой и установки драйвера;
  2. скопируйте содержимое папки libraries из архива в одноимённую папку в каталоге Arduino IDE;
  3. запустите средство разработки Arduino IDE;
  4. настройте тип Arduino в соответствии с имеющимся у вас модулем. Так, если вы используете Arduino Nano, в меню необходимо выбрать Tools -> Board: “Arduino Nano”. Также убедитесь в том, что модель процессора соответствует микроконтроллеру на вашей плате:

Компиляция программного кода и дальнейшая загрузка в память микроконтроллера займёт некоторое время, обычно не более одной минуты. Об успешном завершении операции будет сообщено в консоли Arduino IDE. После чего остаётся лишь перезагрузить Arduino с помощью кнопки Reset на устройстве — простые часы на светодиодных матрицах готовы!


Готовые часы на Arduino

Настройка часов осуществляется с помощью двух кнопок. Устройство поддерживает 12- и 24-часовой формат вывода времени, показ даты и дня недели, отображение времени с секундами и без. Также имеется возможность менять яркость свечения светодиодов.

Вариант корпуса для светодиодных часов

Вариант корпуса для светодиодных часов

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

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

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

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


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


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

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


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

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


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

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

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


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

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


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

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

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


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

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

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

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

Arduino


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

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

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


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

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

Raspberry PI


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

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

ESP8266


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


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

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

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


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

time 0

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

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

B основе MK Atmega328 и модуль матрицы в сборе — MAX7219 dot matrix (4 шт. на одной планке).
DS18b20 , RTC DS1307 , датчик освещения , кнопки управления, комплект RF -модулей, и блок питания 5 вольт ( потребление схемы в пиковых моментах, при максимальной яркости, составляет до 0.6А, а в среднем это 0.3А, можно использовать и лишнюю зарядку от мобилки, если имеется с подходящими параметрами) ).
В чем интерес применения Arduino Nano Atmega328.
В том, что на борту этой платки уже имеется модем с выходом на мини USB, прошить такой контроллер можно без особого труда через bootloader, с помощью вашего компьютера и телефонного шнура для зарядки мобильного телефона с разъемом под мини USB.
Все это несложно делается с помощью простенькой программки XLoader .
Чуть подробней про опыт прошивки через bootloader, описывал здесь " Nano вольт - амперметр 2 канала. ".
При желании все необходимые модули можно по хорошей цене купить на Aliexpress.



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

  • Первый вариант это, поочередное отображение времени (часы и минуты), уличной температуры и температуры помещения (два датчика DS18b20 ) .

Отображение в режиме бегущей строки - дата, месяц, год и день недели.

  • Второй вариант, отображение времени (часы и минуты), температуры окружающего воздуха (один датчик DS18b20 ) .

Отображение в режиме бегущей строки - дата, месяц, год и день недели.

  • Третий вариант, просто часы, отображение времени (часы и минуты),

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

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

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


- При нажатии Кн2 более 2х сек., осуществляется вход в меню установок (при нахождении в меню, нажатие Кн2 более 2х сек., выход из меню установок).


- После входа в меню, кнопками Кн1 – Кн3 можно сделать коррекцию даты и времени, движение по меню осуществляется Кн2 , изменяемый параметр будет находиться в инверсном свечении.


- Также в меню, возможно, если в этом есть необходимость, установить коррекцию неточности хода часов, в течение суток ±9сек.


- Следующий пункт в меню будет, это выбор используемого языка, в одной прошивке предусмотрено использование языков UA-EN-RU .


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

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

Часы Часы + RF Часы + RF + ds18b20
Часы + ds18b20 (2шт.) Часы + ds18b20 RF -передатчик

Фото часов в процессе отладки на макетной плате.

тест плата

Схема в протеусе


FUSE для работы ATmega328 с загрузчиком (архив с прошивкой загрузчика ATmega328.)

фьюзы

FUSE, если кто будет использовать ICSP программатор для прошивки ATmega328 в этой схеме.

фьюзы

Схема передатчика для этих часов.

С помощью перемычек Jp -1, Jp -2, Jp -3, можно выбрать, частоту передачи RF -модулем пакетов информации с температурой от датчика №3.

(1 – перемычка замкнута, 0 – нет)

FUSE, ATtiny24а устанавливаются на внутренний генератор МК - 8МГц .



Печатная плата для часов , и радиодатчика.



Прошивка “Часы – термометр на матричных модулях ” , печатные платы, proteus, в архиве .

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

DS18b20 , RTC DS1307 , датчик освещения , кнопки управления, комплект RF -модулей, и блок питания 5 вольт ( потребление схемы в пиковых моментах, при максимальной яркости, составляет до 0.6А, а в среднем это 0.3А, можно использовать и лишнюю зарядку от мобилки, если имеется с подходящими параметрами) ).
В чем интерес применения Arduino Nano Atmega328 .
В том, что на борту этой платки уже имеется модем с выходом на мини USB, прошить такой контроллер можно без особого труда через bootloader, с помощью вашего компьютера и телефонного шнура для зарядки мобильного телефона с разъемом под мини USB.
Все это несложно делается с помощью простенькой программки XLoader .
Чуть подробней про опыт прошивки через bootloader, описывал здесь " Nano вольт - амперметр 2 канала. ".
При желании все необходимые модули можно по выгодной цене купить на Aliexpress.

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


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


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

  • Первый вариант это, поочередное отображение времени (часы и минуты), уличной температуры и температуры помещения (два датчика DS18b20 ) .

Отображение в режиме бегущей строки - дата, месяц, год и день недели.

  • Второй вариант, отображение времени (часы и минуты), температуры окружающего воздуха (один датчик DS18b20 ) .

Отображение в режиме бегущей строки - дата, месяц, год и день недели.

  • Третий вариант, просто часы, отображение времени (часы и минуты),

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

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


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


- При нажатии Кн2 более 2х сек., осуществляется вход в меню установок (при нахождении в меню, нажатие Кн2 более 2х сек., выход из меню установок).


- После входа в меню, кнопками Кн1 – Кн3 можно сделать коррекцию даты и времени, движение по меню осуществляется Кн2 , изменяемый параметр будет находиться в инверсном свечении.


- Также в меню, возможно, если в этом есть необходимость, установить коррекцию неточности хода часов, в течение суток ±9сек.


- Следующий пункт в меню будет, это выбор используемого языка, в одной прошивке предусмотрено использование языков UA-EN-RU .


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

Фото часов в процессе отладки на макетной плате.

Схема в протеусе

Схема передатчика для этих часов.

С помощью перемычек Jp -1, Jp -2, Jp -3, можно выбрать, частоту передачи RF -модулем пакетов информации с температурой от датчика №3.

Читайте также: