From f983db075831645971bc265f76fdf99bae84b08d Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 16:13:07 +0300 Subject: First --- include/tablo_ws2812_22ledX5.h | 242 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 include/tablo_ws2812_22ledX5.h (limited to 'include/tablo_ws2812_22ledX5.h') 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 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 -- cgit v1.2.3