Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino Pro Micro Controlled WS2812 RGB LED Strip with Potentiometer Brightness Adjustment

View and Edit Project In Cirkit DesignerImage of Arduino Pro Micro Controlled WS2812 RGB LED Strip with Potentiometer Brightness Adjustment

Circuit Documentation

Summary

This circuit is designed to control the brightness and color of a WS2812 RGB LED strip using a SparkFun Pro Micro microcontroller and a potentiometer. The circuit also includes a resistor and a capacitor for signal protection and power stabilization, respectively.

Component List

  1. SparkFun Pro Micro

    • Description: A microcontroller used to control the LED strip and read the potentiometer values.
    • Pins: RAW, GND, RESET, VCC, A3, A2, A1, A0, SCK, MISO, MOSI, D10, D9, D8, D7, D6, D5, D4, D3, D2, RXI, TXO
  2. WS2812 RGB LED strip

    • Description: An addressable RGB LED strip.
    • Pins: DIN, 5V, GND, DO
  3. Potentiometer

    • Description: A variable resistor used to adjust the brightness of the LED strip.
    • Pins: GND, Output, VCC
  4. Resistor

    • Description: A 330 Ohm resistor used in series with the data line to protect the LEDs.
    • Pins: pin1, pin2
    • Properties: Resistance: 330 Ohms
  5. Electrolytic Capacitor

    • Description: A 1000 Farad capacitor used for power stabilization.
    • Pins: -, +
    • Properties: Capacitance: 1000 Farads

Wiring Details

SparkFun Pro Micro

WS2812 RGB LED strip

Potentiometer

Resistor

Electrolytic Capacitor

Documented Code

sketch.ino

#include <FastLED.h>

#define NUM_LEDS 10   // Количество светодиодов в ленте
#define DATA_PIN 4    // Пин данных (DIN), к которому подключена лента
#define POT_PIN A0    // Пин потенциометра

CRGB leds[NUM_LEDS];  // Массив для хранения цветов светодиодов

// Функция setup() вызывается один раз при запуске
void setup() {
  // Инициализация светодиодов WS2812B
  FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
}

// Главный цикл программы, который выполняется непрерывно
void loop() {
  // Чтение значения потенциометра (от 0 до 1023)
  int potValue = analogRead(POT_PIN);

  // Преобразование значения потенциометра в диапазон яркости (от 0 до 255)
  int brightness = map(potValue, 0, 1023, 0, 255);

  // Установка яркости всех светодиодов
  FastLED.setBrightness(brightness);

  // Установка различных цветов для каждого светодиода
  leds[0] = CRGB::Red;      // Красный цвет для первого светодиода
  leds[1] = CRGB::Orange;   // Оранжевый цвет для второго светодиода
  leds[2] = CRGB::Yellow;   // Жёлтый цвет для третьего светодиода
  leds[3] = CRGB::Green;    // Зелёный цвет для четвёртого светодиода
  leds[4] = CRGB::Blue;     // Синий цвет для пятого светодиода
  leds[5] = CRGB::Indigo;   // Индиго для шестого светодиода
  leds[6] = CRGB::Violet;   // Фиолетовый цвет для седьмого светодиода
  leds[7] = CRGB::Aqua;     // Аквамарин для восьмого светодиода
  leds[8] = CRGB::Pink;     // Розовый цвет для девятого светодиода
  leds[9] = CRGB::White;    // Белый цвет для десятого светодиода

  // Применение изменений и отображение цветов на светодиодах
  FastLED.show();

  // Небольшая задержка для плавной регулировки (100 миллисекунд)
  delay(100);
}

documentation.txt

Список всех компонентов, которые используются в проекте: RGB+Potentiometr

Компоненты:
    Arduino Pro Micro: Микроконтроллер для управления светодиодами и чтения значений потенциометра.
    Светодиодная лента WS2812B: Светодиодная лента с адресуемыми светодиодами.
    Потенциометр (B10K): Переменный резистор для регулировки яркости светодиодов.
    Резистор 330 Ом: Резистор, используемый в серии с линией данных для защиты светодиодов.
    Конденсатор 1.00 кΩ: Конденсатор для фильтрации и стабилизации питания светодиодов.
    Провода для соединения: Провода для подключения компонентов друг к другу.
    Блок питания 5V: Источник питания для светодиодной ленты и микроконтроллера.

Подключение: RGB Ленты WS2812B
    Arduino Pro Micro к Светодиодной ленте WS2812B:
    VCC (5V) -> VCC (Красный провод на ленте)
    GND -> GND (Черный провод на ленте)
    Пин 4 -> DIN (Желтый провод на ленте) через резистор 330 Ом

Arduino Pro Micro к Потенциометру (B10K):
    5V -> Левый пин (5V)
    A0 -> Средний пин (сигнал)
    GND -> Правый пин (GND)
    Конденсатор 1000uF 16V
    Подключен между VCC и GND для стабилизации питания светодиодов.

Объяснение кода:

1) Чтение значения потенциометра:
    -Используется analogRead(POT_PIN) для чтения значения с пина A0, к которому подключен потенциометр.

2) Преобразование значения потенциометра в яркость:
    -Значение потенциометра (0-1023) преобразуется в диапазон яркости (0-255) с помощью функции map.

3) Установка яркости светодиодов:
    -Функция FastLED.setBrightness(brightness) устанавливает яркость всех светодиодов на основе значения потенциометра.

4) Установка различных цветов для каждого светодиода:
    -Используются разные цвета для каждого светодиода:

Красный для первого светодиода.
Оранжевый для второго светодиода.
Жёлтый для третьего светодиода.
Зелёный для четвёртого светодиода.
Синий для пятого светодиода.
Индиго для шестого светодиода.
Фиолетовый для седьмого светодиода.
Аквамарин для восьмого светодиода.
Розовый для девятого светодиода.
Белый для десятого светодиода.

5) Периодическое обновление значений:
    -Используется delay(100) для плавной регулировки яркости.