Урок 18. знакомство с графическим дисплеем

Что такое адресная светодиодная лента?

В первую очередь давайте рассмотрим, что вообще такое
цифровая Led лента, как она устроена и как работает?
По-другому ее еще называют адресной, умной или лентой “бегущий огонь”.

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

Так и внешними.

Они позволяют управлять режимами работы каждого сегмента
по отдельности. Таким образом можно напрямую запускать и отключать свечение
любого светодиода или пикселя.

В данном случае пикселем называют ячейку из одного или
нескольких светодиодов сразу (обычно по 3 штуки).

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

для автомобиля

для аквариума

на фасаде дома

на ёлке

Многообразие вариантов будет зависеть только от вашей фантазии.

Правильная покупка светодиодной ленты на AliExpress.

Что еще можно сказать по сечению проводов? Например,
лента 2812 на один диод потребляет порядка 60мА. При длине подсветки в 5 метров
ток составит 18 Ампер!

По всем расчетным таблицам для такого тока требуются
провода сечением 2,0-2,5мм2. Даже на самой ленте медные дорожки такого сечения
не обеспечивают.

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

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

Но как это проверить, не покупая изделие? Элементарно –
запросите информацию по весу ленты. После этого сравните одинаковые модели от
разных производителей.

Так например, у ленты длиной 5м (60 светодиодов на метр)
при весе менее 100гр просадки напряжения начинаются уже через 1,5 метра!

Объясняется это очень тонкими медными дорожками или
некачественной медью в них.

Quick start nodes #

ST7735 breakout boards can differ from each other and require different initialization methods. Therefore, the library contains 4 quickstart nodes at once — , , , and . Each of these nodes works with a display of a certain type conventionally named “B”, “G”, “RG”, and “RR”. To find out which type your specific display belongs to, try each of these nodes until it works.

Wire your display to the microcontroller via hardware SPI bus and fill in the , , pin values according to the microcontroller ports. The is the “Chip Select” microcontroller port of the SPI interface. is the “Data/Command” microcontroller port responsible for sending data and commands to the display driver.

The pin is the “Reset” microcontroller port the display is connected to. This port is responsible for the display reset which can be required during device initialization. Not all ST7735 breakout boards have this pin. If your ST7735 breakout board has this pin, be sure to link it with a microcontroller and set the appropriate port value at the pin. If your breakout board does not have an pin, then leave the default value untouched.

The input pin of the type specifies the graphics to render and display on the device screen. The awaits a branch of the tree of graphical elements created using the graphics library. The value at the pin is responsible for the display screen update due to change of the incoming graphics at the pin.

Подключение к блоку питания и контроллеру

Сигналы по программируемой ленте передаются от
контроллера с SPI микросхемами по цифровым протоколам
связи. После того, как на первый светодиод пришли 24 бита информации, данный
диод переходит в режим передачи.

Все данные, которые до него доходят, транслируются на
выход, то есть на следующий диод в последовательной цепочке.

Ошибка №2
Если к такой ленте напрямую подключить блок питания, работать она не будет.

В данном случае наличие контроллера обязательно.

В управляемые светодиоды нужно “загрузить” их цвета.

Кроме того, отличается и сам принцип передачи сигнала
между элементами. Если присмотреться, то можно увидеть на каждой умной ленте
стрелочки строго в одном направлении.

Они показывают, что управляющий сигнал будет передаваться
от одного элемента к другому именно в эту сторону, а не наоборот.

Ошибка №3
Встроенные микросхемы боятся переполюсовки!

Поэтому, если вы подключаетесь не через специальные коннекторы, а методом прямой пайки, всегда проверяйте “+” и “-” (GND).

Иначе адресная светодиодная лента у вас при первом же подключении сгорит.

1Описание последовательного интерфейса SPI

SPI – Serial Peripheral Interface или «Последовательный периферийный интерфейс» – это синхронный протокол передачи данных для сопряжения ведущего устройства (Master) с периферийными устройствами (Slave). Ведущим устройством часто является микроконтроллер. Связь между устройствами осуществляется по четырём проводам, поэтому SPI иногда называют «четырёхпроводной интерфейс». Вот эти шины:

Название Назначение шины SPI
MOSI (Master Out Slave In) линия передачи данных от ведущего к ведомым устройствам;
MISO (Master In Slave Out) линия передачи от ведомого к ведущему устройству;
SCLK (Serial Clock) тактовые импульсы синхронизации, генерируемые ведущим устройством;
SS (Slave Select) линия выбора ведомого устройства; когда на линии логический «0», ведомое устройство «понимает», что сейчас обращаются к нему.

Существует четыре режима передачи данных (SPI_MODE0, SPI_MODE1, SPI_MODE2, SPI_MODE3), обусловленные сочетанием полярности тактовых импульсов (работаем по уровню HIGH или LOW), Clock Polarity, CPOL, и фазой тактовых импульсов (синхронизация по переднему или заднему фронту тактового импульса), Clock Phase, CPHA. В последнем столбце таблицы приведены поясняющие иллюстрации. На них Sample обозначены моменты, когда данные на линии должны быть готовы и считываются устройствами

Буквой Z отмечено, что состояние данных на линии неизвестно или не важно

Режим Полярность тактовых импульсов (CPOL) Фаза тактовых импульсов (CPHA) Диаграмма режима
SPI_MODE0
SPI_MODE1 1
SPI_MODE2 1
SPI_MODE3 1 1

Интерфейс SPI предусматривает несколько вариантов подключения ведомых устройств: независимое и каскадное. При независимом подключении к шине SPI ведущее устройство обращается к каждому ведомому устройству индивидуально. При каскадном подключении ведомые устройства срабатывают поочерёдно, как бы каскадом.

Виды подключения устройств для работы по интерфейсу SPI: независимое и каскадное

Display shapes

The TFT library provides useful functions to draw shapes on the display:

  • TFTscreen.point(x, y) – display a point at the (x, y) coordinate
  • TFTscreen.line(xStart, yStart, xEnd, yEnd) – draws a line that starts at (xStart, yStart) and ends at (xEnd, yEnd)
  • TFTscreen.rect(xStart, yStart, width, height) – draws a rectangle with the top left corner at (xStart, yStart) with the defined width and height
  • TFTscreen.circle(x, y, radius) – draws a circle with center at (x, y) with the specified radius

Code

The following example displays several shapes. Every time the code goes through the loop, the shapes change color.

Copy the following code to your Arduino IDE and upload it to your Arduino board.

Here’s the shapes on the display: 

Display text

To write text on the display, you can customize the screen background color, font size and color.

To set the background color, use:

TFTscreen.background(r, g, b);

In which, r, g and b are the RGB values for a given color. To choose font color:

TFTscreen.stroke(r, g, b);

To set the font size:

TFTscreen.setTextSize(2);

You can increase or decrease the number given as argument, to increase or decrease font size.

Finally, to draw text on the display you use the following line:

TFTscreen.text("Hello, World!", x, y);

In which “Hello, World!” is the text you want to display and the (x, y) coordinate is the location where you want to start display text on the screen.

Code

The following example displays “Hello, World!” in the middle of the screen and changes the font color every 200 miliseconds.

Copy the following code to your Arduino IDE and upload it to your Arduino board.

Here’s your “Hello, World!” text on the 1.8 TFT display.

Графический ЖК (жидкокристаллический) дисплей 128х64

Данный дисплей отличается малым энергопотреблением и подходит для использования в устройствах, питание которых осуществляется от батареек. Он поддерживает диапазон питающих напряжений от 2.2v до 5.5v, 8/4-битный параллельный режим работы и поставляется вместе с микросхемой контроллера/драйвера ST7290. Кроме параллельного режима работы можно также использовать последовательный режим работы по шине PSB (processor side bus) (PIN 15). Этот графический ЖК дисплей имеет автоматическое управление мощностью и возможность программного сброса, что позволяет без проблем подключать его к большинству современных микропроцессорных платформ, например, 8051, AVR, ARM, Arduino и Raspberry Pi.

При необходимости более подробного изучения возможностей данного ЖК дисплея вы можете изучить даташит на него.

Назначение контактов графического ЖК дисплея ST7920 приведено в следующей таблице.

№ контакта Название контакта Описание
1 Gnd земля
2 Vcc входное питающее напряжение (от 2.7v до 5.5v)
3 Vo контрастность
4 RS Выбор регистра: RS = 0 — регистр инструкций, RS = 1 — регистр данных
5 R/W управление чтением/записью
6 E Enable (доступность)
7,8,9,10,11,12,13,14 DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 контакты данных (возможна работа в 8 и 4-битном режиме)
15 PSB выбор интерфейса: Low(0) — последовательная связь, High (1) — 8/4 параллельный режим
16 NC Not connected (не соединен)
17 RST Reset Pin (сброс)
18 Vout выходное напряжение (Vout<=7 В)
19 BLA подсветка (положительный вывод)
20 BLK подсветка (отрицательный вывод)

Connecting TFT display to Arduino.

This is the type of display am using but they come with various pin configurations. However all the displays will have the major pins stated below and should be connected to the Arduino board as follows:SCK to  Digital pin 13SDA to  Digital pin 11DC   to  Digital pin 9Reset to  Digital pin 8CS  to  Digital pin 10GND to Arduino GNDVCC  to Arduino 3.3V

This TFT display uses 3.3V but comes with an on board voltage regulator therefore the VCC can be connected to the Arduino 5V. However for best practice it’s better to use the 3.3V.

Most code Libraries for this TFT ST7735 display with Arduino are programmed with the SDA and SCL pins connected to Arduino pins 11 and 13 respectively. Make sure you don’t change that order otherwise the display may not work.

Rotate the screen #

You can change the screen position and the origin of the with the node.

The node allows you to rotate the display screen to one of four positions: 0 degrees portrait, 90 degrees landscape, 180 degrees portrait, and 270 degrees landscape. A value at the pin sets the angle to rotate the screen and can be one of four values , , , . These values correspond to the particular display positions.

A type signal at the pin triggers a new screen rotation and the coordinate system change. The pulse at the output pin signals that the rotation is complete. The can be used in run-time and at any step of the program. It is possible to use several nodes.

Introducing the 1.8 TFT Display

The 1.8 TFT is a colorful display with 128 x 160 color pixels. The display can load images from an SD card – it has an SD card slot at the back. The following figure shows the screen front and back view.

This module uses SPI communication – see the wiring below . To control the display we’ll use the TFT library, which is already included with Arduino IDE 1.0.5 and later.

Where to buy?

You can get the 1.8 TFT display for approximately $3 – check prices on Maker Advisor.

You can use the preceding links or go directly to MakerAdvisor.com/tools to find all the parts for your projects at the best price!

Pin wiring

The table below shows the 1.8 TFT wiring to Arduino UNO.

1.8 TFT Display Wiring to Arduino Uno
LED 3.3 V
SCK 13
SDA 11
A0 or DC 9
RESET 8
CS 10
GND GND
VCC 5 V

Note: different Arduino boards have different SPI pins. If you’re using another Arduino board, check the Arduino official documentation.

Исходный код программы (скетча)

Arduino

#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include «SystemFont5x7.h»
#include «Arial_black_16.h»
#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16
DMD led_module(ROW, COLUMN);
void scan_module()
{
led_module.scanDisplayBySPI();
}
void setup()
{
Timer1.initialize(2000);
Timer1.attachInterrupt(scan_module);
led_module.clearScreen( true );
}
void loop()
{
led_module.selectFont(FONT);
led_module.drawMarquee(«Welcome to Circuit Digest»,25, (32 * ROW), 0);
long start = millis();
long timming = start;
boolean flag = false;
while (!flag)
{
if ((timming + 20) < millis())
{
flag = led_module.stepMarquee(-1, 0);
timming = millis();
}
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include «SystemFont5x7.h»
#include «Arial_black_16.h»
#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16

DMDled_module(ROW,COLUMN);

voidscan_module()

{

led_module.scanDisplayBySPI();

}

voidsetup()

{

Timer1.initialize(2000);

Timer1.attachInterrupt(scan_module);

led_module.clearScreen(true);

}

voidloop()

{

led_module.selectFont(FONT);

led_module.drawMarquee(«Welcome to Circuit Digest»,25,(32*ROW),);

longstart=millis();

longtimming=start;

booleanflag=false;

while(!flag)

{

if((timming+20)<millis())

{

flag=led_module.stepMarquee(-1,);

timming=millis();

}

}

}

Конвертирование изображения в шестнадцатеричный код

Для того, чтобы иметь возможность отображения изображения на графическом ЖК дисплее необходимо знать шестнадцатеричный код (HEX code) данного изображения. Далее мы рассмотрим несколько шагов чтобы выполнить подобное конвертирование. Но перед этим удостоверьтесь в том, что размер вашего изображения не превышает 128х64.

Шаг 1. Уменьшите размер вашего изображения до 128х64 или менее. Это можно сделать в любом графическом редакторе, например, MS paint.

Шаг 2. Сохраните изображение в формате bmp (“image_name.bmp”).

Шаг 3. Конвертирование полученного изображения в шестнадцатеричный код. Для этого можно использовать, к примеру, редактор GIMP 2. На следующем рисунке показан пример открытия изображения в данном редакторе.

Шаг 4. После открытия изображения (в формате bmp) в редакторе GIMP 2 сохраните его в формате “.xbm” (X BitMap) (см. рисунок ниже). После этого откройте полученный файл в любом текстовом редакторе, например, Notepad, и вы получите шестнадцатеричный код изображения.

Сначала выберите опцию «Export as» в редакторе.

Затем выберите формат, показанный на следующем рисунке, и нажмите кнопку Export.

После этого экспортирования вы получите файл в формате “.xbm”. Откройте его с помощью Notepad (или любого другого аналогичного редактора) и вы получите шестнадцатеричный код изображения как показано на следующем рисунке.

Принцип работы светодиодных матричных дисплеев P10

Светодиодные матричные дисплеи P10 наиболее удобны для создания наружных и внутренних досок объявлений. Подобный дисплей содержит 512 светодиодов высокой яркости, смонтированных на пластиковом основании. Любое количество этих дисплеев можно объединить как по горизонтали, так и по вертикали.

Обозначение 32*16 у этих дисплеев обозначает, что они содержат 32 светодиода в каждой строке и 16 светодиодов в каждом столбце. Итого получаем 512 светодиодов.

Технические характеристики светодиодных матричных дисплеев P10:

  • яркость: 3500-4500nits;
  • максимальная потребляемая мощность: 20 Вт;
  • напряжение питания: 5 В постоянного тока;
  • водонепроницаемость: IP65;
  • конфигурация 1 Вт на пиксел;
  • широкие углы обзора;
  • высокая контрастность.

Назначение контактов светодиодных дисплеев P10

— Enable: этот контакт используется яркостью дисплея при помощи подачи на него импульса ШИМ (широтно-импульсной модуляции);
— A, B: контакты мультиплексирования, позволяют обратиться к любым контактам при помощи технологии мультиплексирования;
— Shift clock (CLK), Store clock (SCLK) и Data: контакты управления обычным регистром сдвига. В этих дисплеях используется регистр сдвига 74HC595.

Распиновка модуля P10 показана на следующем рисунке.

Подключение более 5 метров.

Если вам нужно подключить более 5м умной ленты, то для ее
равномерного свечения нельзя просто наращивать подсвету последовательно. Речь
здесь идет в первую очередь про питание!

Когда количество пикселей на контроллере позволяет
подключить большую длину, вы без проблем стыкуете коннекторы DI и DO между
собой. Но вот питание (5В или 12В), все равно придется тянуть отдельно
(параллельно).

Есть контроллеры с дополнительными проводами под “лишнее”
питание на такой случай.

Ошибка №6
Нельзя подключать несколько кусков ленты последовательно и при этом подавать на них изначально большее напряжение.

Например, взять три куска ws2812b (5м+5м+5м)
и подать на них в самом начале ленты 15 вольт, рассчитывая при этом на
последовательное падение напряжения.

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

Ошибка №7
Лента вместо белого светится с оттенком желтоватого или красного цвета.

Скорее всего дело здесь в неправильно подобранном сечение
проводов. Всегда берите минимум 1,5мм2.

Недостаток цвета – это первый признак просадки
напряжения. Уход в красноту объясняется тем, что для синего и зеленого цветов
на чипе 2812b требуется порядка 3,5В, а вот для
красного достаточно и 2В.

Поэтому, когда напряжение на светодиодах падает,
выключаются зеленые и синие кристаллы, а красный горит до последнего.

Схема проекта

Схема подключения светодиодного дисплея P10 к плате Arduino представлена на следующем рисунке.

Схема соединений светодиодного дисплея P10 и платы Arduino показана в следующей таблице.

Дисплей P10 Плата Arduino
ENABLE 9
A 6
B 7
CLK 13
SCLK 8
DATA 11
GND GND

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Примечание: подключайте контакты питания каждого модуля P10 к импульсному источнику питания (SMPS) 5 В по отдельности. Если вы планируете использовать больше модулей P10 для создания светодиодной матрицы, то соответствующим образом вам будет необходимо масштабировать и импульсный источник питания (SMPS).

Quick start example #

Here is a simple example of using quickstart nodes. For example, We use an ST7735 128×160 SPI display of a “G” type. Connect it to a microcontroller according to the wiring scheme.

Use the hardware SPI bus. Connect the display’s pin to the controller port, and the pin to the port. The breakout board of the display used in this example has an pin, so it should be wired. The pin is connected to the port.

Let’s display a pink filled circle in the center of the screen.

Put the quickstart node onto the patch and fill in ports values , , and according to the wiring scheme. Using the XOD graphics library, create a new with the size of a display screen. The width of the is and the height is . The background color is set to black () and the foreground color to pink ().

To add the filled circle to the scene, place the node onto the patch. To make this node be a part of the graphic tree, link its pin with the pin of the . Set the circle coordinates for the center of the screen, for , and for . The radius can be random, for example, .

The scene is ready. Connect the output pin of the node to the pin of the quickstart node. Take a look at what the patch should be.

Upload this patch and see what is displayed on the screen of the device.

You can change all parameters of the graphic nodes in a real-time. For example, you can change the position of the circle or the background color of the canvas using tweaks. Add two nodes for the and circle coordinates. Add the node for the pin. Flash the patch in debug mode and manage colors and coordinates.

The parameters of graphic nodes can be changed using other nodes. For example, you can change the color of the circle and its size using a potentiometer. Remove tweak nodes from the patch. Place new nodes , , and node from the library. Connect the potentiometer to the Arduino port.

With the combination of and , the radius of the circle changes from to pixels. With the combination of and , the hue of the foreground color of the canvas changes from to . Upload the patch and manage the graphics changes.

Отличие лент ws2812, ws2812b, ws2811

Наиболее распространенные модели со встроенными микросхемами имеют маркировку WS2812 или WS2812b. С внешними – WS2811.

Чем модель ws2812 отличается
от ws2812b? Первые имеют 6
контактов (PIN) для управления, а вторые, с буковкой “b” –
всего четыре.

На 2812 питание светодиода и чипа разнесены. У 2812b питание
интегрированного драйвера и светодиода вынесено на один PIN (VDD).

А в чем главные отличия между ws2812b и ws2811?

ws2812b – работает от 5v

ws2811 – питание 12v (в 2015г прекращен выпуск последних моделей на 5в)

WS2812 управляет кластерами по одному
диоду, WS2811 управляет тремя светодиодами
одновременно.

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

Выбор контроллера для адресной ленты

При выборе SPI контроллера для
умных лент нужно рассчитывать не на мощность подсветки, как обычно это
делается, а на количество пикселей.

Данные параметр всегда указывается на корпусе изделия.

Что касается выбора мощности блока питания, то здесь
ориентируйтесь на следующий показатель. Один светодиод для моделей sw2812b – это
примерно 60мА при белом свете.

Считайте их общее количество в ленте, берите запас в 30% и подбирайте подходящий блок.

От блока питания провода подключаются на контроллер, а с
другой стороны контроллера запитывается сама лента.

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

Управление через смартфон

Управление современными адресными лентами легко
осуществляется через смартфон и Wi-fi.
Последовательность здесь следующая.

устанавливаете на телефон специальное приложение

Зачастую на корпусе контроллера указывают QR код,
отсканировав который, вы найдете нужную программу в интернете.

регистрируетесь и добавляете свое устройство

в настройках wi-fi на телефоне находите его

При первом подключении настраиваете девайс. Выбираете
последовательность свечения RGB (GBR, BRG), а
также тип ленты (ws2811, ws2812 и
т.п.)

Обязательно указываете количество пикселей. После этого
можно переходить к выбору эффектам свечения:

таймер (время вкл. и откл. ленты)

динамический режим (с регулировкой скорости и изменения эффектов)

Таких прописанных по умолчанию режимов может быть
несколько сотен!

яркость подсветки

Не понравились заводские настройки? Можете создать свою
собственную программу расцветки через ручную настройку динамического режима.

Более подробно с пошаговой установкой и настройкой множества других режимов работы можете ознакомиться из ролика ниже.

Помимо прочего такие умные контроллеры могут иметь
музыкальный процессор.

Они визуализируют звуки через встроенный микрофон телефона. Получается очень неплохой аналог цветомузыки в домашних условиях.

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

При выборе такого контроллера обратите особое внимание, что есть дешевые модели, которые при работе через wi-fi могут блокировать вам интернет. Поэтому заранее интересуйтесь у продавца о такой функции и покупайте только модели с одновременной работой интернета и управлением подсветкой

Поэтому заранее интересуйтесь у продавца о такой функции и покупайте только модели с одновременной работой интернета и управлением подсветкой.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Также мы будем использовать библиотеку “Arial Black font” для отображения текста на нашем дисплее.

Arduino

#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include «SystemFont5x7.h»
#include «Arial_black_16.h»

1
2
3
4
5

#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include «SystemFont5x7.h»
#include «Arial_black_16.h»

Далее следует указать количество строк и столбцов нашей светодиодной панели – поскольку для ее создания мы использовали только один модуль P10, то число строк и столбцов должно быть равно 1. Затем укажем шрифт Arial_Black_16, который будет использоваться для скроллинга текста на дисплее.

Arduino

#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16
DMD led_module(ROW, COLUMN);

1
2
3
4

#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16

DMDled_module(ROW,COLUMN);

Функция scan_module() будет проверять все поступающие по интерфейсу SPI данные. Если данные будут поступать, то будет срабатывать прерывание, в обработчике которого будут выполняться необходимые действия.

Arduino

void scan_module()
{
led_module.scanDisplayBySPI();
}

1
2
3
4

voidscan_module()

{

led_module.scanDisplayBySPI();

}

Внутри функции void setup() мы будем инициализировать таймер и прикреплять прерывание к функции scan_module. Функция clearScreen(true) будет использоваться для очистки экрана дисплея.

Arduino

void setup()
{
Timer1.initialize(2000);
Timer1.attachInterrupt(scan_module);
led_module.clearScreen( true );
}

1
2
3
4
5
6

voidsetup()

{

Timer1.initialize(2000);

Timer1.attachInterrupt(scan_module);

led_module.clearScreen(true);

}

Далее, для отображения строки на экране дисплея, необходимо с помощью функции selectFont() задать используемый шрифт. После задания шрифта мы будем высвечивать на экране дисплея приветственное сообщение “Welcome to Circuit Digest” с помощью функции drawMarquee().

Arduino

led_module.selectFont(FONT);
led_module.drawMarquee(«Welcome to Circuit Digest»,25, (32 * ROW), 0);

1
2

led_module.selectFont(FONT);

led_module.drawMarquee(«Welcome to Circuit Digest»,25,(32*ROW),);

И, наконец, чтобы производить скроллинг текста на нашем светодиодном дисплее, мы будем переключать наше сообщение справа налево с заданным временным интервалом.

Arduino

long start = millis();
long timming = start;
boolean flag = false;
while (!flag)
{
if ((timming + 20) < millis())
{
flag = led_module.stepMarquee(-1, 0);
timming = millis();
}
}

1
2
3
4
5
6
7
8
9
10
11

longstart=millis();

longtimming=start;

booleanflag=false;

while(!flag)

{

if((timming+20)<millis())

{

flag=led_module.stepMarquee(-1,);

timming=millis();

}

}

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Семинар по технике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: