tm1637 индикатор
Сегодня мы изучим Четырехразрядный индикатор на TM1637. Он пригодится нам для сборки электронных часов с термометром и медиаплеером, которые мы начали собирать в прошлый раз, см статью DS3231 RTC Arduino.
Этот модуль собранный на драйвере TM1637.
• Есть модули красного, синего, зелёного, белого цвета.
• Размеры 0,36” и 0,56”
Двоеточие по центру даёт возможность применять этот модуль для индикации часов.
Всю самую сложную работу по динамической индикации берёт на себя драйвер TM1637.
Варианты применения.
И хотя сейчас на смену индикаторам пришли LED дисплеи, такие индикаторы всё равно применяются в разработках.
Например часы, вольтметры, весы, индикаторы электроприборов и другое.
Отличие модуля индикатора на 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