Ничего не найдено :(
    В гостях у Самоделкина! » Темы » Советы » Простые часы на Arduino и матричном индикаторе

    Простые часы на Arduino и матричном индикаторе


    Приветствую дорогие самоделкины! Совсем недавно познакомился с одной очень интересной штукой микроконтроллером – который меня сильно заинтересовал, и тогда показавшись чем-то волшебным и непостижимым. Но я решил начать их изучение, почитав немного литературы, насмотревшись видеороликов в YouTube других пользователей, а также повторив парочку чужих конструкций, задумал спроектировать свое несложное, но в то же время полезное устройство, которым бы можно было пользоваться каждый день, и которое бы смог повторить любой начинающий радиолюбитель. Посмотрел свои запасы, и нашел матричный светодиодный индикатор на драйвере MAX7219, и вот подумал, с этого могут получится неплохие красивые часы.

    Признаюсь, идея на такое применение этого типа дисплея не моя, подобных проектов в интернете полно, но всё же. Основными требованиями были простота конструкции и доступность компонентов. Чтобы максимально упростить конструкцию решил в качестве мозгов применить платформу Arduino Nano, и готовый модули часов реального времени на точном чипе DS3231, а также для отображения температуры окружающей среды применил цифровой датчик температуры DS18B20.

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

    Остаточно схема начала выглядеть так:

    В последствии при наладке устройства оказалось, что яркость дисплея даже в дневное время достаточно велика, не говоря уже об ночном, поэтому было решено добавить автоматическую регулировку яркости дисплея в зависимости от окружающего освещения, для чего я применил фоторезистор. Теперь днём яркость дисплея составляет около 80%, что позволяет продлить срок службы индикатора не перегревая светодиоды, и не режет глаза, а ночью около 10%, чего хватает для комфортного отображения. Также были добавлены кнопки для настройки времени и даты.

    Итак, в последней версии часы умеют:
    • настраивать время и дату с кнопок
    • раз в минуту отображать окружающую температуру (только плюсовую).
    • При нажатии на определенные кнопки отображать кроме времени еще дату, или температуру
    • Автоматически регулировать яркость дисплея (четыре уровня яркости)

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

    До этого времени я постоянно делал платы методом ЛУТа, но в этот раз я решил попробовать сделать с помощью фоторезиста, и результатом был полностью доволен.


    Подробнее о фоторезистивном изготовлении платы полно материала в сети Интернет.
    Далее залудив плату в сплаве Розе, я установил все модули и компоненты кроме Arduino на свои посадочные места и запаял так как Arduino в свою очередь сначала нужно запрограммировать, а потом запаять. После пайки обязательно необходимо отмыть флюс с платы.
    Процесс прошивки стандартный для данного типа плат Arduino, который я очень коротко опишу:
    • Нужно открыть файл прошивки в программе Arduino IDE

    • В меню Инструменты – плата выбрать плату Arduino Nano

    • В меню Инструменты – порт выбрать свой COM порт к которому подключена Arduino
    Простые часы на Arduino и матричном индикаторе

    Далее нужно прошить контроллер нажав кнопку Загрузка.

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

    Далее нужно правильно установить индикатор, а именно - если смотреть на плату со стороны деталей, как показано на рисунке ниже, контакт Din должен быть справа.

    После соединения половинок должен получится вот такой «бутерброд»

    Если все собрано и прошито правильно часы должны заработать сразу после подключения питания. В качестве источника питания необходимо применять блок питания с выходным напряжением в 5В. Ток потребления часов в режиме максимальной яркости не более 200мА, что позволяет в качестве источника питания применить USB порт компьютера. Я применил отдельный сетевой блок питания на 5В с током в 1А.

    Для подключения блока питания я установил стандартный для этого разъем 5мм*2мм

    Далее следует настроить время и дату, специальными кнопками:

    Для этого необходимо на две секунды зажать копку «Настройка» после чего начнут мигать цифры отображающие часы, кнопками «Вверх» и «Вниз» выставить необходимое время, после чего кратковременно еще раз нажать кнопку «Настройка», и начнут мигать минуты, которые выставляются аналогично, и после окончательной настройки снова на две секунды зажать кнопку «Настройка», для перевода в режим отображения. Для установки даты необходимо в режиме показа времени кратковременно нажать кнопку «Настройка», после чего отобразится дата и еще на две секунды зажать кнопку «Настройка», после чего начнёт мигать дата, которую можно установить кнопками «Вверх» и «Вниз» по аналогии с установкой времени. В итоге получились неплохие часы, которые под силу собрать практически каждому. Часы работают стабильно, ход времени очень точен. В процессе прошивка для них ещё будет обновляться, и исправляться, так что следите…



    Все необходимые для сборки часов материалы Вы можете скачать с Гугл диска.
    Опрос
    Понравилась самоделка?
    Всего проголосовало: 102
    Подборки: Часы Arduino

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

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

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

    15 комментариев
    boltmaster #88277

    В ардуино нужно добавить библиотеку OneWire.h , иначе при будет ошибка при компиляции проекта . Взять можно тут 

    https://disk.yandex.ru/d/zCx0cNe1gtJ8AA

    Гость Павел #87693

    На схеме 3 конденсатора, а на фото с печатной платой уже 4 - какой наминал его?



    pascual #87159

    Hello, I load the code and the entire matrix stays on, cs d10, clk d13, din d11, can you help me

    Гость Роман #85920
    Гость сергей,


    Такая же фигня!

    Может кто решил эту проблему?

    Гость сергей #83788

    Compilation error: OneWire.h: No such file or directory

    Гость сергей #83569

    а часы 1307 пойдут

    Гость Сергей #60337
    По ходу испытаний еще некоторые моменты не понятны. При нажатии кнопки "DOWN" выводится  температура, но она не обновляется, то есть как статическим термометром пользоваться нельзя. Также и с секундами. Пока держишь все обновляется. Можно как то исправить это?
    Гость Сергей #60284
    Повторил проект, все прекрасно работает, спасибо за проверенный и рабочий код.
    Пару вопросов; как отобразить температуру  вот так: 25,3 т.е с десятыми. И минусовую температуру будет показывать? Или надо код править?
    Гость Сергей #60269
    А почему минусовую не показывает?
    Дмитрий Новоселецкий #57877 Автор
    didm,
    Конечно можно
    didm #57768
    А если вынести датчик на улицу? А если время отображения не 1 минута, а меньше?
    Дмитрий Новоселецкий #46093 Автор
    ino53,
    Да можна, я тоже так планирую сделать в следующей версии прошивки. Так ничего сложного.
    ino53 #46092
    Я имел ввиду смену показаний - постояло время, уплыло, постояла дата, уплыла, потом температура... Хотя, как говорят, от хорошего хотеть лучшего:-)
    Дмитрий Новоселецкий #46089 Автор
    ino53,
    В принципе в функционал часов входит бегущая строка. При запуске часов пробегает название часов
    ino53 #46086
    А бегущую строку реализовать, или есть сложности?

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии