diff options
| author | vlapa <vlapa@ya.ru> | 2026-06-13 16:13:07 +0300 |
|---|---|---|
| committer | vlapa <vlapa@ya.ru> | 2026-06-13 16:13:07 +0300 |
| commit | f983db075831645971bc265f76fdf99bae84b08d (patch) | |
| tree | f3690ef1d586b7663c1a9824bee783f4ef2155bf /include/tablo_ws2812_22ledX5.h | |
Firstmain
Diffstat (limited to 'include/tablo_ws2812_22ledX5.h')
| -rw-r--r-- | include/tablo_ws2812_22ledX5.h | 242 |
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 |
