tm1637 индикатор

tm1637 индикатор

Сегодня мы изучим Четырехразрядный индикатор на TM1637. Он пригодится нам для сборки электронных часов с термометром и медиаплеером, которые мы начали собирать в прошлый раз, см статью DS3231 RTC Arduino.

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

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

Варианты применения. 
И хотя сейчас на смену индикаторам пришли LED дисплеи, такие индикаторы всё равно применяются в разработках.
Например часы, вольтметры, весы, индикаторы электроприборов и другое. 
Отличие модуля индикатора на TM1637 от других – это его компактность, они не дорогие, и управление всего по двум проводам.

Вот так выглядит модуль 

Индикатор TM1637         Индикатор TM1637

 

Для подключения к Arduino используется всего 4 контакта
•    VCC +5 Вольт 
•    GND - Земля
CLK и DIO в этом модуле не полностью совместимы с шиной I2C 
•    CLK - CLOCK
•    DIO – Data in Out

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

Более подробно можно посмотреть в datasheet TM1637

Для работы с модулем разработана библиотека TM1637

Как установить библиотеку я писал в статье DS3231 RTC Arduino как установить библиотеку.

Теперь самое интересное, что же может этот модуль:
•    Зажигать сразу все знаки или по одному сегменту или символу
•    Выводить цифры от 0 до 9 и некоторые буквы. См ниже.
•    Показывает цифры от -999 до 999
•    Цифры могут выводиться как с нулями слева, так и без них
•    Есть возможность выводить бегущую строку с задержкой. Функция уже заложена в библиотеку.
•    8 градаций изменения яркости.
•    Различные функции появления символов. Несколько эффектов.  
•    Вывод символа в определённую позицию(ячейку).

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

init() - инициализация 
set(n) - яркость сегментов от 0 до 7
clearDisplay() - очистить экран
point(True) - выключить/включить разделитель(две вертикальные точки)
displayInt(value) - вывести на экран четырёхзначное число
displayIntZero(value) - вывести на экран четырёхзначное число с нулями слева
display(posit, Byte) - вывести на экран символ Byte (0-9) в одну из четырёх позиций posit(0-3)
display(array) - вывести на экран массив array из четырёх символов
displayByte(posit, Byte) - вывести на экран символ Byte в одну из четырёх позиций posit(0-3)
displayByte(ARRAY_BYTE) - RRAY_BYTE - массив ( 0x7d, 0x7d, 0x7d, 0x7d )
displayByte(Byte1, Byte2, Byte3, Byte4) - вывести на экран четыре  знака
runningString(buf, sizeof(buf), delay) - бегущая строка из массива (массив, размер массива, задержка в мс)
scroll(BitAddr, DispData, delayms); - обновить значение пролистыванием (адрес, символ, задержка в мс)
scroll(DispData[], delayms); - обновить значение пролистыванием (массив символов, задержка в мс)
scrollByte(BitAddr, DispData, delayms); - обновить значение пролистыванием (адрес, БАЙТ, задержка в мс)
scrollByte(DispData[], delayms); - обновить значение пролистыванием (массив, задержка в мс)  
twist(BitAddr, DispData, delayms) - обновить значение вращением (адрес, символ, задержка в мс)
twist(DispData[], delayms) - обновить значение вращением (массив символов, задержка в мс)
twistByte(BitAddr, DispData, delayms) - обновить значение вращением (адрес, БАЙТ, задержка в мс)
twistByte(DispData[], delayms) - обновить значение вращением (массив, задержка в мс)
displayClock(hrs, mins) - выводит часы, минуты
displayClockScroll(hrs, mins, delayms) - выводит часы, минуты с эффектом пролистывания экрана вниз
displayClockTwist(hrs, mins, delayms) - выводит часы, минуты с эффектом вращения знакоместа

Возможность создания своего символа.
Для этого надо зажечь определённый набор элементов.

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

На модуле TM1637 4 провода. Два из них питание, а вот другие два мы и будем подключать.
Подключать эти контакты нужно к любым цифровым контактам.
Например у Arduino Nano - это pin D2-D13.
Подробнее можно почитать в статье Arduino Nano выходы

Не забудьте скачать и установить библиотеку. Как и где скачать, и установить описано выше.
В примере с библиотекой есть пример. Загрузив его вы увидите возможности своего индикатора.

Будем подключать к контактам(pin) D2 D3. как в примере
CLK соедините с D3 платы Arduino
DIO соедините с D2  платы Arduino

#include "TM1637.h"
#define CLK 3
#define DIO 2

Ну вот мы и подключили модуль TM1637 к Arduino.
Видео на ютубе как работает модуль.

В следующей статье мы соберём часы DS3231 и TM1637
В третьей статье мы подключим внешний(выносной) датчик температуры DS1820 для измерения на улице, и Фоторезистор GL5506 для управления яркостью свечения индикатора в зависимость от времени или яркости освещения. Температуру внутри, около датчика мы будем снимать с помощью модуля DS3231
Ну и заключительная статья будет, "Как соединить часы с медиаплеером", и включать в качестве будильника случайную мелодию.

Подписывайтесь и вы узнаете, как это сделать первыми.


Примеры использования Индикатора TM1637
Индикатор tm1637 Подключение к Ардуино
tm1637 индикатор
Точное время и дата без часов. NTP сервер точного времени.
Самодельные часы с кукушкой и боем курантов
Часы на Ардуино без модуля часов
Время и дата без часов. Вывод на разные дисплеи.
Таймер на ардуино со звуком и обратным отсчетом
"Модуль часов RTC DS3231" Урок № 7
Мир Цифр: Создаем Проекты с Индикатором TM1637 на Arduino

Дополнительные файлы