Самовывозом можно забрать заказ после подтверждения менеджером. Пожалуйста, оформляйте заказы заранее.
(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

Создаём «умные устройства» на базе Arduino и Raspberry Pi

Всем, кто интересуется «умными устройствами», которые создаются на основе микроконтроллеров, будет интересно познакомиться с двумя современными столпами этих направлений аппаратной платформой Arduino и миникомпьютером Raspberry Pi. В нашей статье мы

Сборка танцующего робота

Сборка любого конструктора интересный и увлекательный процесс не только для детей но и для взрослых. Процесс увлекательный если есть подробное руководство или процесс сборки интуитивно понятен. Если же нет ни того ни другого то процесс сборки может

Доработка клеевого пистолета GlueGun 20W

Давно хотел себе приобрести мелкий клеевой пистолет. Большой есть, но обычно, пока он прогреется, то надобность в клее уже отпадает. А потом он еще и капли пускает, пока не остынет. И вот подвернулся удобный случай, GlueGun 20W всего за 35 грн. Данный

Обзор Arduino набора с UNO R3 от Keyestudio

Если вы хотите познакомиться с домашней автоматизацией, рекомендуем начать изучение этого удивительного направления мира Arduino именно с покупки датчиков в наборах. Во-первых, это обойдётся существенно дешевле, а во-вторых, вы получите полноценный

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

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

Доработка библиотеки 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