Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать бегающие огни на адресной светодиодной ленте

GriferGamer 123 Знаток (256), открыт 3 недели назад
Решил найти эффект по типу матрицы (Бегает светодиод и оставляет за собой тусклый свет)
Но не нашёл исходники. Помогите сделать эффект
2 ответа
Рустам Абдрашитов Мыслитель (9508) 3 недели назад
C++
 #include <FastLED.h> 

#define NUM_LEDS 60 // Количество светодиодов в ленте
#define DATA_PIN 6 // Пин, к которому подключена лента

CRGB leds[NUM_LEDS];

const int tailLength = 20; // Длина "хвоста"
const int fadeRate = 20; // Скорость затухания (чем больше, тем быстрее затухает)
const int moveDelay = 50; // Задержка между шагами (в миллисекундах)

void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(50); // Установка яркости (0-255)
}

void loop() {
static int pos = 0;

// Затухание всех светодиодов
for(int i = 0; i < NUM_LEDS; i++) {
leds[i].fadeToBlackBy(fadeRate);
}

// Установка яркого светодиода
leds[pos] = CRGB::Green;

// Создание "хвоста"
for(int i = 1; i <= tailLength; i++) {
int tailPos = (pos - i + NUM_LEDS) % NUM_LEDS;
leds[tailPos] = CRGB::Green;
leds[tailPos].fadeToBlackBy(i * (255 / tailLength));
}

FastLED.show();

// Перемещение позиции
pos = (pos + 1) % NUM_LEDS;

delay(moveDelay);
}
Роман Соболев Знаток (401) 3 недели назад
Для создания эффекта бегущих огней с хвостом на адресной светодиодной ленте, такой как WS2812B (часто называют "Neopixel"), вам потребуется работать с микроконтроллером, например, Arduino. Вы можете использовать библиотеку FastLED или Adafruit NeoPixel, чтобы облегчить работу с лентой. Ниже приведен пример кода для Arduino на базе библиотеки FastLED, который создает эффект бегущих огней с затухающим хвостом:

### Требуется:
- Адресная светодиодная лента (например, WS2812B).
- Микроконтроллер (например, Arduino Uno).
- Библиотека FastLED.

### Установка библиотеки FastLED:
1. Откройте Arduino IDE.
2. Перейдите в «Скетч» > «Подключить библиотеку» > «Управление библиотеками».
3. Найдите FastLED и установите её.

### Код на Arduino:


#include

#define LED_PIN 6
#define NUM_LEDS 30
#define BRIGHTNESS 128
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];

void setup() {
FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(BRIGHTNESS);
}

void loop() {
static uint8_t hue = 0;

// Зажги очередной огонёк
leds[0] = CHSV(hue++, 255, 255);

// Затуши предыдущий огонёк (эффект затухания)
for(int i = NUM_LEDS - 1; i > 0; i--) {
leds[i] = leds[i-1];
leds[i].nscale8(192); // Затухание хвоста
}

FastLED.show();
delay(50);
}


### Объяснение:

- FastLED: Это основная библиотека, которая поддерживает работу с адресными светодиодами.
- NUM_LEDS: Установите это значение равным количеству светодиодов в вашей ленте.
- LED_PIN: Номер пина на Arduino, к которому подключен ваш светодиод.
- Цикл loop():
- Первый светодиод зажигается с изменяющимся оттенком (на основе HSV-модели цвета), создавая ощущение движения.
- Оставшиеся светодиоды получают значение предыдущего, и их яркость уменьшается (за счёт функции nscale8).
- delay(50) задает скорость движения огоньков. Измените значение для ускорения или замедления эффекта.

Этот код — базовая отправная точка для создания эффекта бегущих огней с хвостом. Вы можете изменить цвет, скорость и другие параметры для достижения желаемого эффекта. Не забудьте подключить светодиодную ленту правильно и предоставить питание, соответствующее ее характеристикам.
Похожие вопросы