Advertisement
fuccpuff

Untitled

Nov 1st, 2023
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>
  2.  
  3. #define PIN 13
  4. #define NUM_LEDS 69
  5. #define WHITE_COLOR 255, 255, 255
  6. #define BLUE_COLOR 0, 0, 255
  7. #define RED_COLOR 255, 0, 0
  8. #define SEGMENT_LENGTH 23
  9. #define DELAY_MS 100 // Микрозадержка между шагами
  10.  
  11. Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
  12. bool whiteSegment[NUM_LEDS] = {0};
  13. bool blueSegment[NUM_LEDS] = {0};
  14. bool redSegment[NUM_LEDS] = {0};
  15.  
  16. void setup() {
  17. strip.begin();
  18. strip.show();
  19. }
  20.  
  21. void loop() {
  22. int whiteSegmentPos = 0;
  23. int blueSegmentPos = 0;
  24. int redSegmentPos = 0;
  25.  
  26. while (whiteSegmentPos < SEGMENT_LENGTH || blueSegmentPos < SEGMENT_LENGTH || redSegmentPos < SEGMENT_LENGTH) {
  27. // Обнуляем предыдущий шаг
  28. for (int i = 0; i < NUM_LEDS; i++) {
  29. if (whiteSegment[i]) {
  30. strip.setPixelColor(i, WHITE_COLOR);
  31. }
  32. if (blueSegment[i]) {
  33. strip.setPixelColor(i, BLUE_COLOR);
  34. }
  35. if (redSegment[i]) {
  36. strip.setPixelColor(i, RED_COLOR);
  37. }
  38. }
  39.  
  40. // Белый сегмент
  41. if (whiteSegmentPos < SEGMENT_LENGTH) {
  42. whiteSegment[whiteSegmentPos] = true;
  43. whiteSegmentPos++;
  44. }
  45.  
  46. // Синий сегмент
  47. if (blueSegmentPos < SEGMENT_LENGTH) {
  48. blueSegment[NUM_LEDS / 3 + blueSegmentPos] = true;
  49. blueSegmentPos++;
  50. }
  51.  
  52. // Красный сегмент
  53. if (redSegmentPos < SEGMENT_LENGTH) {
  54. redSegment[2 * NUM_LEDS / 3 + redSegmentPos] = true;
  55. redSegmentPos++;
  56. }
  57.  
  58. strip.show();
  59. delay(DELAY_MS);
  60. }
  61.  
  62. // Обнуляем все светодиоды перед следующей анимацией
  63. for (int i = 0; i < NUM_LEDS; i++) {
  64. whiteSegment[i] = false;
  65. blueSegment[i] = false;
  66. redSegment[i] = false;
  67. strip.setPixelColor(i, 0, 0, 0);
  68. }
  69. strip.show();
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement