Tm1637 zip библиотека: GyverLibs/GyverTM1637: Бибилотека для 7 сегментного дисплея на чипе 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 от других – это его компактность, он не дорогой, и управление всего по двум проводам.

Подключение дисплея 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 2047Скачать
Пример 2. Вывод слов на модуль TM1637.ino1 Kb 1207Скачать
Пример 3. Вывод данных с датчиком с символами.ino1 Kb 1136Скачать
скачать библиотеку TM1637 (Доп символы).zip11 Kb 2002Скачать
datasheet-TM1637.pdf685 Kb 913Скачать
TM1637.cpp (доп.символы).zip2 Kb 1517Скачать

Китайский дисплей на TM1637 на 6 символов и библиотека на AVR Bascom, и пример его применения в частотомере.

    Решил я как-то попробовать данную китайскую продукцию, не задумываясь о програмной части, и ко всему — так как надо было сделать устройство с минимальными трудозатратами, выбрал AVR Bascom. Порывшись в интернетах я так и не смог на то время найти вариант решения вопроса с подключением данного дисплея, и было решено написать свою подпрограммку, которая в итоге переросла в некое подобие библиотеки для выбранной среды.

    Дисплеи были куплены в местном магазине, и фирма производитель у них RobotDyn.

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

    TM1637 — оказалась достаточно интересной микросхемкой, и имея динамичесскую индикацию — порадовала высокой частотой развертки. Из приятных функций на борту оказалась возможность регулировки яркости дисплея, при этом всём контроллер не должен заниматься лишней работой по отрисовке, и цена за модуль вполне вменяемая.

    Я уже не помню точно очередность разрядов (писам код давно), так что просто выложу программу с примером и описанием «внедрения» данного кода.

    Входные данные — строковые, до 12 символов (это с учетом знаков децимальных точек).

    В самом начале добавляем ссылку на файл, и на всякий случай включаем опцию Submode = New:

Config Submode = New

$include «TM1637_core. inc»

    В блоке инициализации портов добавляем инициализацию пинов, к которым подключен дисплей:

Config PortC.0 = Output                                     ‘for TM1637 clock

Config PortC.1 = Output                                     ‘for TM1637 data

TM1637_clk Alias PortC.0

TM1637_dout Alias PortC.1

TM1637_din Alias PinC.1

    Для вывода информации на дисплей рекомендуется использовать буфер длинной 13 байт:

Dim DataTM As String * 13                                   ‘Регистры данных дисплея

    Перед началом программы инициализируем дисплей, заодно установив яркость (регулируется от 0 до 8):

Tm1637_clear                                                 ‘Очистка дисплея
Tm1637_on 5                                                  ‘Настройка яркости (0-8)
TM1637 »     0″                                               ‘Вывод нуля

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

Digit:
Data &B01011000                                      ‘/( 0x28
Data &B01001100                                      ‘/)
Data &B01100011                                      ‘*

…………

    Все дополнительные части кода есть в файле библиотеки, или в программе примере — частотомере.

    Которко о программе частотомера. Он был сделан для определенных целей, а не как универсальный измерительный прибор, и на дисплей выводятся значения частоты от 0 до 999999Гц, без запятых и изменения диапазонов (а это можно организовать без проблем), так-же в данной программе из-за не точного времени зимерения — может быть погрешность, так что — как есть. Если кому-то необходимо от этого частотомера что-то еще — исходник в вашем распоряжении. Я обычно пишу программы на ассемблере, но когда речь заходит о минимальных затратах времени, и что-бы хоть как-то работало — Bascom.

    И еще немножко по частотомеру. Схему не прикладываю потому что вся схема это 3 провода:

A0 — Clock TM1637

A1 — Data TM1637

D5 — Вход частоты

    Основа — Arduino Nano V3.0.

    Исходники программы примера, а так-же файл библиотеки: FreqCount_TM1637.zip, TM1637_Core.zip

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 Display:

  • . Портабельные размеры
  • Особенности 3,3V — 5,5V Ropective Travage
  • 40054434434434434434434434. имеет до восьми уровней яркости, которые можно настроить

  • Кроме того, вы получаете доступ к четырем буквенно-цифровым цифрам
  • Активный потребляемый ток 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 Проект – Building Actuliino с TM -Building Actuliino с TM1637737373739229 33.0024

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

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

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

Код проекта Arduino

Код проекта Arduino

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

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

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

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

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

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

Мэтьюз Питер

Мэтьюз Питер

Давайте создадим цифровые настольные часы с наименьшими усилиями.
Вот требования.

  • Arduino Uno и его USB-кабель.
  • Ноутбук с установленным программным обеспечением Arduino SDK.
  • 7-сегментный дисплей с 4 цифрами и 2 точками на основе TM1637.
  • Аккумулятор 9 вольт, переходник питания для Arduino от аккумулятора.
  • 4 комплекта соединительных проводов с вилкой на одной стороне и розеткой на другой стороне.
  • Односторонний скотч и двусторонний скотч.
  • Лезвие для термокола, ножницы, клей и обычная белая бумага размером 5 см на 5 см.
  • Корпус, который для меня является внешним корпусом Xiaomi M.I. мобильный телефон. Тонкий пластиковый футляр или картонная крышка также подойдут.

Шаг 1: Электронное оборудование.

Подключите контакт заземления Arduino G.N.D к контакту заземления TM1637 G.N.D.

Затем подключите контакт питания Arduino 5 вольт; к контакту TM1637 V.C.C.

Подключите цифровой контакт 2 Arduino к контакту TM1637 C.L.K или часам.

После этого подключите цифровой контакт 3 Arduino к контакту D.I.O TM1637 или цифровому входу-выходу.

Затем подключите внешний источник питания на 9 вольт к Arduino с помощью разъема Barrel.

Наконец, подключите USB-кабель к компьютеру и Arduino.

Шаг 2: Библиотеки программного обеспечения.

Установите 2 программные библиотеки.

Первый — TM1637Display dot h. Скопируйте содержимое URL-адреса. http://robojax.com/learn/arduino/robojax-TM1637.zip в библиотеки папки вашей установки Arduino, которая обычно находится в C:\program files\Arduino\libraries.

Второй — Timer One dot h. Скопируйте содержимое URL-адреса. https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/arduino-timerone/TimerOne-r11.zip в папку с библиотеками вашей установки Arduino, обычно это C:\ файлы программы\Ардуино\библиотеки.

Спасибо You-tube-каналу Robojax https://www.youtube.com/watch?v=DuamjlstOKM&t=80s и Полу Маквортеру, чей You-tube-канал https://www.youtube.com/watch?v=QhIm6e5Ah54. .

Шаг 3: Код.

Скопируйте код с https://drive.google.com/open?id=1CFQ-H6M_Rjt00_INaW86TWxDTE9UcxEf и загрузите в Arduino.

Этот код использует внутренний таймер Arduino для отслеживания времени. РТК нет. или Часы реального времени, чтобы следить за временем, если батарея и питание USB удалены. Жестко заданное время инициализируется в функции настройки. Таймер прерывания настроен на вызов функции «Repeat_Half_Second» каждые полсекунды. Две точки на дисплее мигают каждые полсекунды. Секунды, минуты и часы отсчитываются на основе триггеров прерывания в полсекунды.

Часы должны продолжать отсчет времени с установленного времени. Не снимая аккумулятор, извлеките USB-накопитель. кабель. Теперь это формирует скелет цифровых настольных часов.

Шаг 4: Упаковка

Эта часть требует наибольшего творческого подхода и усилий, потому что внешний вид имеет наибольшее значение для конечного продукта. Если это выглядит некрасиво, это не будет хорошо вообще. Я использовал коробку для мобильного телефона от Xiaomi M.I. для упаковки. Коробка Apple I Phone также должна быть достаточно хорошей. Создайте квадратные разрезы, примерно соответствующие размеру дисплея. Используйте двусторонний скотч внутри коробки, чтобы закрепить дисплей, Arduino и аккумулятор. Используйте виолончельную ленту, чтобы аккуратно расположить соединительные провода.
Внешнее отверстие, где установлен дисплей, окружите новой бумагой или пластиком, чтобы скрыть неровности разрезов. На коробку можно нанести больше художественных работ или творчества. Персонализированные фотографии или сообщения могут быть прикреплены.

Возможны проблемы или обновления в указанном выше проекте:
  • Электроэнергия не используется, что приводит к дорогостоящему использованию батареи.
  • Не оптимизирован для использования электроэнергии.
  • RTC или часы реального времени не используются.
  • Ручная установка времени невозможна, без компьютера и Arduino S.D.K.
  • Замена платы Arduino самым простым и дешевым набором электроники, который по-прежнему будет запускать код.

Электроэнергию можно легко использовать. Просто замените аккумулятор зарядным устройством для мобильного телефона с номинальным выходным током не менее 1 ампера и номинальным выходным напряжением постоянного тока от 5 до 12 вольт.

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

Ток, потребляемый платой Arduino, = около 200 миллиампер.

Ток, потребляемый платой Arduino, = около 80 миллиампер.

Общий потребляемый ток = около 280 миллиампер.

Напряжение, при котором потребляется этот ток, составляет 9 вольт.

Потребление электроэнергии = напряжение, умноженное на ток. В единицах измерения ватт равен напряжению, умноженному на ампер.
Мощность
= 280 миллиампер, умноженная на 9 вольт, что примерно равно 2,5 Вт.

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

Таким образом, если часы использовались полный рабочий день в течение одного месяца, потребление энергии = 2,5 ватт умножить на 24 часа умножить на 30 дней, что равно 1800 ватт-час. Это составляет 1,8 единицы электроэнергии, которая в Индии стоит от 5 до 10 рупий в месяц.

Напротив, при использовании 9-вольтовой батареи время работы составляет около одного часа. Стоимость около 40 рупий за один час.

В общем, добавьте максимальный номинальный ток всех компонентов.

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

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