Image

Творческая лаборатория → Случайное плавное включение нескольких светодиодов

Дата публикации: 05.09.2024

Случайное плавное включение нескольких светодиодов


Скетч Arduino:

const int ledCount = 6; // Количество светодиодов
const int ledPins[ledCount] = {3, 5, 6, 9, 10, 11}; // Пины, к которым подключены светодиоды
int brightness[ledCount]; // Массив для хранения текущей яркости светодиодов
int fadeDirection[ledCount]; // Направление изменения яркости
int speed = 10; // Скорость изменения яркости (меньше - быстрее)
unsigned long previousMillis = 0; // Хранит время последнего обновления

void setup() {
  // Инициализация пинов как выходов
  for (int i = 0; i < ledCount; i++) {
    pinMode(ledPins[i], OUTPUT);
    brightness[i] = 0; // Начальная яркость 0
    fadeDirection[i] = random(1, 3) == 1 ? 1 : -1; // Случайное направление
  }
}

void loop() {
  unsigned long currentMillis = millis();

  // Проверяем, прошло ли достаточно времени для обновления яркости
  if (currentMillis - previousMillis >= speed) {
    previousMillis = currentMillis;

    // Плавное изменение яркости каждого светодиода
    for (int i = 0; i < ledCount; i++) {
      brightness[i] += fadeDirection[i] * random(1, 6); // Случайный шаг изменения яркости

      // Проверяем границы
      if (brightness[i] >= 255) {
        brightness[i] = 255; // Максимальная яркость
        fadeDirection[i] = -1; // Меняем направление
      } else if (brightness[i] <= 0) {
        brightness[i] = 0; // Минимальная яркость
        fadeDirection[i] = 1; // Меняем направление
      }

      // Устанавливаем яркость светодиода
      analogWrite(ledPins[i], brightness[i]);
    }
  }
}

Данный пример плавно включает и выключает светодиоды в случайном порядке, используя ШИМ (PWM). Обратите внимание, что диоды подключены к PWM пинам на плате Arduino Nano.





Нет комментариев