/*========================================================= Tablo ws2812 = vlapa = v.509 2021.02.01 - 2023.11.14 =========================================================*/ #pragma once #define PIXEL_PIN D2 #define RAZR_PIXEL 42 // #define BRIGHT_DAY 5 // #define BRIGHT_NIGHT 1 const uint8_t digit = 5; // кол-во разрядов табло #define PIXEL_COUNT RAZR_PIXEL * digit #include Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); //******************************************************************** // плата void visibleWork(String visData, uint32_t color, uint8_t bright) { // данные, цвет strip.setBrightness(bright); for (uint8_t razr = 0; razr < digit; ++razr) { uint8_t x; if (visData.charAt(razr) == 'A') { x = 10; } else if (visData.charAt(razr) == 'B') { x = 11; } else if (visData.charAt(razr) == 'C') { x = 12; } else if (visData.charAt(razr) == 'D') { x = 13; } else if (visData.charAt(razr) == 'E') { x = 14; } else if (visData.charAt(razr) == 'p') { x = 15; } else if (visData.charAt(razr) == 'h') { x = 16; } else { x = visData.substring(razr, razr + 1).toInt(); } switch (x) { case 0: for (int i = 0; i < RAZR_PIXEL; ++i) { if (i >= 0 && i < 36) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 1: for (int i = 0; i < RAZR_PIXEL; ++i) { if (i > 11 && i < 24) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 2: for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i > 5 && i < 18) || (i > 23 && i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 3: for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i > 5 && i < 30) || (i > 36 && i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 4: for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i >= 0 && i < 6) || (i > 11 && i < 24) || (i > 35 && i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 5: for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i >= 0 && i < 12) || (i > 17 && i < 30) || (i > 35 && i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 6: for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i >= 0 && i < 12) || (i > 17 && i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 7: for (int i = 0; i < RAZR_PIXEL; ++i) { if (i > 5 && i < 24) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 8: for (int i = 0; i < RAZR_PIXEL; ++i) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } break; case 9: for (int i = 0; i < RAZR_PIXEL; i++) { if ((i >= 0 && i < 30) || (i > 35 && i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 10: // градус ( A ) for (int i = 0; i < RAZR_PIXEL; i++) { if ((i >= 0 && i < 18) || (i > 35 && i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 11: // минус ( B ) for (int i = 0; i < RAZR_PIXEL; i++) { if ((i > 35) && (i < 42)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 12: // двоеточие ( C ) for (int i = 0; i < RAZR_PIXEL; i++) { if ((i == 36) || (i == 37) || (i == 40) || (i == 41)) { 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 (int i = 0; i < RAZR_PIXEL; ++i) { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } break; case 14: // точка ( E ) for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i == 26) || (i == 27)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 15: // давление ( p ) for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i < 18) || (i > 29)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; case 16: // влажность ( h ) for (int i = 0; i < RAZR_PIXEL; ++i) { if ((i < 6) || (i > 17 && i < 24) || (i > 29)) { strip.setPixelColor(i + razr * RAZR_PIXEL, color); } else { strip.setPixelColor(i + razr * RAZR_PIXEL, strip.Color(0, 0, 0)); } } break; } } strip.show(); } //******************************************************************** // Эффекты табло: // void visible_effect() // { // uint8_t a, b, c; // for (uint8_t k = 0; k < 3; ++k) // { // (k == 0) ? a = 255 : b = c = 0; // (k == 1) ? b = 255 : a = c = 0; // (k == 2) ? c = 255 : b = a = 0; // for (uint8_t i = 0; i < PIXEL_COUNT; ++i) // { // // uint32_t col = 255; // for (uint8_t i = 0; i < PIXEL_COUNT; ++i) // { // // uint32_t col = random(200, 65535); // strip.setPixelColor(i, strip.Color(a, b, c)); // strip.show(); // delay(10); // } // } // } // // for (uint8_t i = 0; i < PIXEL_COUNT; ++i) // // { // // uint32_t col = random(200, 65535); // // strip.setPixelColor(i, col); // // strip.show(); // // delay(10); // // } // delay(1000); // for (uint8_t i = 0; i < PIXEL_COUNT; ++i) // { // strip.setPixelColor(i, 0); // strip.show(); // } // }