Тм1637 как проверить работоспособность

от admin

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

Сегодня мы постараемся разобрать подключение TM1637 к Arduino (в любительских проектах), работу данного LED индикатора и его технические характеристики. Но для начала обозначим более конкретно предназначение и обозначение устройства.

Речь идет о семисегментном индикаторе на основе чипа TM1637. Он более функционален по сравнению с бюджетными LCD дисплеями (хотя также стоит не дорого). Кроме того, модуль имеет компатный размер, большую вариативность цветовых оттенков сечений (белый, желтый, синий, зеленый, красный), а также специальный часовой разделитель (в виде разделительных точек — двоеточия). Именно потому индикатор часто используют в проектировании DIY часов.

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

7 сегментный дисплей с контроллером TM1637, очень дешёвый и удобный модуль для создания часов. Контакты CLK и DIO подключаются к любым цифровым пинам МК.

БИБЛИОТЕКА

GyverTM1637 v1.4

GyverTM1637 – бибилотека для 7 сегментного дисплея на чипе TM1637 с кучей приколюх

  • Вывод цифр массивом или прицельно
  • Вывод букв из списка доступных (листай ниже) массивом или прицельно
  • Отдельная функция вывода часов и минут (часы без нуля слева, минуты с нулём)
  • Вывод числа от -999 до 9999 с учётом знака
  • Готовая функция бегущей строки
  • Функции смены яркости и состояния двоеточия автоматически обновляют дисплей
  • Функция обновления значения с эффектом вертикальной прокрутки
  • Функция обновления значения с эффектом скручивания (лучше один раз увидеть)

Совместима со всеми Arduino платформами (используются Arduino-функции)

УСТАНОВКА

  • Библиотеку можно найти и установить через менеджер библиотек по названию GyverTM1637 в:
    • Arduino IDE (Инструменты/Управлять библиотеками)
    • Arduino IDE v2 (вкладка “Library Manager”)
    • PlatformIO (PIO Home, вкладка “Libraries”)

    ДОКУМЕНТАЦИЯ

    ПРИМЕРЫ

    КАК ВЫВЕСТИ БУКВЫ?
    В файле TM1637.h есть список букв, которые я добавил для удобного вывода, чтобы вывести, нужно использовать один из вариантов с функцией displayByte(). Следующий код выведет букву a в самый левый порт дисплея

    КАК ВЫВЕСТИ СТРОЧКУ?
    Давайте выведем строчку HELL . Для вывода слов удобнее использовать следующий вариант:

    Ну и конечно, можно задать массив букв из библиотеки и пользоваться им:

    КАК СДЕЛАТЬ БЕГУЩУЮ СТРОКУ?

    Очень просто, есть готовая функция runningString(). В качестве аргументов передаётся массив символов, длина строки и пауза-задержка вывода, то есть скорость бега бегущей строки. Для начала задаём массив, используя буквы из библиотеки или коды символов вида _буква:

    Далее скармливаем его функции runningString(). Длина выводимой строки определяется функцией sizeof, по другому не получилось. Здесь 300 – время в миллисекундах между обновлениями экрана, т.е. скорость движения строки.

    КАК ЗАДАТЬ СВОЙ СИМВОЛ?

    На картинке справа показано, каким образом строится “код” символа: то есть в каком порядке расположены биты индикаторов и как они включаются и выключаются. Поняв закономерность, вы сможете задать любую конфигурацию светящихся индикаторов в одном порте. Вывести символ можно одним из вариантов функции displayByte.

    ОНЛАЙН-ГЕНЕРАТОР СИМВОЛОВ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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 к Arduino UNO

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

    Установить библиотеку TM1637.h можно из менеджера библиотек. Для этого откроем Arduino IDE, перейдем в раздел Скетч-> Подключить библиотеку -> Управление библиотеками.

    Установить библиотеку TM1637.h

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

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

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

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

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

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

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

    Но для некоторых проектов на Arduino не достаточно

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

    TM1637.cpp библиотеки

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

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

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

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

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

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

    После кодирования сегментов, установив нужные биты в байте,

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

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

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

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

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

    В данном примере выведем 4 цифры на индикатор TM1637,

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

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

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

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

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

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

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

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

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

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

    Для разделения числа на десятки и единицы

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

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

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

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

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

    Подключение 4-х символьного семисегментного индикатора TM1637 к Arduino

    Если вы захотите в своем проекте использовать четыре обычных семисегментных индикатора, то для управления ими вам потребуется задействовать цифровых контактов микроконтроллера. Для платы Arduino – это почти все ее доступные цифровые контакты. Решить данную проблему с использованием большого количества контактов микроконтроллера можно за счет специализированных модулей семисегментных индикаторов, позволяющих управлять данными индикаторами с помощью относительно небольшого числа контактов. Одним из подобных модулей является модуль 4-х символьного семисегментного индикатора TM1637 (TM1637 Based 4 Bits Red Digital Tube LED Display Module). В данной статье мы рассмотрим принципы его работы и его подключение к плате Arduino.

    Также на нашем сайте мы рассматривали и другие проекты с использованием 4-х символьных семисегментных индикаторов:

    Необходимые компоненты

    1. Плата Arduino Uno (купить на AliExpress).
    2. Модуль TM1637 (купить на AliExpress).

    Принципы работы модуля семисегментных индикаторов TM1637

    Общие принципы работы модуля

    TM1637 представляет собой разновидность контроллера светодиодных дисплеев. Также данная микросхема позволяет управлять яркостью подключенных дисплеев (индикаторов). Микросхема поставляется в корпусах типа DIP и SOIC и находит широкое применение в микроволновках, индукционных электроплитах и других бытовых электрических устройствах.

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

    Рабочее напряжение для модуля составляет от 3.3V до 5V, а для приема данных он использует двухпроводную шину (two-wire bus), а не интерфейс I2C как в большинстве ЖК и OLED дисплеях. Для получения более подробной информации по модулю TM1637 вы можете посмотреть даташит на него.

    Распиновка модуля семисегментных дисплеев TM1637

    Распиновка модуля TM1637 показана на рисунке ниже. Он содержит 4 контакта: CLK, DIO, VCC и GND. Все эти контакты являются цифровыми, за исключением контактов VCC и GND.

    Распиновка модуля TM1637

    CLK – входной контакт синхронизации. Необходимо подключить к любому цифровому контакту платы Arduino Uno.

    DIO – контакт приема последовательных данных (Serial Data I/O pin). Необходимо подключить к любому цифровому контакту платы Arduino Uno.

    VCC – контакт подачи питания на модуль. Можно подключить к источнику питания с напряжением от 3.3V до 5V.

    GND – общий провод (земля).

    Компоненты модуля семисегментных дисплеев TM1637

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

    Компоненты модуля TM1637

    Модуль TM1637 состоит из двух частей: первая – это 4-х символьный семисегментный дисплей, а вторая – микросхема управления им TM1637, которая поддерживает широкий набор функций, начиная включением/выключением дисплеев/индикаторов и заканчивая регулировкой их яркости. Микросхема также содержит буфер данных, что позволяет передавать ей сразу все пакеты данных, а она будет отображать эти данные на дисплеях последовательно, что высвобождает ресурсы микроконтроллера для решения других задач.

    Наиболее часто задаваемые вопросы про модуль TM1637

    Что представляет собой микросхема TM1637?
    Она представляет собой разновидность схемы драйвера светодиодными дисплеями с интерфейсом сканера клавиатуры и внутренне интегрированная с цифровым интерфейсом микроконтроллера, триггером данных, драйвером светодиодов и сканером клавиатуры.

    Использует ли модуль интерфейс I2C?
    Нет, не использует. Он использует цифровой интерфейс, поэтому его можно подключать к любым цифровым контактам микроконтроллеров (плат).

    Какие типы семисегментных индикаторов существуют и какой из них использует модуль TM1637?
    Существует два типа семисегментных индикаторов: с общим катодом (CC) и общим анодом (CA). Разница между ними состоит лишь в том, что в дисплее с общим катодом все катоды семи сегментов соединены вместе, а в дисплее с общим анодом вместе соединены все аноды сегментов. Модуль TM1637 использует семисегментный индикатор с общим катодом.

    Схема модуля семисегментных дисплеев TM1637

    Схема модуля семисегментных дисплеев TM1637 представлена на рисунке ниже. Кроме микросхемы TM1637 она содержит также 4 конденсатора и 2 резистора.

    Схема модуля TM1637Схема проекта

    Схема подключения 4-х символьного семисегментного индикатора TM1637 к плате Arduino представлена на следующем рисунке.

    Схема подключения 4-х символьного семисегментного индикатора TM1637 к плате Arduino

    Как видите, его подключение к плате Arduino достаточно просто. Необходимо всего лишь подключить контакты питания модуля к контакту 3.3V или 5V платы Arduino Uno, а его линии данных подключить к цифровым контактам 3 и 4 платы Arduino Uno.

    Внешний вид собранной конструкции проекта представлен на следующем рисунке.

    Внешний вид собранной конструкции проекта

    Объяснение программы для Arduino

    Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

    Первым делом в коде программы мы подключим используемые библиотеки и зададим контакты CLK и DIO. Также укажем задержку между демонстрациями работы дисплея.

    Читать:
    Почему сопротивление амперметра должно быть малым

Похожие публикации