Друзья, поздравляем вас с Днем независимости Украины!
Обратите внимание, 24 и 26 августа мы работаем с 10:00 до 19:00, а также напоминаем, что самовывозом забрать заказ можно после подтверждения менеджером.
(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

Запись аудиофайлов на микросхемы серии ISD1700

В одном из недавних проектов мне потребовалось добавить озвучивание коротких текстовых сообщений. Шилды типа MP3-модуля с SD-картой показались мне избыточными, а «обучать» ARDUINO воспроизводить человеческую речь значило бы отдать практически все ресурсы

Сборка электронных часов

Коротенькая статья с картинками - инструкция по сборке электронных часов, которые можно приобрести на страницах нашего магазина. Переведена с английского (и может, не совсем качественно)

Підключення енкодера до Ардуіно

Контролер (датчик) положення обертового об`єкта або по-іншому енкодер - це електромеханічний пристрій, за допомогою якого можна визначити положення обертається осі (вала). У звичайному інкрементальному енкодері, який ми будемо розглядати, цей сигнал

Клон Arduino или отладочная плата Atmega в корпусе DIP28

Сделанное собственными руками всегда тешит самолюбие и реализация «идеи, подкупающей своей новизной», «вызывает чувство глубокого удовлетворения» (из анекдотов, куда без них)...

Самодельный лабораторный блок питания

Одним из самых необходимых инструментов для каждого радиолюбителя является блок питания. Ведь без него иногда бывает достаточно сложно обойтись. Я считаю, что чем он лучше, тем удобнее и приятнее будет им пользоваться. Поэтому я бы хотел на своем
Напиши статью и получи скидку!

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