Contr1
Tags1
Inputs1
Variables1
0@0
LibraryRoot
LibraryGroup-Базовые элементы
0@0
355
0@0
169
368
0@0
root
globalVariable
1
6083e3c5-5567-4ca0-8435-86db62f328ff
0@0
0
5
3
--- ЭФФЕКТЫ ---
срока вкл
==
13
4
760@320
780@320 corner: 911.0d@340
760@320 corner: 931.0d@340
785.0d@334.5d
WS2812_Eff_Gyver_final
9e3b5f41-961b-42d7-92e1-084db40edbac
Эффекты на WS2812 Гивера последний
Ставится блок последним, работает только с первымм блоком. Между ними ставить блоки эффектов.
94
}
131.0d
7
11
560@190
580@190 corner: 640@250
560@190 corner: 660@250
595.0d@204.5d
V
560@220
580@220
540.0d@223.5d
560@210 corner: 580@230
35
400@150
420@150 corner: 500@210
400@150 corner: 520@210
449.0d@163.5d
33
290@150
310@150 corner: 370@190
290@150 corner: 390@190
326.0d@163.5d
39
180@40
200@40 corner: 240@80
180@40 corner: 260@80
216.0d@53.5d
40
60@60
80@60 corner: 139.0d@80
60@60 corner: 159.0d@80
84@74.5d
60@70
80@70
60@60 corner: 80@80
139.0d@60 corner: 159.0d@80
159.0d@70
9.0d
51.0d
эфект вкл
0.0d
139.0d@70
159.0d@70 corner: 159.0d@70
180@70
200@70
180@60 corner: 200@80
240@60 corner: 260@80
260@70
Q
240@70
25
770@0
790@0 corner: 935.0d@60
770@0 corner: 955.0d@60
795.0d@14.5d
770@20 corner: 790@40
brightness
250
770@50
790@50
750.0d@53.5d
WS2812_Eff_Gyver_main
en_g
ff84043f-248e-41ab-9e01-ee69e464ad45
d33a14d9-0b55-40cf-9dbf-1387189f8d25
eb520ab3-b1eb-4c10-8133-28cfa0fd619b
5c8320ed-cb31-4afe-ab5a-55d2de2f1efc
LedMode
d7203749-7779-43ec-b213-cc01c0754a0f
2d1caead-279e-4ab3-8bab-dba56bedd7ce
02999e23-1989-47d2-a147-65901b336b31
Эффекты на WS2812 Гивера главный
Входы:
en_g - включение блока;
brightness - яркость;
LedMode - стартовый режим:
0 - все выключены
1 - все включены
3 - кольцевая радуга
888 - демо-режим
Параметры:
LED_COUNT - количество светодиодов;
LED_DT - вывод, куда подключен DIN ленты
278
LED_COUNT
48
118101c3-0d16-469f-9bfb-66b196c7417a
aae27e5e-6f22-4607-86a0-eb91d4253e96
LED_DT
66eb2176-a6af-48a0-b401-4c340f72eab9
44d2d881-4390-4861-9307-49a2058df461
if (en_g) {
LEDS.setBrightness(brightness);
if (Serial.available() > 0) { // если что то прислали
ledMode = Serial.parseInt(); // парсим в тип данных int
change_mode(ledMode); // меняем режим через change_mode (там для каждого режима стоят цвета и задержки)
}
else {
ledMode = LedMode;
change_mode(ledMode);
}
switch (ledMode) {
case 999: break; // пауза
439
Serial.begin(9600);
LEDS.setBrightness( brightness );
LEDS.addLeds<WS2811, LED_DT, GRB>(leds, LED_COUNT);
one_color_all(0, 0, 0);
LEDS.show();
154
библиотека для работы с лентой
#include
"FastLED.h"
ledMode
= LedMode ;
int
/* Стартовый режим
0 - все выключены
1 - все включены
3 - кольцевая радуга
888 - демо-режим */
цвета мячиков для режима
ballColors
[3][3] = {
{0xff, 0, 0},
{0xff, 0xff, 0xff},
{0 , 0 , 0xff},
};
byte
светодиод начала отсчёта
BOTTOM_INDEX
= 0;
int
TOP_INDEX
= int(LED_COUNT / 2);
int
EVENODD
= LED_COUNT % 2;
int
leds
[LED_COUNT];
CRGB
-ARRAY FOR COPYING WHATS IN THE LED STRIP CURRENTLY (FOR CELL-AUTOMATA, MARCH, ETC)
ledsX
[LED_COUNT][3];
int
-FX LOOPS DELAY VAR
thisdelay
= 20;
int
-FX LOOPS DELAY VAR
thisstep
= 10;
int
-FX LOOPS DELAY VAR
thishue
= 0;
int
-FX LOOPS DELAY VAR
thissat
= 255;
int
thisindex
= 0;
int
thisRED
= 0;
int
thisGRN
= 0;
int
thisBLU
= 0;
int
-LED INDEX (0 to LED_COUNT-1
idex
= 0;
int
-HUE (0-255)
ihue
= 0;
int
-BRIGHTNESS (0-255)
ibright
= 0;
int
-SATURATION (0-255)
isat
= 0;
int
-SWITCH FOR COLOR BOUNCE (0-1)
bouncedirection
= 0;
int
-INC VAR FOR SIN LOOPS
tcount
= 0.0;
float
-ANOTHER COUNTING VAR
lcount
= 0;
int
for (int i = 0 ; i < LED_COUNT; i++ ) {
leds[i].setRGB( cred, cgrn, cblu);
}
82
void
one_color_all
int
cred
int
cgrn
int
cblu
//-SET ALL LEDS TO ONE COLOR (HSV)
for (int i = 0 ; i < LED_COUNT; i++ ) {
leds[i] = CHSV(ahue, thissat, 255);
}
121
void
one_color_allHSV
int
ahue
thissat = 255;
switch (newmode) {
case 0: one_color_all(0, 0, 0); LEDS.show(); break; //---ALL OFF
case 1: one_color_all(255, 255, 255); LEDS.show(); break; //---ALL ON
case 2: thisdelay = 20; break; //---STRIP RAINBOW FADE
case 3: thisdelay = 20; thisstep = 10; break; //---RAINBOW LOOP
case 4: thisdelay = 20; break; //---RANDOM BURST
case 5: thisdelay = 20; thishue = 0; break; //---CYLON v1
case 6: thisdelay = 40; thishue = 0; break; //---CYLON v2
case 7: thisdelay = 40; thishue = 0; break; //---POLICE LIGHTS SINGLE
case 8: thisdelay = 40; thishue = 0; break; //---POLICE LIGHTS SOLID
case 9: thishue = 160; thissat = 50; break; //---STRIP FLICKER
case 10: thisdelay = 15; thishue = 0; break; //---PULSE COLOR BRIGHTNESS
case 11: thisdelay = 15; thishue = 0; break; //---PULSE COLOR SATURATION
case 12: thisdelay = 60; thishue = 180; break; //---VERTICAL SOMETHING
case 13: thisdelay = 100; break; //---CELL AUTO - RULE 30 (RED)
case 14: thisdelay = 40; break; //---MARCH RANDOM COLORS
case 15: thisdelay = 80; break; //---MARCH RWB COLORS
case 16: thisdelay = 60; thishue = 95; break; //---RADIATION SYMBOL
//---PLACEHOLDER FOR COLOR LOOP VAR DELAY VARS
case 19: thisdelay = 35; thishue = 180; break; //---SIN WAVE BRIGHTNESS
case 20: thisdelay = 100; thishue = 0; break; //---POP LEFT/RIGHT
case 21: thisdelay = 100; thishue = 180; break; //---QUADRATIC BRIGHTNESS CURVE
//---PLACEHOLDER FOR FLAME VARS
case 23: thisdelay = 50; thisstep = 15; break; //---VERITCAL RAINBOW
case 24: thisdelay = 50; break; //---PACMAN
case 25: thisdelay = 35; break; //---RANDOM COLOR POP
case 26: thisdelay = 25; thishue = 0; break; //---EMERGECNY STROBE
case 27: thisdelay = 25; thishue = 0; break; //---RGB PROPELLER
case 28: thisdelay = 100; thishue = 0; break; //---KITT
case 29: thisdelay = 50; thishue = 95; break; //---MATRIX RAIN
case 30: thisdelay = 5; break; //---NEW RAINBOW LOOP
case 31: thisdelay = 100; break; //---MARCH STRIP NOW CCW
case 32: thisdelay = 100; break; //---MARCH STRIP NOW CCW
case 33: thisdelay = 50; break; // colorWipe
case 34: thisdelay = 50; break; // CylonBounce
case 35: thisdelay = 15; break; // Fire
case 36: thisdelay = 50; break; // NewKITT
case 37: thisdelay = 20; break; // rainbowCycle
case 38: thisdelay = 10; break; // rainbowTwinkle
case 39: thisdelay = 50; break; // RunningLights
case 40: thisdelay = 0; break; // Sparkle
case 41: thisdelay = 20; break; // SnowSparkle
case 42: thisdelay = 50; break; // theaterChase
case 43: thisdelay = 50; break; // theaterChaseRainbow
case 44: thisdelay = 100; break; // Strobe
case 101: one_color_all(255, 0, 0); LEDS.show(); break; //---ALL RED
case 102: one_color_all(0, 255, 0); LEDS.show(); break; //---ALL GREEN
case 103: one_color_all(0, 0, 255); LEDS.show(); break; //---ALL BLUE
case 104: one_color_all(255, 255, 0); LEDS.show(); break; //---ALL COLOR X
case 105: one_color_all(0, 255, 255); LEDS.show(); break; //---ALL COLOR Y
case 106: one_color_all(255, 0, 255); LEDS.show(); break; //---ALL COLOR Z
}
bouncedirection = 0;
one_color_all(0, 0, 0);
ledMode = newmode;
3824
void
change_mode
int
newmode
770@40 corner: 790@60
770@30
WS2812_Eff_Gyver_main_1
2d0a688e-3f53-440e-a9c9-41603c6c5b54
Эффекты на WS2812 Гивера главный_1
Создан на основе скетчей Алекса Гивера https://alexgyver.ru/ws2812b-fx/.
Ставится блок первым, работает только с последним блоком. Между ними ставить блоки эффектов.
Входы:
en_g - включение блока;
brightness - яркость;
Параметры:
LED_COUNT - количество светодиодов;
LED_DT - вывод, куда подключен DIN ленты. Для плат ESP8266 Nodemcu и тп, если стоит LED_DT = 2, то подключать к D2 (и так аналогично для других выводов, библиотека так написана). Для голых ESP8266 с выводами в GPIO совпадают.
aidar_i
15/12/2019
519
6
LED_COUNT
0bf96f67-5262-4d7e-b728-0a9dc47df8ae
300
84e66d63-ba89-45f6-b686-76b4af598d25
if (en_g) {
LEDS.setBrightness(brightness);
51
LEDS.setBrightness( 100 );
LEDS.addLeds<WS2811, LED_DT, GRB>(leds, LED_COUNT);
one_color_all(0, 0, 0);
LEDS.show();
127
библиотека для работы с лентой
#include
"FastLED.h"
ballColors
[3][3] = {
{0xff, 0, 0},
{0xff, 0xff, 0xff},
{0 , 0 , 0xff},
};
byte
светодиод начала отсчёта
BOTTOM_INDEX
= 0;
int
TOP_INDEX
= int(LED_COUNT / 2);
int
EVENODD
= LED_COUNT % 2;
int
leds
[LED_COUNT];
CRGB
-ARRAY FOR COPYING WHATS IN THE LED STRIP CURRENTLY (FOR CELL-AUTOMATA, MARCH, ETC)
ledsX
[LED_COUNT][3];
int
-FX LOOPS DELAY VAR
thisdelay
= 20;
int
-FX LOOPS DELAY VAR
thisstep
= 10;
int
-FX LOOPS DELAY VAR
thishue
= 0;
int
-FX LOOPS DELAY VAR
thissat
= 255;
int
thisindex
= 0;
int
thisRED
= 0;
int
thisGRN
= 0;
int
thisBLU
= 0;
int
-LED INDEX (0 to LED_COUNT-1
idex
= 0;
int
-HUE (0-255)
ihue
= 0;
int
-BRIGHTNESS (0-255)
ibright
= 0;
int
-SATURATION (0-255)
isat
= 0;
int
-SWITCH FOR COLOR BOUNCE (0-1)
bouncedirection
= 0;
int
-INC VAR FOR SIN LOOPS
tcount
= 0.0;
float
-ANOTHER COUNTING VAR
lcount
= 0;
int
leds[adex].setRGB( cred, cgrn, cblu);
void
set_color_led
int
adex
int
cred
int
cgrn
int
cblu
//-ONLY WORKS WITH INDEX < TOPINDEX
if (i == BOTTOM_INDEX) {
return BOTTOM_INDEX;
}
if (i == TOP_INDEX && EVENODD == 1) {
return TOP_INDEX + 1;
}
if (i == TOP_INDEX && EVENODD == 0) {
return TOP_INDEX;
}
return LED_COUNT - i;
253
int
horizontal_index
int
i
int iN = i + TOP_INDEX;
if (i >= TOP_INDEX) {
iN = ( i + TOP_INDEX ) % LED_COUNT;
}
return iN;
106
int
antipodal_index
int
i
int r;
if (i < LED_COUNT - 1) {
r = i + 1;
}
else {
r = 0;
}
return r;
90
int
adjacent_cw
int
i
int r;
if (i > 0) {
r = i - 1;
}
else {
r = LED_COUNT - 1;
}
return r;
int
adjacent_ccw
int
i
for (int i = 0; i < LED_COUNT; i++ ) {
ledsX[i][0] = leds[i].r;
ledsX[i][1] = leds[i].g;
ledsX[i][2] = leds[i].b;
}
131
void
copy_led_array
leds[Pixel].r = red;
leds[Pixel].g = green;
leds[Pixel].b = blue;
71
void
setPixel
int
Pixel
byte
red
byte
green
byte
blue
for (int i = 0; i < LED_COUNT; i++ ) {
setPixel(i, red, green, blue);
}
FastLED.show();
97
void
setAll
byte
red
byte
green
byte
blue
145.0d
790@30
260@30 corner: 260@180
EN
290@180
310@180
290@170 corner: 310@190
370@170 corner: 390@190
390@180
asimetricMulti
150
10000
Q
370@180
390@180 corner: 390@180
C
400@180
420@180
36
340@230
360@230 corner: 392.0d@250
340@230 corner: 412.0d@250
364@243.5d
340@240
360@240
340@230 corner: 360@250
392.0d@230 corner: 412.0d@250
412.0d@240
7.0d
24.0d
reset
392.0d@240
400@200 corner: 400@240
R
400@200
420@200
37
600@140
620@140 corner: 652.0d@160
600@140 corner: 672.0d@160
624@153.5d
600@150
652.0d@150
672.0d@150
620@150
520@150 corner: 520@180
>L
14.0d
500@180
520@180
520@200
2
up
V
10.0d
500@200
17
610@80
630@80 corner: 710@120
610@80 corner: 730@120
631.0d@94.5d
610@110
16
770@80
790@80 corner: 845.0d@120
770@80 corner: 865.0d@120
795.0d@94.5d
770@110
Clear_eff
clear
fd3f8f9e-3249-4526-81f1-85eb86e1b516
4283209c-2372-4cf2-9995-2f69d3d88fa8
6c588c0c-8516-4697-981b-32aa7453b0da
Очистка ленты
if (clear) {
one_color_all(0, 0, 0);
LEDS.show();
}
68
55.0d
790@110
730@110 corner: 730@110
Q
710@110
730@110
constant
Value
630@110
530@110 corner: 530@240
Sel
560@240
580@240
560@230 corner: 580@250
29
760@180
780@180 corner: 907.0d@240
760@180 corner: 927.0d@240
785.0d@194.5d
760@200 corner: 780@220
time_rl
20
760@230
780@230
746.0d@233.5d
Effect_RAINBOW_LOOP
Rainbow_loop
895c4f29-7943-446f-baa6-b1c8fd9dc4ce
85f502d4-7269-4357-a9d1-7827e98e694d
f319ad2a-1bcf-4b20-886e-e827ac3cb9eb
c8e629f4-6559-4122-a648-01e02275bee3
af7ed5d9-2a9e-462a-afd2-0187576a93d6
Эффект RAINBOW_LOOP
Ставится блок между главным и последними блоками.
50
LED_COUNT
f932f7e1-f765-48c4-9e33-9778f5f2a6c5
c041f2fd-6a2e-421c-acb9-5b3067390339
if ( Rainbow_loop ) { thisdelay = time_rl;
thisstep = 10;
rainbow_loop();
}
idex++;
ihue = ihue + thisstep;
if (idex >= LED_COUNT) {
idex = 0;
}
if (ihue > 255) {
ihue = 0;
}
leds[idex] = CHSV(ihue, thissat, 255);
LEDS.show();
delay(thisdelay);
192
void
rainbow_loop
760@220 corner: 780@240
760@210
5552a7a0-5c9d-40de-893a-ae03742d5903
Ставится блок между главным и последними блоками.
Входы:
Rainbow_loop - включение блока;
time_rl - скорость выполнения эффекта.
Параметры:
LED_COUNT - количество светодиодов в ленте.
Thissat - меняя значения этих параметров можно задавать другие цвета.
Thisstep - задержка.
285
Thissat
255
6448c5d7-1e35-4a7e-a3cd-974c43c9bdb7
185df97c-1f7b-49dc-8167-a5a5d4e0dc69
Thisstep
10
ee3343c6-8c7e-47cb-aaf7-46ff6b46393e
0179b9f7-0465-4aff-a52e-67253f384cb4
if ( Rainbow_loop ) { thisdelay = time_rl;
thisstep = Thisstep ;
thissat = Thissat;
rainbow_loop();
}
134
127.0d
780@210
660@210 corner: 660@220
Q0
15.0d
640@220
660@220
640@210 corner: 660@230
22
760@260
780@260 corner: 902.0d@300
760@260 corner: 922.0d@300
785.0d@274.5d
760@280 corner: 780@300
760@290
Effect_STRIP FLICKER
Effect_RAINBOW_LOOP
Rainbow_loop
895c4f29-7943-446f-baa6-b1c8fd9dc4ce
85f502d4-7269-4357-a9d1-7827e98e694d
time_rl
f319ad2a-1bcf-4b20-886e-e827ac3cb9eb
c8e629f4-6559-4122-a648-01e02275bee3
af7ed5d9-2a9e-462a-afd2-0187576a93d6
Эффект RAINBOW_LOOP
Ставится блок между главным и последними блоками.
LED_COUNT
f932f7e1-f765-48c4-9e33-9778f5f2a6c5
c041f2fd-6a2e-421c-acb9-5b3067390339
if ( Rainbow_loop ) { thisdelay = time_rl;
thisstep = 10;
rainbow_loop();
}
idex++;
ihue = ihue + thisstep;
if (idex >= LED_COUNT) {
idex = 0;
}
if (ihue > 255) {
ihue = 0;
}
leds[idex] = CHSV(ihue, thissat, 255);
LEDS.show();
delay(thisdelay);
void
rainbow_loop
Flicker
07c6ddc6-d495-4e6b-93f3-e7bb019e0fea
Эффект STRIP FLICKER
Ставится блок между главным и последними блоками.
Входы:
Flicker - включение блока;
Параметры:
LED_COUNT - количество светодиодов в ленте.
Thishue , Thissat - меняя значения этих параметров можно задавать другие цвета.
228
LED_COUNT
74564eaf-0ff0-43b3-9cf9-900b92802e49
0b9c4552-377b-4543-973d-36e67c62bff7
Thissat
b330408d-555e-4e96-a04d-effb0915d3a6
bdb29ae1-cdc8-47c1-a9ad-b0533eadb2d1
Thishue
160
8e4e03d1-a8cd-4409-8a92-a112982f9cef
d7f108a3-9f99-49f1-9b64-2c8e3a54d56e
if ( Flicker ) { thishue = Thishue;
thissat =Thissat;
flicker();
}
88
int random_bright = random(0, 255);
int random_delay = random(10, 100);
int random_bool = random(0, random_bright);
if (random_bool < 10) {
for (int i = 0 ; i < LED_COUNT; i++ ) {
leds[i] = CHSV(thishue, thissat, random_bright);
}
LEDS.show();
delay(random_delay);
}
298
void
flicker
122.0d
780@290
660@240 corner: 660@290
Q1
640@240
660@240
640@230 corner: 660@250
920@210
920@210 corner: 1096.0d@231.0d
left
плавная смена цветов всей ленты
170.0d
3@13.0d
940@280
940@280 corner: 1038.0d@298.0d
крутящаяся радуга
92.0d
3@10.0d
320@260
320@260 corner: 494.0d@281.0d
вывод случайного числа от 0 до 9
168.0d
3@13.0d
950@20
950@20 corner: 1023.0d@40.0d
12
главный блок
67.0d
3@12.0d
960@320
960@320 corner: 1047.0d@340.0d
последний блок
81.0d
3@12.0d
438.0d
-- СТРОКА --
280@180
300@180 corner: 340@240
280@180 corner: 360@240
311.5d@193.5d
8
0@90
20@90 corner: 51.0d@110
0@90 corner: 71.0d@110
24@103.5d
0@100
20@100
0@90 corner: 20@110
51.0d@90 corner: 71.0d@110
71.0d@100
23.0d
пуск
51.0d@100
90@90
110@90 corner: 190@150
90@90 corner: 210@150
139.0d@103.5d
90@110 corner: 110@130
0@130
20@130 corner: 52.0d@150
0@130 corner: 72.0d@150
24@143.5d
0@140
20@140
0@130 corner: 20@150
52.0d@130 corner: 72.0d@150
72.0d@140
52.0d@140
72.0d@140 corner: 72.0d@140
90@140
110@140
90@130 corner: 110@150
210@50
230@50 corner: 262.0d@70
210@50 corner: 282.0d@70
234@63.5d
210@50 corner: 230@70
262.0d@60
282.0d@60
262.0d@50 corner: 282.0d@70
210@60
230@60
220@60 corner: 220@120
190@120
210@120
190@110 corner: 210@130
400@0
420@0 corner: 480@100
400@0 corner: 500@100
435.0d@14.5d
v0
400@30
420@30
400@20 corner: 420@40
v1
----- ПРИВЕТ ----
400@50
420@50
314.0d@54.0d
400@40 corner: 420@60
v2
------ ПОКА ----
400@70
420@70
331.0d@74.0d
400@60 corner: 420@80
400@80 corner: 420@100
520@70
540@70 corner: 678.0d@250
520@70 corner: 698.0d@250
545.0d@85.0d
520@90 corner: 540@110
speed
520@120
540@120
506.0d@123.5d
WS2812_scroll1_rus
in_Text
c3ba1340-11dd-46a3-aea1-20810e194d20
f88e9b25-2e80-4ea2-ad57-93e5cda7fe43
6f071f29-45eb-407c-998c-1dbf7aff35cd
WS2812 бегущая строка1русский
/* Пробелы равны дистанции между прокруткой текста. Один пробел 7 равен пикселям.
Например 60/7=9, нужно 9 пробелов в кавычках, что равно 63 пикселям, следующий раз текст появится через такое количество пикселей. */
// MATRIX DECLARATION:
// Parameter 1 = width of NeoPixel matrix
// Parameter 2 = height of matrix
// Parameter 3 = pin number (most are valid)
// Parameter 4 = matrix layout flags, add together as needed:
// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
// Position of the FIRST LED in the matrix; pick two, e.g.
// NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
// NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
// rows or in vertical columns, respectively; pick one or the other.
// NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
// in the same order, or alternate lines reverse direction; pick one.
// See example below for these values in action.
// Parameter 5 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_GRBW Pixels are wired for GRBW bitstream (RGB+W NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
// Example for NeoPixel Shield. In this application we'd like to use it
// as a 5x8 tall matrix, with the USB port positioned at the top of the
// Arduino. When held that way, the first pixel is at the top right, and
// lines are arranged in columns, progressive order. The shield uses
// 800 KHz (v2) pixels that expect GRB color data.
1761
matrix.fillScreen(0);
matrix.setCursor(x, 0);
tape = utf8rus(in_Text);
matrix.print(tape);
if(--x < -36) {
x = matrix.width();
if(++pass >= 3) pass = 0;
matrix.setTextColor(colors[pass]);
}
matrix.show();
delay(100);
243
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(255);
matrix.setTextColor(colors[0]);
112
#include
<Adafruit_GFX.h>
#include
<Adafruit_NeoMatrix.h>
#include
<Adafruit_NeoPixel.h>
Make Arduino Due happy
#define
PSTR
#define
PIN
6
tape
= "";
String
matrix
= Adafruit_NeoMatrix(32, 8, PIN,
NEO_MATRIX_TOP + NEO_MATRIX_RIGHT +
NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
NEO_GRB + NEO_KHZ800);
Adafruit_NeoMatrix
colors
[] = {
matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };
const uint16_t
x
= matrix.width();
int
pass
= 0;
int
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };
k = source.length(); i = 0;
while (i < k) {
n = source[i]; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source[i]; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
break;
}
case 0xD1: {
n = source[i]; i++;
if (n == 0x91) { n = 0xB7; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
623
String
utf8rus
String
source
ebf5c228-e3e3-4fe0-ae7c-dd373fbaf705
3b5f00b2-9abc-4be8-8c9b-8b7bf0f4d225
r
f75be403-a1c4-47ba-9cf7-96427eb873f3
f66d4be1-6adb-4504-bc4f-818c05c756d5
g
19140a8c-66de-413d-b227-76215109ae7b
41a247b6-efbd-4429-9ebb-47e7b72539d5
b
1dc3f30c-b06d-42bf-a3b5-51978128e804
ac37b9eb-f9b3-439c-8ee6-e42606c4eb4e
2a204836-8b26-41a8-8ab7-1d648ec995b7
К Ардуино подключается 6 пин. По умолчанию лента подключена последовательно, можно зигзагом, вертикальными столбцами (см ниже)
// ДЕКЛАРАЦИЯ МАТРИЦЫ:
// Параметр 1 = ширина матрицы NeoPixel
// Параметр 2 = высота матрицы
// Параметр 3 = номер контакта (большинство из них действительны)
// Параметр 4 = флаги макета макета, добавьте вместе по мере необходимости:
// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
// Положение светодиода FIRST в матрице; выберите два, например.
// NEO_MATRIX_TOP + NEO_MATRIX_LEFT для левого верхнего угла.
// NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: светодиоды расположены горизонтально
// строки или вертикальные столбцы соответственно; выбрать тот или другой.
// NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: все строки / столбцы продолжаются
// в том же порядке, или в альтернативном направлении в обратном направлении; Выбери один.
// См. Пример ниже для этих значений в действии.
// Параметр 5 = флаги типа пикселя, добавляем вместе по мере необходимости:
// NEO_KHZ800 800 кГц битовый поток (большинство продуктов NeoPixel с светодиодами WS2812)
// NEO_KHZ400 400 кГц (классический «v1» (не v2) пиксель FLORA, драйверы WS2811)
// NEO_GRB Пиксели подключены для потока бит GRB (большинство продуктов NeoPixel)
// пиксели NEO_RGB подключены для битового потока RGB (v1 FLORA пикселей, а не v2)
// Пример для NeoPixel Shield. В этом приложении мы хотели бы использовать его
// как матрица высотой 5x8, с портом USB, расположенным в верхней части
// Ардуино. Когда это удерживается таким образом, первый пиксель находится в верхнем правом углу и
// строки расположены в столбцах, поступательном порядке. Щит использует
// 800 КГц (v2) пикселей, которые ожидают данные цвета GRB.
NEO_MATRIX_TOP 0x00 // Пиксель 0 находится в верхней части матрицы
NEO_MATRIX_BOTTOM 0x01 // Пиксель 0 находится внизу матрицы
NEO_MATRIX_LEFT 0x00 // Пиксель 0 находится слева от матрицы
NEO_MATRIX_RIGHT 0x02 // Пиксель 0 находится справа от матрицы
NEO_MATRIX_CORNER 0x03 // Битмаск для пикселя 0 матричный угол
NEO_MATRIX_ROWS 0x00 // Матрица является строкой большой (горизонтальной)
NEO_MATRIX_COLUMNS 0x04 // Матрица - основная колонка (вертикальная)
NEO_MATRIX_AXIS 0x04 // Битовая маска для раскладки строк / столбцов
NEO_MATRIX_PROGRESSIVE 0x00 // Тот же порядок пикселей по каждой линии
NEO_MATRIX_ZIGZAG 0x08 // Обратный порядок строк между строками
NEO_MATRIX_SEQUENCE 0x08 // Битмаск для порядка строк в пикселях
2473
w
32
9f0ab06f-1a80-4d10-a7c6-59ef443ca0ab
e2734705-678f-4dc9-b72f-294097b75ba6
topbotton
NEO_MATRIX_TOP
NEO_MATRIX_TOP или NEO_MATRIX_BOTTON (верх или низ)
f4a0f125-ed1d-42c6-a288-1e0e8274347f
94153221-2653-4da9-bd7b-98e399aa5ec3
rightleft
NEO_MATRIX_RIGHT
NEO_MATRIX_RIGHT или NEO_MATRIX_LEFT (Справа или слева)
1b378b2d-6278-4554-9463-cfc943ff2dc0
8def349a-6380-4d83-993d-d0b2b123a442
rowscolumns
NEO_MATRIX_ROWS
NEO_MATRIX_ROWS или NEO_MATRIX_COLUMNS (светодиоды расположены горизонтально в строках или вертикальные столбцы )
a7f9ebe3-aa3b-405e-84dc-9469dfbb3d7b
9c766234-9218-4d00-be87-f41640d6cc35
progressivezigzaq
NEO_MATRIX_PROGRESSIVE
NEO_MATRIX_PROGRESSIVE или NEO_MATRIX_ZIGZAG (последовательно или обратный порядок строк между строками)
90071f6c-0553-412d-b31d-7c911139ab10
50d83b47-2cc2-4133-9353-eabb77121004
bitstream
NEO_KHZ800
NEO_KHZ800 или NEO_KHZ400 (битовый поток (большинство продуктов NeoPixel с светодиодами WS2812) или классический «v1» (не v2) пиксель FLORA, драйверы WS2811 )
128a07c0-338f-4637-b651-bf0747d49124
f33ece13-15b8-4f9d-b399-cbca17a0ca12
matrix.fillScreen(0);
matrix.setCursor(x, 0);
tape = utf8rus(in_Text);
matrix.print(tape);
if(--x < -74) {
x = matrix.width();
matrix.setTextColor(matrix.Color(r, g, b));
}
matrix.show();
delay(speed);
227
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(255);
matrix.setTextColor(matrix.Color(r, g, b));
124
#include
<Adafruit_GFX.h>
#include
<Adafruit_NeoMatrix.h>
#include
<Adafruit_NeoPixel.h>
Make Arduino Due happy
#define
PSTR
#define
PIN
6
tape
= "";
String
matrix
= Adafruit_NeoMatrix(w, h, PIN,
topbotton + rightleft +
rowscolumns + progressivezigzaq,
NEO_GRB + bitstream);
Adafruit_NeoMatrix
const uint16_t colors[] = { matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };
x
= matrix.width();
int
pass
= 0;
int
520@110 corner: 540@130
red
200
520@140
540@140
500.0d@143.5d
0-255
520@130 corner: 540@150
green
520@160
540@160
0-255
520@150 corner: 540@170
blue
520@180
540@180
500.0d@183.5d
0-255
520@170 corner: 540@190
brightness
520@200
540@200
501.0d@203.5d
WS2812_scroll_rus
long_string
51e0bf87-1e8a-49a7-a9e3-ad3b3d2f4146
b570e21c-62eb-45a9-8f07-084d54fffecb
fc9e9bf1-92fe-41c9-a2a1-85368247de61
h
b755b8dd-6b64-4547-bd86-7dcdd83b18e2
a480020f-48cc-473e-bff5-fe7986daddca
matrix.fillScreen(0);
matrix.setCursor(x, 0);
tape = utf8rus(in_Text);
matrix.print(tape);
if(--x < -long_string) {
x = matrix.width();
matrix.setTextColor(matrix.Color(r, g, b));
}
matrix.show();
delay(speed);
236
length_string
brightness
0ef5341b-c15e-4f92-8781-c59d983abadd
9a8560fd-5dfb-424b-83b0-a0a97ad989b1
6e337b9b-31ba-4dae-a55f-ed5d363b35bc
matrix.fillScreen(0);
matrix.setCursor(x, 0);
tape = utf8rus(in_Text);
matrix.print(tape);
if(--x < -length_string) {
x = matrix.width();
matrix.setTextColor(matrix.Color(r, g, b));
}
matrix.show();
delay(speed);
238
matrix.begin();
matrix.setTextWrap(0);
matrix.setBrightness(brightness);
matrix.setTextColor(matrix.Color(255,0, 0));
matrix.print(tape);
147
От 0 до 255
en
bda22501-9107-4dae-8af9-283a44f9ebd6
47225166-474a-41bb-b1e3-d622e6d63024
out
7ae312ce-289a-40c8-a1d9-0db430a394cc
156c43a3-7231-4466-a11b-6ecb4331953d
edbf02fc-a0d6-4795-af29-ce7818a2e94e
out=false;
if (en) {
matrix.fillScreen(0);
matrix.setCursor(x, 0);
tape = utf8rus(in_Text);
matrix.print(tape);
if(--x < -length_string) {
x = matrix.width();
matrix.setTextColor(matrix.Color(r, g, b));
}
matrix.show();
out=true;
delay(speed);
}
299
matrix.begin();
matrix.setTextWrap( 0 );
matrix.setBrightness( 255 );
matrix.setTextColor(matrix.Color(r, g, b));
123
#include
<Adafruit_GFX.h>
#include
<Adafruit_NeoMatrix.h>
#include
<Adafruit_NeoPixel.h>
#define PSTR // Make Arduino Due happy
#define
PIN
6
tape
= "";
String
matrix
= Adafruit_NeoMatrix(w, h, PIN,
topbotton + rightleft +
rowscolumns + progressivezigzaq,
NEO_GRB + bitstream);
Adafruit_NeoMatrix
x
= matrix.width();
int
bf2d579a-9d23-4830-996b-51ebeb93329b
54557a04-e214-4e22-ae1a-58b807db40f1
0-255
e96c0230-50d6-45f2-b920-e116af027e11
5b6d79dc-035e-4578-8858-551d33f49ba6
WS2812 бегущая строка русский
NEO_MATRIX_PROGRESSIVE
matrix.setBrightness( brightness );
matrix.fillScreen(0);
matrix.setCursor(x, 0);
matrix.print(tape);
matrix.setTextColor(matrix.Color(r, g, b));
if(--x < -length_string)
{
if (en){x = matrix.width();}
tape = utf8rus(in_Text);
}
matrix.show();
delay(speed);
301
matrix.begin();
matrix.setTextWrap( 0 );
matrix.setBrightness( brightness );
matrix.setTextColor(1, 0);// цвет текста и фона
520@190 corner: 540@210
StaticText
520@220
540@220
520@210 corner: 540@230
410@200
430@200 corner: 470@260
410@200 corner: 490@260
438.5d@213.5d
Q
340@230
360@230
360@230 corner: 360@230
410@230
430@230
410@220 corner: 430@240
14
280@250
300@250 corner: 357.0d@270
280@250 corner: 377.0d@270
304@263.5d
280@260
300@260
280@250 corner: 300@270
357.0d@250 corner: 377.0d@270
377.0d@260
49.0d
357.0d@260
377.0d@250 corner: 377.0d@260
410@250
430@250
410@240 corner: 430@260
470@240 corner: 490@260
490@250
470@250
490@240 corner: 490@250
StartRunning
520@240
540@240
WS2812_scroll_rus_Новый
42513175-cba1-4d1b-9ba3-c0194855c2e2
7048fbad-442f-45a3-99bf-04f9dc6f15b6
out
40628fd9-5e94-4b6e-8210-f47f2da11970
25750a96-3a72-44d2-86af-bf71934e4de6
eb433fa9-c3d7-450a-9add-22d5e39bf97b
w
9f0ab06f-1a80-4d10-a7c6-59ef443ca0ab
h
b755b8dd-6b64-4547-bd86-7dcdd83b18e2
topbotton
NEO_MATRIX_TOP
NEO_MATRIX_TOP или NEO_MATRIX_BOTTON (верх или низ)
f4a0f125-ed1d-42c6-a288-1e0e8274347f
rightleft
NEO_MATRIX_RIGHT
NEO_MATRIX_RIGHT или NEO_MATRIX_LEFT (Справа или слева)
1b378b2d-6278-4554-9463-cfc943ff2dc0
rowscolumns
NEO_MATRIX_ROWS
NEO_MATRIX_ROWS или NEO_MATRIX_COLUMNS (светодиоды расположены горизонтально в строках или вертикальные столбцы )
a7f9ebe3-aa3b-405e-84dc-9469dfbb3d7b
progressivezigzaq
NEO_MATRIX_PROGRESSIVE
NEO_MATRIX_PROGRESSIVE или NEO_MATRIX_ZIGZAG (последовательно или обратный порядок строк между строками)
90071f6c-0553-412d-b31d-7c911139ab10
bitstream
NEO_KHZ800
NEO_KHZ800 или NEO_KHZ400 (битовый поток (большинство продуктов NeoPixel с светодиодами WS2812) или классический «v1» (не v2) пиксель FLORA, драйверы WS2811 )
128a07c0-338f-4637-b651-bf0747d49124
out=false;
//matrix.invertDisplay(1);
if (en) {
matrix.setBrightness( brightness );
matrix.fillScreen(0);
matrix.print(tape);
matrix.setTextColor(matrix.Color(red, green, blue));
matrix.setCursor(x, 0);
if(--x < -length_string)
{
x = matrix.width();
tape = utf8rus(in_Text);
out=true;
}
matrix.show();
delay(speed);
}
641
matrix.begin();
matrix.setTextWrap( 0 );
47
running
X_1
b0b6ea8a-748c-48bb-8eba-e04ba53af192
a7326b66-21c2-42c4-81d3-eea272c5f0db
0f970815-67c1-4fac-9d2e-27c6981ff109
WS2812 бегущая строка русский Нов
К Ардуино подключается По умолчанию лента подключена последовательно, можно зигзагом, вертикальными столбцами (см ниже)
// ДЕКЛАРАЦИЯ МАТРИЦЫ:
// Параметр 1 = ширина матрицы NeoPixel
// Параметр 2 = высота матрицы
// Параметр 3 = номер контакта (большинство из них действительны)
// Параметр 4 = флаги макета макета, добавьте вместе по мере необходимости:
// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
// Положение светодиода FIRST в матрице; выберите два, например.
// NEO_MATRIX_TOP + NEO_MATRIX_LEFT для левого верхнего угла.
// NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: светодиоды расположены горизонтально
// строки или вертикальные столбцы соответственно; выбрать тот или другой.
// NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: все строки / столбцы продолжаются
// в том же порядке, или в альтернативном направлении в обратном направлении; Выбери один.
// См. Пример ниже для этих значений в действии.
// Параметр 5 = флаги типа пикселя, добавляем вместе по мере необходимости:
// NEO_KHZ800 800 кГц битовый поток (большинство продуктов NeoPixel с светодиодами WS2812)
// NEO_KHZ400 400 кГц (классический «v1» (не v2) пиксель FLORA, драйверы WS2811)
// NEO_GRB Пиксели подключены для потока бит GRB (большинство продуктов NeoPixel)
// пиксели NEO_RGB подключены для битового потока RGB (v1 FLORA пикселей, а не v2)
Пример для NeoPixel Shield. В этом приложении мы хотели бы использовать его как матрица высотой 5x8, с портом USB, расположенным в верхней части Ардуино. Когда это удерживается таким образом, первый пиксель находится в верхнем правом углу и
строки расположены в столбцах, поступательном порядке. Щит использует 800 КГц (v2) пикселей, которые ожидают данные цвета GRB.
NEO_MATRIX_TOP 0x00 // Пиксель 0 находится в верхней части матрицы
NEO_MATRIX_BOTTOM 0x01 // Пиксель 0 находится внизу матрицы
NEO_MATRIX_LEFT 0x00 // Пиксель 0 находится слева от матрицы
NEO_MATRIX_RIGHT 0x02 // Пиксель 0 находится справа от матрицы
NEO_MATRIX_CORNER 0x03 // Битмаск для пикселя 0 матричный угол
NEO_MATRIX_ROWS 0x00 // Матрица является строкой большой (горизонтальной)
NEO_MATRIX_COLUMNS 0x04 // Матрица - основная колонка (вертикальная)
NEO_MATRIX_AXIS 0x04 // Битовая маска для раскладки строк / столбцов
NEO_MATRIX_PROGRESSIVE 0x00 // Тот же порядок пикселей по каждой линии
NEO_MATRIX_ZIGZAG 0x08 // Обратный порядок строк между строками
NEO_MATRIX_SEQUENCE 0x08 // Битмаск для порядка строк в пикселях
2455
Пин подключения
Пин к которому подключена лента
dabf3bfb-7448-4f44-bf9f-1eb96306492e
fed3e13d-541b-4c58-bde6-5427def6909e
Ширина шрифта
В точках
fb389d47-e523-4f03-9392-6ef2c2c48ef4
587e91f4-aba8-466a-8954-4901e6ca2ce3
out=false;
if ( brightness != last_brightness ) { matrix.setBrightness( brightness ); last_brightness = brightness;}
if ( in_Text != STR_Temp ) // только если текс на входе изменился
{
STR_Temp = in_Text;
tape = utf8rus(in_Text);
length_string= tape.length()*( Ширина шрифта); //Так подсчет символов с кирилицей будет верный
}
if ( millis()> NeoMatrix_NextUpdate )// выполняется только когда пришло время
{
matrix.fillScreen(0);
// if (yust==0) matrix.setCursor( matrix.setCursor((-length_string+matrix.width())/2, 0);//центр
//else if (yust==1) matrix.setCursor( matrix.setCursor((0, 0);//слева
//else if (yust==2) matrix.setCursor( matrix.setCursor((0, matrix.width());//справа
matrix.print(tape);
matrix.setTextColor(matrix.Color(red, green, blue));
if (en)
{
matrix.setCursor(x, 0);
if(--x < -length_string)
{
x = matrix.width();
out=true;
}
matrix.show();
NeoMatrix_NextUpdate =millis()+speed;// расчет времени когда следующий раз обновить при движении
}
else NeoMatrix_NextUpdate =millis()+1000; // обновлять раз в секунду если текс стоит.
}
X_1 = x ;
1223
#include
<Adafruit_GFX.h>
#include
<Adafruit_NeoMatrix.h>
#include
<Adafruit_NeoPixel.h>
#define PSTR // Make Arduino Due happy
STR_Temp
;
String
tape
= "";
String
matrix
= Adafruit_NeoMatrix(w, h, Пин подключения ,
topbotton + rightleft + rowscolumns + progressivezigzaq, NEO_GRB + bitstream);
Adafruit_NeoMatrix
x
= matrix.width();
int
length_string
;
byte
last_inv
;
bool
last_brightness
;
bool
NeoMatrix_NextUpdate
;
unsigned long
aa8b7500-3aa6-4682-9b78-c192e2fbfb28
if ( brightness != last_brightness ) { matrix.setBrightness( brightness ); last_brightness = brightness;}
if ( in_Text != STR_Temp ) // только если текс на входе изменился
{
STR_Temp = in_Text;
tape = utf8rus(in_Text);
length_string= tape.length()*( Ширина шрифта); //Так подсчет символов с кирилицей будет верный
}
if ( StartRunning && !last_StartRunning ) //выполняется по преднему фронту
{
x= w ; //Возмоно нужен 0 не уверен
running =true; //начать пробег
NeoMatrix_NextUpdate =millis(); // сдвинуть время старта
}
last_StartRunning=StartRunning;
if ( millis()> NeoMatrix_NextUpdate )// выполняется только когда пришло время
{
matrix.fillScreen(0);
// if (yust==0) matrix.setCursor( matrix.setCursor((-length_string+matrix.width())/2, 0);//центр
//else if (yust==1) matrix.setCursor( matrix.setCursor((0, 0);//слева
//else if (yust==2) matrix.setCursor( matrix.setCursor((0, matrix.width());//справа
matrix.print(tape);
matrix.setTextColor(matrix.Color(red, green, blue));
if (running)
{
matrix.setCursor(x, 0);
if(--x < -length_string)
{
x = matrix.width();
}
else running = false;
matrix.show();
NeoMatrix_NextUpdate =millis()+speed;// расчет времени когда следующий раз обновить при движении
}
else NeoMatrix_NextUpdate =millis()+1000; // обновлять раз в секунду если текс стоит.
}
X_1 = x ;
1469
#include
<Adafruit_GFX.h>
#include
<Adafruit_NeoMatrix.h>
#include
<Adafruit_NeoPixel.h>
#define PSTR // Make Arduino Due happy
STR_Temp
;
String
tape
= "";
String
matrix
= Adafruit_NeoMatrix(w, h, Пин подключения ,
topbotton + rightleft + rowscolumns + progressivezigzaq, NEO_GRB + bitstream);
Adafruit_NeoMatrix
x
= matrix.width();
int
length_string
;
byte
last_inv
;
bool
last_brightness
;
bool
last_StartRunning
;
bool
toStart
;
bool
NeoMatrix_NextUpdate
;
unsigned long
520@230 corner: 540@250
37.0d
678.0d@200
698.0d@200
678.0d@190 corner: 698.0d@210
pulse
26.0d
678.0d@220
698.0d@220
22d1cb73-fb77-4b46-8e91-e5e3408187c1
91e70c80-554a-41e3-85c7-a650bd7497a8
end
ba3e2421-2d8b-4af8-9d2c-c2d5b94dbe9a
3c4617f6-1b81-4f43-b42f-903095da2f11
1abb6edc-11f1-40a3-89ca-a05a8186cb3e
WS2812 бегущая строка русский V.05
К Ардуино подключается По умолчанию лента подключена последовательно, можно зигзагом, вертикальными столбцами (см ниже)
Входа:
StaticText - выводит статический текст в крайне левое положение, только если нет сигнала на входе StartRunning
StartRunning - выводит бегущую строку, строка пробегает один раз.
speed - пауза между сдвигами симовлов при бегущей строке, в мс
brightness - общая яркость свечения , 0-255
Выхода:
running - единица пока бежит строка
pulse - импульс при каждом сдвига на один светодиод при бегущей строке
end - импуль при окончании бега строки
Парамтеры:
// ДЕКЛАРАЦИЯ МАТРИЦЫ:
w = ширина матрицы NeoPixel
h = высота матрицы
Пин подключения = номер контакта (большинство из них действительны)
// Параметр 4 = флаги макета макета, добавьте вместе по мере необходимости:
// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
// Положение светодиода FIRST в матрице; выберите два, например.
// NEO_MATRIX_TOP + NEO_MATRIX_LEFT для левого верхнего угла.
// NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: светодиоды расположены горизонтально
// строки или вертикальные столбцы соответственно; выбрать тот или другой.
// NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: все строки / столбцы продолжаются
// в том же порядке, или в альтернативном направлении в обратном направлении; Выбери один.
// См. Пример ниже для этих значений в действии.
// Параметр 5 = флаги типа пикселя, добавляем вместе по мере необходимости:
// NEO_KHZ800 800 кГц битовый поток (большинство продуктов NeoPixel с светодиодами WS2812)
// NEO_KHZ400 400 кГц (классический «v1» (не v2) пиксель FLORA, драйверы WS2811)
// NEO_GRB Пиксели подключены для потока бит GRB (большинство продуктов NeoPixel)
// пиксели NEO_RGB подключены для битового потока RGB (v1 FLORA пикселей, а не v2)
NEO_MATRIX_TOP 0x00 // Пиксель 0 находится в верхней части матрицы
NEO_MATRIX_BOTTOM 0x01 // Пиксель 0 находится внизу матрицы
NEO_MATRIX_LEFT 0x00 // Пиксель 0 находится слева от матрицы
NEO_MATRIX_RIGHT 0x02 // Пиксель 0 находится справа от матрицы
NEO_MATRIX_CORNER 0x03 // Битмаск для пикселя 0 матричный угол
NEO_MATRIX_ROWS 0x00 // Матрица является строкой большой (горизонтальной)
NEO_MATRIX_COLUMNS 0x04 // Матрица - основная колонка (вертикальная)
NEO_MATRIX_AXIS 0x04 // Битовая маска для раскладки строк / столбцов
NEO_MATRIX_PROGRESSIVE 0x00 // Тот же порядок пикселей по каждой линии
NEO_MATRIX_ZIGZAG 0x08 // Обратный порядок строк между строками
NEO_MATRIX_SEQUENCE 0x08 // Битмаск для порядка строк в пикселях
2536
В точках + пробел, т.е. ширина 5 +1 пробел = 6
pulse =0;
end =0;
if ( brightness != last_brightness ) { matrix.setBrightness( brightness ); last_brightness = brightness;}
if ( in_Text != STR_Temp ) // только если текс на входе изменился
{
STR_Temp = in_Text;
tape = utf8rus(in_Text);
length_string= tape.length()*( Ширина шрифта); //Так подсчет символов с кирилицей будет верный
NeoMatrix_NextUpdate =millis(); // сдвинуть время старта
}
if ( StartRunning && !last_StartRunning ) //выполняется по преднему фронту
{
x = matrix.width();
running =true; //начать пробег
NeoMatrix_NextUpdate =millis(); // сдвинуть время старта
}
last_StartRunning=StartRunning;
if ( millis()> NeoMatrix_NextUpdate )// выполняется только когда пришло время
{
matrix.fillScreen(0);
// if (yust==0) matrix.setCursor( matrix.setCursor((-length_string+matrix.width())/2, 0);//центр
//else if (yust==1) matrix.setCursor( matrix.setCursor((0, 0);//слева
//else if (yust==2) matrix.setCursor( matrix.setCursor((0, matrix.width());//справа
matrix.print(tape);
matrix.setTextColor(matrix.Color(red, green, blue));
if (running)
{
matrix.setCursor(x, 0);
if(--x < -length_string)
{
running = false;
end =true;
}
matrix.show();
pulse =1;
NeoMatrix_NextUpdate =millis()+speed;// расчет времени когда следующий раз обновить при движении
}
else
{
if ( StaticText )
{
matrix.setCursor(0, 0);
matrix.show();
}
NeoMatrix_NextUpdate =millis()+1000; // обновлять раз в секунду если текс стоит.
}
}
1593
#include
<Adafruit_GFX.h>
#include
<Adafruit_NeoMatrix.h>
#include
<Adafruit_NeoPixel.h>
#define PSTR // Make Arduino Due happy
STR_Temp
;
String
tape
= "";
String
matrix
= Adafruit_NeoMatrix(w, h, Пин подключения ,
topbotton + rightleft + rowscolumns + progressivezigzaq, NEO_GRB + bitstream);
Adafruit_NeoMatrix
x
= matrix.width();
int
length_string
;
int
last_brightness
;
bool
last_StartRunning
;
bool
toStart
;
bool
NeoMatrix_NextUpdate
;
unsigned long
678.0d@210 corner: 698.0d@230
9
730@250
750@250 corner: 781.0d@270
730@250 corner: 801.0d@270
754@263.5d
730@250 corner: 750@270
781.0d@260
801.0d@260
781.0d@250 corner: 801.0d@270
730@260
750@260
698.0d@240 corner: 698.0d@260
19.0d
678.0d@240
698.0d@240
678.0d@230 corner: 698.0d@250
520@100
186d4abb-0479-4193-ad68-c5649269a30d
WS2812 бегущая строка русский V0,11
К Ардуино подключается По умолчанию лента подключена последовательно, можно зигзагом, вертикальными столбцами (см ниже)
Текс выводится только когда единица на StaticText или одиночный пробе после единицы на StartRunning.
Обновление текста происходи при обновлении данны на входах red , green, blue , in_Text , brightness
Входа:
StaticText - выводит статический текст в крайне левое положение, только если нет сигнала на входе StartRunning
StartRunning - выводит бегущую строку, строка пробегает один раз.
speed - пауза между сдвигами симовлов при бегущей строке, в мс
brightness - общая яркость свечения , 0-255
Выхода:
running - единица пока бежит строка
pulse - импульс при каждом сдвига на один светодиод при бегущей строке
end - импуль при окончании бега строки
Парамтеры:
// ДЕКЛАРАЦИЯ МАТРИЦЫ:
w = ширина матрицы NeoPixel
h = высота матрицы
Пин подключения = номер контакта (большинство из них действительны)
// Параметр 4 = флаги макета макета, добавьте вместе по мере необходимости:
// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
// Положение светодиода FIRST в матрице; выберите два, например.
// NEO_MATRIX_TOP + NEO_MATRIX_LEFT для левого верхнего угла.
// NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: светодиоды расположены горизонтально
// строки или вертикальные столбцы соответственно; выбрать тот или другой.
// NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: все строки / столбцы продолжаются
// в том же порядке, или в альтернативном направлении в обратном направлении; Выбери один.
// См. Пример ниже для этих значений в действии.
// Параметр 5 = флаги типа пикселя, добавляем вместе по мере необходимости:
// NEO_KHZ800 800 кГц битовый поток (большинство продуктов NeoPixel с светодиодами WS2812)
// NEO_KHZ400 400 кГц (классический «v1» (не v2) пиксель FLORA, драйверы WS2811)
// NEO_GRB Пиксели подключены для потока бит GRB (большинство продуктов NeoPixel)
// пиксели NEO_RGB подключены для битового потока RGB (v1 FLORA пикселей, а не v2)
NEO_MATRIX_TOP 0x00 // Пиксель 0 находится в верхней части матрицы
NEO_MATRIX_BOTTOM 0x01 // Пиксель 0 находится внизу матрицы
NEO_MATRIX_LEFT 0x00 // Пиксель 0 находится слева от матрицы
NEO_MATRIX_RIGHT 0x02 // Пиксель 0 находится справа от матрицы
NEO_MATRIX_CORNER 0x03 // Битмаск для пикселя 0 матричный угол
NEO_MATRIX_ROWS 0x00 // Матрица является строкой большой (горизонтальной)
NEO_MATRIX_COLUMNS 0x04 // Матрица - основная колонка (вертикальная)
NEO_MATRIX_AXIS 0x04 // Битовая маска для раскладки строк / столбцов
NEO_MATRIX_PROGRESSIVE 0x00 // Тот же порядок пикселей по каждой линии
NEO_MATRIX_ZIGZAG 0x08 // Обратный порядок строк между строками
NEO_MATRIX_SEQUENCE 0x08 // Битмаск для порядка строк в пикселях
2748
30
Центрировать
Статический текст
903497cb-2556-4f7d-af63-cf16964b3cab
8afae031-ef5f-4167-af07-dc64409cad56
pulse =0;
end =0;
toStart=0;
if ( brightness != last_brightness ) { matrix.setBrightness( brightness ); last_brightness = brightness ; toStart=1;}
if (matrix.Color(red, green, blue)!=last_Color ) { last_Color=matrix.Color(red, green, blue); matrix.setTextColor(last_Color); toStart=1;}
if ( !running &&(in_Text != STR_Temp)) // только если текст на входе изменился
{
STR_Temp = in_Text;
tape = utf8rus(in_Text);
length_string= tape.length()*( Ширина шрифта); //Так подсчет символов с кирилицей будет верный
toStart=1;
}
if ( StartRunning && !last_StartRunning ) //обнаружение переднего фронта StartRunning
{
x = matrix.width();
running =true; //начать пробег
toStart=1;
}
last_StartRunning=StartRunning;
if (StaticText && !last_StaticText) // обнаружение переднего фронта StaticText
{
toStart=1;
}
last_StaticText=StaticText;
if (running && (millis()> NeoMatrix_NextUpdate)) // расчеты времени и координа для бегущей строки
{
NeoMatrix_NextUpdate =millis()+speed;// расчет времени когда следующий раз обновить при движении
toStart=1;
if(--x < -length_string) {running = false; end =true; }
pulse =1;
}
if ( toStart && (running || StaticText ))// выполняется вывод на табло
{
matrix.fillScreen(0);
if (StaticText && !running ) // если ститический то указать
{
if ( Центрировать ) x=(-length_string+matrix.width())/2;
else x=0;
}
matrix.setCursor(x, 0);
matrix.print(tape);
matrix.show();
}
1468
#include
<Adafruit_GFX.h>
#include
<Adafruit_NeoMatrix.h>
#include
<Adafruit_NeoPixel.h>
#define PSTR // Make Arduino Due happy
matrix
= Adafruit_NeoMatrix(w, h, Пин подключения ,
topbotton + rightleft + rowscolumns + progressivezigzaq, NEO_GRB + bitstream);
Adafruit_NeoMatrix
STR_Temp
;
String
tape
;
String
NeoMatrix_NextUpdate
;
unsigned long
last_Color
;
uint16_t
x
;
int
length_string
;
int
last_brightness
;
byte
last_StartRunning
;
bool
last_StaticText
;
bool
toStart
;
bool
138.0d
540@100
500@90 corner: 500@100
480@90
500@90
480@80 corner: 500@100
400@90
Sel
420@90
210@90 corner: 210@140
190@140
210@140
190@130 corner: 210@150
90@120
110@120
71.0d@100 corner: 71.0d@210
280@210
300@210
280@200 corner: 300@220
0@210
20@210 corner: 60@250
0@210 corner: 80@250
26.5d@224.5d
I
0@240
14@240
0@230 corner: 14@250
60@230 corner: 80@250
80@240
60@240
80@230 corner: 80@240
280@230
300@230
280@220 corner: 300@240
340@220 corner: 360@240
368.0d
--Упровление строка - эфект --
240@60
260@60 corner: 317.0d@80
240@60 corner: 337.0d@80
264@73.5d
60@60
80@60 corner: 193.0d@80
60@60 corner: 213.0d@80
84@73.5d
213.0d@70
105.0d
переключ строка вкл
19273178
199.0d@70
213.0d@70 corner: 213.0d@70
240@70
260@70
240@60 corner: 260@80
317.0d@70
337.0d@70
317.0d@60 corner: 337.0d@80
240@110
260@110 corner: 319.0d@130
240@110 corner: 339.0d@130
264@124.5d
60@110
80@110 corner: 189.0d@130
60@110 corner: 209.0d@130
84@124.5d
209.0d@120
101.0d
переключ эфект вкл
174300958
195.0d@120
209.0d@120 corner: 209.0d@120
240@120
260@120
240@110 corner: 260@130
319.0d@120
339.0d@120
319.0d@110 corner: 339.0d@130
211.0d
9600
arduinoIDE
189
1024
255558060
Arduino Pro Mini (ATmega328, 5V, 16MHz)
24863483