В связи с переездом склада, "самовывозом" продукцию можно забрать на следующий день после заказа. Пожалуйста, оформляйте заказы заранее.

(098) 067-12-26 Киевстар (098) 067-12-26   Киевстар
(066) 142-24-48 Vodafone (066) 142-24-48   Vodafone
(098) 067-12-26 Lifecell (063) 642-36-59   Lifecell
 info@arduino.ua
График работы магазина:
Пн-Пт: 9.00 - 19.00
Сб: 10.00 - 19.00
Вс: выходной
г. Киев, ул. Васильковская, 30
ст.м. "Васильковская"
Каталог

Школа робототехники intRobots

Набор расширения для платформы mBot Add-on Pack Six-legged Robot

Шестиногий робот mBot - это пакет расширения 3-в-1 на основе набора для конструирования Makeblock mBot

Знакомство с mBot

Роботы mBot от Makeblock - это учебные роботы STEAM для начинающих, которые делают обучение и программирование роботов простым и увлекательным занятием, легкодоступным даже для детей.

Kitronik 16 (i2C) для BBC micro:bit

Плата расширения для подключения 16-ти сервоприводов к микро-контроллеру BBC micro:bit позволяет одновременно управлять до 16 сервоприводами. Он построен на микросхеме драйвера PCA9865. На плате имеется встроенный Edge Connector для подключения

Конструктор "Гидравлик"

Ваш ребенок любит знакомиться с чем-то новым, а вы хотите найти для него полезное и веселое занятие? Конструктор Гидравлик выполнит все три задания и сможет заинтересовать юного исследователя.

Доработка библиотеки TM-1637 для 7-ми сегментного екрана

В этой статье речь идет об улучшении библиотек для экрана TM-1637. Библиотека модифицирована и улучшена в сторону удобства написания скетча.
Напиши статью и получи скидку!

Доработка библиотеки TM-1637 для 7-ми сегментного екрана

2019-01-02

Все статьи →

В этой статье вещь идет об улучшении библиотеки для экрана тм-1637. Библиотека модифицирована и улучшена для удобства написания скетча.

// нумерация портов слева направо!

disp.display(port, num); // вывести цифру num (0-9) в порт port (0-3)

disp.display(ARRAY); // вывести ARRAY, где ARRAY - массив из 4х цифр ( byte ARRAY[4] = {0, 1,

2, 3}; )

disp.displayByte(port, Byte); // вывести символ Byte в порт port (0-3) (Byte вида 0x7d)

disp.displayByte(ARRAY_BYTE); // ARRAY_BYTE - массив кодов ( 0x7d, 0x7d, 0x7d, 0x7d )

disp.displayByte(Byte1, Byte2, Byte3, Byte4); // вывести побайтово

// для вывода некоторых букв доступен вывод вида _A, _b, _h. Полный список смотри в TM1637.h

disp.displayInt(value); // вывести 1-4 значное число

disp.displayIntZero(value); // вывести 1-4 значное число с нулями СЛЕВА

// бегущая строка символов из массива arrayBytes, число символов sizeof(arrayBytes), интервал

delay_time в миллисекундах

disp.runningString(arrayBytes, sizeof(arrayBytes), delay_time);

disp.point(state); // включить/выключить двоеточие (1 и 0 соответственно)

disp.clearDisplay(); // очистить дисплей

disp.set(7); // яркость, 0 - 7 (минимум - максимум)

В файле TM1637.h есть список символов, которые были добавлены для удобного вывода, чтобы их вывести, нужно использовать один из вариантов с функцией displayByte(). Следующий код

выведет символ a в самый левый порт дисплея

disp.displayByte(0, _a);

КАК ВЫВЕСТИ СТРОЧКУ?

Давайте выведем строчку HELL. Для вывода слов удобнее использовать следующий вариант:

disp.displayByte(_H, _E, _L, _L); // вывести HELL, используя буквы из библиотеки

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

byte lol[] = {_H, _E, _L, _L};

disp.displayByte(lol);

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

Очень просто, есть готовая функция runningString(). В качестве аргументов передаётся массив

символов, длина строки и пауза-задержка вывода, то есть скорость бега бегущей строки. Для

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

byte welcome_banner[] = {_H, _E, _L, _L, _O, _empty, _empty,

_e, _n, _j, _o, _y, _empty, _empty,

_1, _6, _3, _7, _empty, _D, _i, _S, _P, _l, _a, _y

};

Далее скармливаем его функции runningString(). Длина выводимой строки определяется функцией

sizeof, по другому не получилось. Здесь 300 – время в миллисекундах между обновлениями

экрана, т.е. скорость движения строки.

disp.runningString(welcome_banner, sizeof(welcome_banner), 300); // выводим

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

На картинке справа показано, каким образом строится “код” символа: то есть в каком порядке

расположены биты индикаторов и как они включаются и выключаются. Поняв закономерность, вы

сможете задать любую конфигурацию светящихся индикаторов в одном порте. Вывести символ

можно одним из вариантов функции displayByte.

disp.displayByte(0x76, 0x79, 0x38, 0x38); // вывести HELL "вручную"

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

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

картинку справа, думаю всё будет понятно.

/************** БУКВЫ И СИМВОЛЫ *****************/

#define _A 0x77

#define _B 0x7f

#define _C 0x39

#define _D 0x3f

#define _E 0x79

#define _F 0x71

#define _G 0x3d

#define _H 0x76

#define _J 0x1e

#define _L 0x38

#define _N 0x37

#define _O 0x3f

#define _P 0x73

#define _S 0x6d

#define _U 0x3e

#define _Y 0x6e

#define _a 0x5f

#define _b 0x7c

#define _c 0x58

#define _d 0x5e

#define _e 0x7b

#define _f 0x71

#define _h 0x74

#define _i 0x10

#define _j 0x0e

#define _l 0x06

#define _n 0x54

#define _o 0x5c

#define _q 0x67

#define _r 0x50

#define _t 0x78

#define _u 0x1c

#define _y 0x6e

#define _- 0x40

#define __ 0x08

#define _= 0x48

#define _empty 0x00

#define _0 0x3f

#define _1 0x06

#define _2 0x5b

#define _3 0x4f

#define _4 0x66

#define _5 0x6d

#define _6 0x7d

#define _7 0x07

#define _8 0x7f

#define _9 0x6f

Ссылки

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Общая оценка:

Оценка "Доработка библиотеки TM-1637 для 7-ми сегментного екрана"
4 из 5
сделана на основе 2 оценок 2 клиентских отзывов.

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
icub
14.02.2019 04:52:21
Подписывать статью надо именем автора - AlexGyver, а не шифровать в ссылке.
Алекс
18.01.2019 17:10:18
Весьма напомнило вот эту статью: https://alexgyver.ru/tm1637_display/
оплата картами Visa и MasterCard