8-900-374-94-44
[email protected]
Slide Image
Меню

Arduino tm1637 библиотека: Arduino подключение дисплея на TM1637

Урок 23. Подключение сегментного дисплея TM1637 к Arduino.

Сегодня в уроке подключим семисегментный индикатор TM1637 к Arduino. Установим библиотеку TM1637.h и научимся выводить на дисплей цифры и некоторые символы.

Как устроен и из чего состоит модуль TM1637.

Характеристики Индикатора на TM1637:
• Напряжение питание: 5,5В
• Потребляемый ток 0.2 — 80мА (в зависимости от горящих сегментов)
• Градаций яркости индикаторов — 8
• Размеры платы: 42×24мм
• Двух проводной последовательный интерфейс (CLK, DIO).

Фото модуля от магазина RobotDyn фронтальный вид.

Фото модуля от магазина RobotDyn вид с тыльной стороны.


Этот модуль собран на драйвере TM1637.
• Есть модули красного, синего, зелёного, белого цвета.
• Размеры 0,36” и 0,56”

В уроке будем использовать модуль TM1637 0,56”, зеленого цвета.

Возможности модуля TM1637:
• Зажигать сразу все знаки или по одному сегменту или символу,
• Выводить цифры от 0 до 9 и некоторые буквы. Смотри ниже.
• Цифры могут выводиться как с нулями слева, так и без них,
• 8 градаций изменения яркости.
• Вывод символа в определённую позицию (ячейку).

Отличие модуля индикатора на TM1637 от других – это его компактность, он не дорогой, и управление всего по двум проводам.


Для урока понадодиться:

  • ARDUINO NANO. Купить можно на AliExpress или в России.
  • Семисегментный индикатор TM1637
    . Купить можно на AliExpress или в России.
  • Провод DuPont. Купить можно на AliExpress или в России.
  • Плата макетная беспаечная 55х82х8.5 мм. Купить можно на AliExpress или в России.

Подключение дисплея TM1637 к Arduino

Подключить дисплей можно к любым цифровым пинам Ардуино. В нашем случае будем подключать к Arduino NANO по схеме.

Arduino Nano [PIN 5V] — TM1637 Module[PIN 5V]

Arduino Nano [PIN GND] — TM1637 Module[PIN GND]

Arduino Nano [PIN 2] — TM1637 Module[PIN DIO]

Arduino Nano [PIN 3] — TM1637 Module[PIN CLK]

Установка и настройка библиотеки TM1637.h.

Установить библиотеку TM1637.h можно из менеджера библиотек. Для этого откроем

Arduino IDE, перейдем в раздел Скетч-> Подключить библиотеку -> Управление библиотеками.

Затем в строке поиска наберем TM1637. И установим библиотеку Grove 4-Digit Display.

Вы также можете скачать библиотеку TM1637 внизу урока, в разделе «материалы для скачивания».

Настройка библиотеки TM1637 для вывода дополнительных символов.

Библиотека позволяет вывести цифры и некоторые символы на дисплей.

Для реализации простых проектов, таких как часы, индикаторы и счетчики, этого набора символов достаточно. Я реализовывал часы с выводом температуры и влажности: Arduino часы. Видео 2. Подключаем к Arduino TM1637 и датчик DHT11.

Для отображения температуры использовал символ «С» номер для вывода на индикатор 12и для отображения влажности использовал символ «F» номер для вывода на дисплей 15.

Но для некоторых проектов на Arduino не достаточно данного набора символов. Расширить его достаточно легко, для этого в файле TM1637. cpp библиотеки находим массив TubeTab[] и добавляем нужные коды символов.

Список добавленных символов в файле TM1637.cpp, библиотеки TM1637.

После чего данные символы можно использовать в своих проектах.

Если захочется закодировать свой символ, то можно использовать следующую таблицу:

После кодирования сегментов, установив нужные биты в байте, для сокращения записи можно перевести байт из двоичного в шестнадцатиричный формат, как — b00011110 -> 0x1E.


Пример кода для вывода информации на семисегментный индикатор с драйвером TM1637.

Пример 1. Вывод времени с мигающим двоеточием.

В данном примере выведем 4 цифры на индикатор TM1637, и научимся мигать двоеточием каждую секунду. Данный пример поможет вывести любую цифровую информацию: время, счётчики, показания с датчиков.

Пример 2. Вывод слов на модуль TM1637.

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

Пример 3. Выводданных с датчиком с символами.

Мы научились выводить цифры и слова на дисплей. Как же сделать динамическое изменение значений на дисплее. При этом добавлять символы для индикации различных данных.

Тут поможет нам посимвольный вывод данных на дисплей. Например, запись tm1637.display(0, 5) выводит первый символ на дисплей 5. Аналогично выводятся остальные 3 символа.

Для разделения числа на десятки и единицы, для нахождения единиц нужно найти остаток от деления на 10, и для получения десяток нужно число делить на 10.

И после числового значения выведем символ, например, для температуры символ «С».

Пример применим при выводе даты, времени и показаний с датчиков.

Появились вопросы или предложения не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке

Файлы для скачивания

Скачивая материал, я соглашаюсь с Правилами скачивания и использования материалов.

Пример 1. Вывод времени с мигающим двоеточием.ino1 Kb 2296Скачать
Пример 2. Вывод слов на модуль TM1637.ino1 Kb 1385Скачать
Пример 3. Вывод данных с датчиком с символами.ino1 Kb 1308Скачать
скачать библиотеку TM1637 (Доп символы).zip11 Kb 2245Скачать
datasheet-TM1637.pdf685 Kb 1050Скачать
TM1637.cpp (доп.символы).zip2 Kb 1687Скачать

Дисплей на TM1637, часы с синхронизацией по NTP и программирование «народных» WiFi в среде Ардуино

Сначала хотел посвятить свой «юбилейный» 50-й обзор ESP8266 ES07 купленных за очень «вкусную» цену вместе с платами-адаптерами. Но обзор этих модулей я уже делал. Здесь же хочу рассказать, как можно делать свои поделки, в частности часы на семисегментном индикаторе, программируя эти «народные» WiFi в популярное среде Arduino IDE

Начнем с модулей:
Для своих проектов я искал семисегментные индикаторы, яркие и компактные.

Сделал ряд проектов на индикаторах с драйверами MAX7219

Недавно покупая на Алиэкспрессе всякую мелочевку наткнулся на эти индикаторы, на микросхеме TM1637. Мне понравилось компактное исполнение, невысокая цена и управление всего по двум проводам. Заказал парочку вместе с кучей других деталек.

Модули приехали запаянные в пакетики

Характеристики:

  • Питание 3.3 — 5.5В
  • Потребляемый ток 0.2 — 80мА (в зависимости от горящих сегментов)
  • Градаций яркости индикаторов — 8
  • Размеры платы: 42×24мм

Четыре штырьковых контакта для подключения:
VCC — питание, GND — земля и два управления CLK и DIO по аналогии с интерфейсом I2C. Большое спасибо, что контакты идут вбок, а не вверх, как на некоторых платах.

Вместе в посылке пришли и ESP8266 ES07, о которых упоминал в начале статьи. Подробно написал про них в своем блоге.

Последнее время много ковырялся с ESP-шками и решил опробовать индикаторы именно с ними. Особенностью данной реализации стало программирование из среды Arduino IDE.
Настройка Arduino IDE для работы с ESP8266 хорошо описана здесь

Хочу немного добавить, что купленные мною модули ESP-07 распаянные на платы-адаптеры уже практически готовы к использованию. Подключаем TX/RX и GND к TTL-USB конвертеру, например, такому. Подключаем питание 3.3В к VCC. Для загрузки прошивки GPIO0 присоединяем к земле. Собственно и все. Подключить GPIO0 и RESET к данному конвертеру у меня не получилось, но это оказалось не сильно нужно. При подсоединенном GPIO0 к земле ESP находится в режиме загрузки прошивки во флэш-память, но после загрузки происходит запуск программы без отсоединения данного GPIO. Это позволяет вполне комфортно отлаживать свою программу. Нужно перед загрузкой только перезагрузить модуль передергиванием питания или кратковременно подав на вывод RESET на землю. Для этого можно припаять специальную кнопку.

На фотке немного другой модуль ES12 из предыдущей партии. Конденсатор установлен для повышения стабильности работы. Последние модули использую без них.

Итак модуль подключен, среда настроена. Для ES07 все настройки ESP8266 ставятся «по умолчанию»:

Для работы с дисплеем на TM1637 я взял готовую библиотеку для Ардуино DigitalTube. «По умолчанию», дополнительные библиотеки устанавливаются в каталог: «Мои документы\Arduino\libraries\». Чтобы оправдать использование WiFi-модуля, эти часы буду синхронизировать время с NTP сервером в интернете.

Подключаем ESP, дисплей к CLK -> GPIO4, DIO ->GPIO5, стабилизатор 3.3В и USB-TTL конвертер макетными проводами

Грузим скетч, который можно взять здесь.
Настраиваем параметры своей точки доступа: AP_SSID и AP_PASS, свою таймзону TIMEZONE. У меня установлена для Перми/Екатеринбурга. Для Москвы будет 3.
Функцией tm1637.set(2) устанавливаем необходимую яркость индикатора от 0 до 7.
Компилируем:

Готово. Часы показывают часы и минуты, мигая двоеточием. Время точное из интернета, синхронизируется с NTP сервером. При длительном отсутствии соединения происходит перезагрузка ESP-шки.

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

Полезные ссылки

  • Даташит на TM1637
  • Библиотека для работы с TM1637 для Arduino
  • Работа с ESP8266 в Ardiono IDE
  • Описание NTP протокола

А это помощник:


TM1637: подробное руководство для начинающих

TM1637

Источник: Платформа Arduino

Вы ищете способ отображения цифр на микроконтроллере Arduino? Тогда вам нужен 4-разрядный 7-сегментный дисплей TM1637.

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

Однако для обычного 4-разрядного 7-сегментного дисплея требуется двенадцать контактов и тонны проводов. К счастью, TM1637 уменьшает количество контактов до четырех.

Два контакта управляют питанием, а два других контакта управляют сегментами.

Таким образом, в этой статье вы узнаете все о TM1637 и о том, как связать его с платой Arduino.

Готовы? Приступим к делу.

Что такое TM1637?

Светодиодный дисплей

Источник: FreeSVG

Конструкция TM1637 позволяет отображать числа. Кроме того, модуль оснащен четырьмя 7-сегментными дисплеями, которые работают вместе для создания цифр. Модуль TM1637 работает на основе микросхемы TM1637, отсюда и название дисплея TM1637.

Конфигурация контактов TM1637

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

TM1637 Конфигурация PIN -конфигурации

TM1637 Особенности и спецификации

Вот функции и спецификации TM1637 Дисплей:

  • Имеют портативные размеры
  • . имеет до восьми уровней яркости, которые можно настроить
  • Кроме того, вы получаете доступ к четырем буквенно-цифровым цифрам
  • Потребляемый активный ток 80 мА
  • Рабочая температура от -10°C до +80°C
  • Также поставляется с двухпроводным интерфейсом

Как работает модуль TM1637

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

Следовательно, вы будете отправлять числа, которые хотите отобразить на интерфейсе TM1637, в форме последовательных данных. Кроме того, вы можете использовать этот модуль только с регулируемым источником питания +5 В. Все, что выше, может привести к необратимому повреждению.

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

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

Также вам необходимо загрузить эти библиотеки и использовать их в своих прикладных программах. Вы можете найти эти библиотеки на разных сайтах.

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

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

Взаимодействие 4-разрядного 7-сегментного дисплея TM1637 с Arduino

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

7-сегментный дисплей

Источник: Pixnio

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

Светящийся сегмент является частью числовой, шестнадцатеричной и десятичной дроби. Вы можете пометить каждый сегмент от A до G. Когда вы устанавливаете компонент HIGH или LOW, вы можете создать желаемый символ.

Обзор аппаратного обеспечения модуля TM1673

TM1673 поставляется с недорогим последовательным драйвером светодиодов и имеет различные функции, включая управление яркостью светодиодов и управление включением/выключением. Он также может получить доступ к каждому из сегментов.

Он также оснащен четырьмя 7-сегментными дисплеями с диагональю 0,36 дюйма, которые отображают данные о температуре или датчиках, с двоеточием посередине, что упрощает создание проектов, основанных на времени или часах.

Подключение модуля TM1637 к Arduino UNO

Подключить модуль TM1637 к Arduino UNO очень просто. Вам нужно всего лишь подключить четыре провода, в том числе два для управления дисплеем и два для питания.

Вы можете безопасно питать модуль от 5-вольтового выхода Arduino. Вы также подключите DIO и CLK к контактам 3 и 2 платы Arduino. Таким образом, вы можете свободно менять соединения контактов, но обязательно измените их в своем коде.

Установка библиотеки

Как мы упоминали ранее, вам понадобится библиотека для связи с микросхемой TM1637. Доступны различные библиотеки, но мы будем использовать одну, написанную «Авишай Опаз». Попасть в библиотеку можно здесь.

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

Вот как установить библиотеку TM1637: 

  • Сначала откройте среду разработки Arduino и перейдите в Sketch > Включить библиотеку > Управление библиотеками.
  • Затем подождите, пока менеджер библиотек Arduino загрузит индекс библиотек и обновит список установленных библиотек.
  • Затем найдите TM1637 и выберите библиотеку Авишай Опаз.
  • Теперь вы можете нажать «Установить», чтобы начать установку библиотеки.

Код Arduino

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

Код Arduino

Arduino Code

Код Arduino

Код Arduino

Arduino Project – Building AclockIno с TCLION3777373737373773737373737373737373737379 33373737373737379

3.0024

Вы можете соединить модуль TM167 с модулем RTC DS3231, чтобы получить работающие 24-часовые цифровые часы.

Сначала подключите дисплей TM1637 и модуль RTC DS3231 и загрузите следующий код.

Код использует библиотеку Adafruit RTC и отображает время в 24-часовом формате.

Код проекта Arduino

Код проекта Arduino

Заключительные слова

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

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

Кроме того, он упрощает подключение 12-контактного модуля дисплея благодаря использованию всего четырех контактов. И у него есть разные библиотеки, которые упрощают общение с чипом TM1673, чем с другими модулями.

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

Если у вас есть какие-либо вопросы, свяжитесь с нами, и мы будем рады помочь.

TM1637 vs arduino-tm1637 — сравнить отличия и отзывы?

Библиотека Arduino для TM1637 (драйвер светодиода) (от avishorp)

Предлагать темы

Исходный код

Библиотека Arduino для использования 4-разрядного семисегментного дисплея с ИС драйвера TM1636 или TM1637 (от bremme)

Предлагать темы

Исходный код

Наши крупные спонсоры

  • InfluxDB — Доступ к самой мощной базе данных временных рядов в качестве услуги
  • Сонар — Писать чистый код C++. Всегда.
  • SaaSHub — Альтернативы программного обеспечения и обзоры

Наши замечательные спонсоры

ТМ1637 ардуино-тм1637
Проект
9 Упоминания 1
368 Звезды 154
Рост
0,0 Активность 0,0
почти 2 года назад Последний коммит 10 месяцев назад
С++ Язык С++
Стандартная общественная лицензия ограниченного применения GNU только v3.0 Лицензия Стандартная общественная лицензия GNU только v3.0

Число упоминания указывает общее количество отслеженных упоминаний плюс количество альтернатив, предложенных пользователями.
Stars — количество звезд, которое имеет проект на GitHub. Рост — ежемесячный рост звезд.
Активность — относительное число, показывающее, насколько активно разрабатывается проект. Недавние коммиты имеют больший вес, чем старые.
Например, активность 9,0 указывает на то, что проект входит в число 10% лучших из наиболее активно развивающихся проектов, которые мы отслеживаем.

TM1637

Посты с упоминаниями или отзывами о TM1637 . Мы использовали некоторые из этих сообщений, чтобы составить список альтернатив. и подобные проекты. Последнее было 23 февраля 2023 года.

  • STM32F1 Pull-up на выходе с открытым стоком

    2 проекта | reddit.com/r/встроенный | 23 фев 2023

    Я нашел библиотеку для платформы Arduino, которая, кажется, работает так, как я хочу (https://github.com/avishorp/TM1637/blob/master/TM1637Display.cpp), но также делает некоторые странные вещи, такие как не на самом деле запись на контакты как выходы, но изменение их режима с входа на выход (и я не знаю, чего это должно достичь, поэтому я не могу это скопировать, но это работает)
  • Получил сегментный дисплей Amazon 7, не могу заставить его работать с Флорой

    2 проекта | reddit. com/r/adafruit | 11 января 2022 г.

    Чип драйвера представляет собой TM1637 и имеет интерфейс связи, подобный i2c. Я не вижу библиотеки adafruit для этого чипа (поскольку я не думаю, что они продают дисплей с этим чипом), но вы можете использовать эту библиотеку, которая довольно популярна для TM1637: https://github.com/avishorp/TM1637
  • Совместное использование вывода с несколькими светодиодными дисплеями TM1637

    3 проекта | reddit.com/r/ардуино | 30 авг 2021

    Сначала я подумал, что это I2c, но это не так. Я нашел некоторую информацию, которая может быть полезна в ссылках ниже. У меня есть 2 предположения (не ответы) о том, как использовать кратные этому дисплею. 1. Используйте мультиплексор I2C TCA9548A, используйте I2C, чтобы указать TCA9548A выбрать порт. используйте «TM1637Display library» для доступа к дисплею https://github.com/avishorp/TM1637 2. Используйте «Библиотеку дисплеев 1M1637» для доступа к дисплею, но выберите разные пары контактов. https://github.com/avishorp/TM1637 ————————————————— ————————————— Сравнение протокола TM1637 с протоколом I2C https://green-possum-today.blogspot.com/2018/10/a-comparison-of-tm1637-protocol-with.html Вот пример (использует библиотеку, указанную выше) Пример кода Arduino для 4-значного 7-сегментного дисплея TM1637
    TM1637 4-digit 7-segment LED display Arduino tutorial
    ТСА9Мультиплексор I2C 548A https://www.adafruit.com/product/2717

    3 проекта | reddit.com/r/ардуино | 30 авг 2021

    Мне наконец удалось заставить все 5 дисплеев надежно работать только с 6 контактами, используя упомянутую вами библиотеку с https://github.com/avishorp/TM1637. Просто для протокола: с этой библиотекой не имеет значения, использовал ли я обычные часы или общий вывод данных.

arduino-tm1637

Посты с упоминаниями или отзывами о arduino-tm1637 .

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *