Данный модуль включает в себя микросхему TM1637 к которой подключен четырехразрядный семисегментный индикатор с двоеточием без точек после каждого из разрядов:
Принципиальная электрическая схема модуля представлена ниже. Для подключения к микроконтроллеру или Arduino используются 4 вывода: VCC, GND для подключения питания и CLK, DIO для управления микросхемой TM1637:
На всякий случай сохранил библиотеку себе на google диск.
ДАННАЯ БИБЛИОТЕКА ПОЗВОЛЯЕТ:
- отображать цифры и управлять двоеточием на семисегментном индикаторе
- управлять определенными сегментами в пределах одного знака на индикаторе
- включать/выключать свечение семисегментного индикатора
- регулировать яркость семисегментного индикатора
Библиотека отлично работает с микроконтроллерами семейства attiny (как заявляет автор библиотеки ATtiny13, ATtiny25, ATtiny45, ATtiny85) и как и предыдущая библиотека этого автора с atmega (при условии подключения TM1638 к порту B микроконтроллера)
Как подключить библиотеку я подробно описал в статье «Как подключить к Microchip/Atmel Studio библиотеку», но перед этим в файле tm1637.h в строках, которые после «// Main Settings» необходимо задать выводы микроконтроллера к которым подключены пины, или же подключить их так, как прописано в программе:
// Main Settings #define TM1637_DIO_PIN PB0 #define TM1637_CLK_PIN PB1
Перед тем как начать использовать устройство на TM1638 его нужно инициализировать. Инициализация выполняется командой TM1637_init(state, brightness_value),
где state – состояние дисплея после инициализации (1 или 0) 1 – включено, 0 – выключено
brightness_value – яркость свечения дисплея (от 0 до 7) 0 – минимальная, 7 – максимальная
Пример использования:
TM1638_init(1/*enable*/, 6 /*brighness*/); //или TM1638_init(1, 6);
После инициализации TM1638 для управления модулем используются следующие команды:
TM1637_clear() - Очистка (выключение) всех сегментов дисплея, включая двоеточие.
Пример:
TM1637_clear(); //Очистить дисплей
TM1637_enable(state) – включение/отключение свечения дисплея, где state управляет свечением дисплея (1 или 0) 1 – включено, 0 – выключено, например:
TM1638_enable(0); //Выключить свечение семисегментных индикаторов TM1638_enable(1); //Включить свечение семисегментных индикаторов
TM1637_set_brightness(brightness_value) – задание яркости свечения светодиодного семисегментного дисплея, где brightness_value значение яркости от 0(минимум) до 7(максимум)
Например:
TM1638_set_brightness(4); // установить яркость дисплея на 4 из 7
TM1637_display_digit(position, digit) – вывод цифры в определенный разряд на семисегментный дисплей, где
position – разряд на дисплее (от 0 до 3), куда будет выведена цифра.
digit – цифра, которая будет выведена в разряд(от 0 до 9)
например:
TM1637_display_digit(0,2); // Высести цифру "2" в разряд 0 TM1637_display_digit(1,0); // Высести цифру "0" в разряд 1 TM1637_display_digit(2,2); // Высести цифру "2" в разряд 2 TM1637_display_digit(3,3); // Высести цифру "3" в разряд 3
TM1637_display_colon() – управление свечением двоеточия на дисплее (1 или 0) 1 – включено, 0 – выключено
Заметил, что данная команда более-менее корректно работает только совместно с TM1637_display_digit. При использовании ее без этой во втором разряде зажигается «8»:
Хотя в идеале должно быть так:
Пример использования команды:
TM1637_display_colon(1); //включить двоеточие
TM1637_display_segments(position, segments) – включение определенных сегментов на определенном разряде семисегментного дисплея, где
position – разряд на дисплее (от 1 до 8), на котором будут включаться сегменты.
segments – число, каждый бит которого в двоичном виде соответствует определенному сегменту дисплея. Если бит установлен в 1 – сегмент светится, в 0 – не светится:
Т.е. если нужно засветить символ «H», то segments=0b01110110, если нужен символ «-», то segments=0b01000000.
Двоеточием управляет восьмой бит в разряде, после которого оно идет (т.е. во втором разряде из четырех или первом, если считать с нуля) – 0b10000000. Если он установлен в 1 – сегмент светится, в 0 – не светится. По причине описанной в предыдущем пункте не рекомендую совместно с TM1638_display_segments использовать команду включения двоеточия - TM1637_display_colon
Примеры использования данной команды:
TM1637_display_segments(0, 0b01110011); //Буква "Р" TM1637_display_segments(1, 0b00111111); //Буква "О" TM1637_display_segments(2, 0b00111001); //Буква "С" TM1637_display_segments(3, 0b01110111); //Буква "А"
На этом пока все. До новых встреч!
Комментариев нет:
Отправить комментарий