часы на ардуино с дисплеем tft и ds3231

часы на ардуино с дисплеем tft и ds3231

Доброго всем дня.
Мне наконец-то привезли цветной IPS дисплей. Сначала посмотрим его со всех сторон, а потом я покажу какие из него можно сделать интересные и красивые часы. В корпус я их пока монтировать не буду, так как планирую ещё много примеров на этом экране.
Вот его размеры. Он конечно небольшой, но качество у него отличное качество и очень широкие углы обзора . Можно смотреть с любого угла, картинка видна чётко.
Про характеристики я рассказывать не буду, кому интересно, можно легко найти в интернете. У нас сегодня только практика.
Про характеристики я рассказывать не буду, кому интересно, можно легко найти в интернете. У нас сегодня только практика.
В этом видео рассмотрим два варианта часов. Первый – это часы просто как циферблат, и второй – как информационный модуль.

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

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

Начнём со второго примера.
Все названия, цвета, размер шрифта можно легко изменить в скетче, я по возможности его прокомментировал.
Сверху идёт текстовой блок. Вы можете вывести в него любую информацию.
Дальше идёт день недели. Так как воскресенье и понедельник не умещались на экран, а меньшим шрифтом было очень мелко, то было принято решение вывести всего две буквы. Зато осталось место для вывода ещё чего-нибудь.
С датой и временем проблем не было, поэтому я вывел их в стандартном виде.
И ниже показана температура. У модуля часов есть встроенный датчик температуры.  У него конечно не очень большая точность, но для домашних целей этого достаточно.
Управление часами происходит двумя кнопками.
Первая это выбор что менять и вторая это прибавление числа. День недели берётся из встроенного в модуль календаря.
Для работы примера вам надо будет установить две библиотеки. Их можно установить из менеджера библиотек программы Ардуино IDE или скачав мой архив установить оттуда.
Если вы будете выводить текст на кириллице, то вам надо будет русифицировать библиотеку GFX. Как это делать я неоднократно рассказывал, поэтому повторяться не буду. Без этого у вас вместо русских букв из примера будут кракозябры.
В примере для уменьшения количества кнопок, вариант изменения данных происходит только вверх, методом прибавления. Дни будут прибавляться до 31, месяцы до 12, часы до 23, а минуты до 59.
Год – это самое долгое. Он будет прибавляться до 2099 года, а потом сбросится на 2000 год.
Это небольшое неудобство, зато меньше кнопок.
Вроде про этот вариант больше рассказывать нечего, переходим к другому варианту. Варианту с циферблатами.

Это пример из библиотеки Fast ST7789 под названием Watch. Если вы будете использовать этот пример, то вам надо будет скачать эту библиотеку.
Здесь 6 вариантов часов. Вы можете выбрать любой, расскомметировав его название. Я особо не вникал в его работу, так как всё работало без проблем. Единственной заморочкой было – это установка времени. Его зачем-то закомментировали. Если вам нужна будет эта опция, и вы берёте пример не из архива, а из примера библиотеки, то расскомментируйте код работы с кнопкой. Для тех кто устанавливает мой пример, то там всё сделано.
Сейчас мы быстро просмотрим все варианты этого примера. Как я уже говорил их 6. При прошивке данного скетча у вас автоматически устанавливается текущее время. Оно берётся из системного времени установленного на вашем компьютере, но вы также можете изменить его с помощью кнопки подключенной к 6 пину вашей Ардуино. На видео вы видите 2 кнопки. Вторая осталась с предыдущего примера, я не стал её убирать. Схему подключения я покажу чуть позже.

Для выбора действия надо нажать кнопку и удерживать её некоторое время. На экране часовая стрелка окрасится в жёлтый цвет и начнёт двигаться быстрее. И пока вы её не отпустите она будет двигаться. Если вы отпустили раньше времени, то можете снова нажать и удерживать кнопку и время будет идти дальше. Для выхода из режима вам надо коротко нажать на кнопку и жёлтой станет минутная стрелка. Алгоритм настройки тот же. Удерживаем и изменяем минуты. Минутная стрелка будет двигаться по кругу, но это никак не повлияет на часовую стрелку.
Нет я не правильно выразился. Часовая тоже будет передвигаться, но в пределах своего часа. Если минутная стрелка показывает ровно час, то  и часовая тоже показывает час, а если на минутной 30 минут, то и часовая стоит по середине часа. Надеюсь понятно объяснил.
Проверим, изменяется ли время на модуле часов. Для этого выйдем из этой программы и перезальём другой скетч. Запомним, что сейчас 11 часов. На секунды можно не смотреть, так как пере прошивка Ардуино займёт некоторое время.

Как видите на этих часах время тоже изменилось на 23 часа. Всё работает. Если захотите сделать себе такие же часы, то можете посмотреть схему соединения, там ничего сложного.
Для работы этого примера мы будем использовать аж две шины. I2C и SPI.
Часы подключаются по шине I2C ко входам А4 и А5, а дисплей по SPI к выходам D13, D11, D9, D8.
Кнопка запуска настройки часов к D7, а кнопка установки даты и времени к D6.
Так как логика дисплея работает от 3.3 вольт, то и на входы надо подавать 3 вольта, Ардуино же выдаёт 5 вольт. Чтобы входы дисплея не сгорели надо использовать делитель напряжения или специальные платы преобразователи логического уровня с 5 вольт на 3 вольта. Это конечно если поступать правильно, но в жизни всё не так однозначно. Я например подключил напрямую, без резисторов и всё прекрасно работает. Но я это я, а вы это вы. И как будете делать вы это ваше дело.
Так же я не использовал в схеме последний контакт BLK. В даташите пишут что его можно подключить к 3. 3 вольта, а можно и не подключать. Я пробовал и так и так разницы не было. Поэтому чтобы не тянуть лишних проводов, я его не подключал.

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

На этом думаю можно закончить это видео. Скетч я сегодня объяснять не буду, я его хорошо прокомментировал и думаю, что тем кто захочет будет всё и так понятно. У меня есть ещё несколько очень интересных идей с этим дисплеем, думаю вам они понравятся. Так что сами знаете что надо делать. Про лайкать, про комментировать и про подписаться. А на этом пока, пока, до скорой встречи.