summaryrefslogtreecommitdiff
path: root/include/tablo_ws2812_22ledX5.h
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 16:13:07 +0300
committervlapa <vlapa@ya.ru>2026-06-13 16:13:07 +0300
commitf983db075831645971bc265f76fdf99bae84b08d (patch)
treef3690ef1d586b7663c1a9824bee783f4ef2155bf /include/tablo_ws2812_22ledX5.h
Firstmain
Diffstat (limited to 'include/tablo_ws2812_22ledX5.h')
-rw-r--r--include/tablo_ws2812_22ledX5.h242
1 files changed, 242 insertions, 0 deletions
diff --git a/include/tablo_ws2812_22ledX5.h b/include/tablo_ws2812_22ledX5.h
new file mode 100644
index 0000000..666716a
--- /dev/null
+++ b/include/tablo_ws2812_22ledX5.h
@@ -0,0 +1,242 @@
+/*=========================================================
+ Tablo ws2812_22ledX5
+ 2026.02.21 -
+
+ A - градус
+ В - минус
+ С - двоеточие
+ D - пусто
+ E - точка
+ F - p
+ G - h
+=========================================================*/
+#pragma once
+
+#define PIXEL_PIN D2
+#define RAZR_PIXEL 42
+#define PIXEL_COUNT 210
+#define DIGIT 5
+
+#include <Adafruit_NeoPixel.h>
+Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
+
+//********************************************************
+// "Перевод" данных в пиксели:
+void visibleWork(String visData, uint32_t color, uint8_t bright)
+{
+ // Serial.println(visData);
+ strip.setBrightness(bright);
+ for (uint8_t razr = 0; razr < DIGIT; ++razr)
+ {
+ uint8_t temp;
+ if (visData.charAt(razr) == 'A')
+ {
+ temp = 10;
+ }
+ else if (visData.charAt(razr) == 'B')
+ {
+ temp = 11;
+ }
+ else if (visData.charAt(razr) == 'C')
+ {
+ temp = 12;
+ }
+ else if (visData.charAt(razr) == 'D')
+ {
+ temp = 13;
+ }
+ else if (visData.charAt(razr) == 'E')
+ {
+ temp = 14;
+ }
+ else
+ {
+ temp = visData.substring(razr, razr + 1).toInt();
+ }
+ switch (temp)
+ {
+ case 0:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if (i >= 0 && i < 20)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 1:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if (i > 4 && i < 13)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 2:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if ((i > 1 && i < 9) || (i > 11 && i < 22))
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 3:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if ((i > 1 && i < 16) || (i == 20 || i == 21))
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 4:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if ((i >= 0 && i < 3) || (i > 4 && i < 13) || (i > 18 && i < 22))
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 5:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if ((i >= 0 && i < 6) || (i > 7 && i < 16) || (i > 18 && i < 22))
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 6:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if ((i >= 0 && i < 6) || (i > 7 && i < 22))
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 7:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if (i > 1 && i < 13)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 8:
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ break;
+ case 9:
+ for (uint8_t i = 0; i < RAZR_PIXEL; i++)
+ {
+ if ((i >= 0 && i < 16) || (i > 18 && i < 22))
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 10: // градус ( A )
+ for (uint8_t i = 0; i < RAZR_PIXEL; i++)
+ {
+ if (i == 0 || i == 1 || i == 3 || i == 4 || i == 6 || i == 7 ||
+ i == 20 || i == 21)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 11: // минус ( B )
+ for (uint8_t i = 0; i < RAZR_PIXEL; i++)
+ {
+ if (i == 8 || (i > 18 && i < 22))
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 12: // двоеточие ( C ) короткое тире
+ for (uint8_t i = 0; i < RAZR_PIXEL; i++)
+ {
+ if (i == 20 || i == 21)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ case 13: // null (пусто) ( D )
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ break;
+ case 14: // точка ( E )
+ for (uint8_t i = 0; i < RAZR_PIXEL; ++i)
+ {
+ if (i == 13 || i == 14)
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, color);
+ }
+ else
+ {
+ strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0));
+ }
+ }
+ break;
+ }
+ }
+} \ No newline at end of file