Часы на ардуино светодиодная матрица

Часы на ардуино светодиодная матрица

Видео как сделать часы на Arduino Nano и светодиодной LED матрице MAX7219

Для сборки часов в этом варианте использовалось:

Матричный модуль 32×8 MAX7219
Модуль часов DS3231
Сенсорный датчик TTP223

Проект еще не доделан, но основная часть закончена. Делается для дачи, но возможно применение и в автомобиле.
Собственно надоело ходить к градуснику, что бы узнать зима за окном или лето. Да и часов в кухне-столовой, где проводится основная часть времени, не было. Под закрылиной валялись остатки от бегущей строки еще советского производства, в которой оставалось 3 светодиодных матрицы 16х7. Решил их и использовать, но для начала откатать все на маленьких матрицах 8х8.
Полазив по интернету нашел отправную точку на импортном ресурсе, где человек делал часы на матрицах с анимацией смены цифр. Скетч перелопатил под себя. Что имеем:
— 4 матрицы 8х8 управляемые МАХ7219. Это и есть наш экран.
— Модуль часов DS3231. С него получаем данные о времени и температуре.
— Датчик влажности и температуры DTH11. Для данных о влажности.
— Датчик температуры DS18B20. Для данных о температуре "за бортом".
— Фоторезистор для управления яркостью дисплея.
— Плата ARDUINO

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

Настройки:
— Естественно время и дата
— Яркость дисплея на свету
— Яркость дисплея в темноте
— Чувствительность датчика освещенности.

Проект оптимизирован под 4 матрицы, но будет переделан под 6, т.к. хочется чтобы на экране помещались слова типа "Понедельник" полностью, но дополнительные МАХ7219 пока до меня не доехали, так что пока под 4, а уменьшать размер символов я не хочу из-за их неприглядности. На данный момент все режимы крутятся по кругу, но можно переделать на выбор режима кнопкой изменением одной строки. Я же буду делать управление от хлопка в ладоши. Часы будут висеть над дверью и хлопком будет включаться режим показа даты и температур. В плане расширения можно прикрутить датчик атмосферного давления, исполнительные механизмы при смене режима освещения и т.д. и т.п. Так же не оптимизирована чувствительность датчика яркости, надо по месту подгонять.
Часть строк с комментариями, но замучился писать и бросил. Скетч конечно не оптимизирован и можно найти косяки, но вполне рабочий. Пока все на макетке, но пост будет изменен при изменении состояния проекта. Собственно фоткать тут нечего, лучше видео работы:

Читайте также:  Оформление зала в стиле барокко

Сам скетч с используемыми библиотеками тут yadi.sk/d/Ie5zUhb2sr8jz

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

По схеме, в Fritzing нет модулей матриц на MAX7219, так что использовал картинку какой-то матрицы. Поэтому обращаем внимание на подключение DataIn pin — Arduino 6, CLK pin — Arduino 5, LOAD pin — Arduino 4. По резисторам, на фоторезистор и на DTH11 10 кОм. Если используется готовый модуль датчика DTH11, то возможно резистор уже установлен, смотрите внимательно.

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

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

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

Соединение всех электронных компонентов проводится на специальной контактной («беспаячной») макетной плате, что исключает риск получения ожогов, порезов и других травм — поэтому заниматься с конструктором Arduino можно и вместе с детьми. А наглядный способ представления принципиальной схемы поможет не ошибиться при сборке устройства.

Читайте также:  Горелка для мягкой кровли своими руками

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Люстры для потолков с балками

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

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

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

Для этого нужно установить бесплатную официальную среду разработки — Arduino IDE [https://www.arduino.cc/en/Main/Software]. Также вам потребуется исходный код проекта, который вы можете скачать ниже в архиве со всеми библиотеками и скетчем, а если вам нужен просто скетч — его можно скопировать отдельно:

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

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

Выбор модели Arduino в среде Arduino IDE

  • откройте исходный код (файл clock_8x32.ino): File -> Open. Arduino IDE предложит вам автоматически создать отдельную директорию под проект — ответьте утвердительно;
  • загрузите программу в память Arduino: Sketch -> Upload.
  • Компиляция программного кода и дальнейшая загрузка в память микроконтроллера займёт некоторое время, обычно не более одной минуты. Об успешном завершении операции будет сообщено в консоли Arduino IDE. После чего остаётся лишь перезагрузить Arduino с помощью кнопки Reset на устройстве — простые часы на светодиодных матрицах готовы!

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

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

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

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

    Ссылка на основную публикацию
    Adblock detector