Arduino Pro Micro Controlled WS2812 RGB LED Strip with Potentiometer Brightness Adjustment
View and Edit Project In Cirkit Designer
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
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
WS2812 RGB LED strip
- Description: An addressable RGB LED strip.
- Pins: DIN, 5V, GND, DO
Potentiometer
- Description: A variable resistor used to adjust the brightness of the LED strip.
- Pins: GND, Output, VCC
Resistor
- Description: A 330 Ohm resistor used in series with the data line to protect the LEDs.
- Pins: pin1, pin2
- Properties: Resistance: 330 Ohms
Electrolytic Capacitor
- Description: A 1000 Farad capacitor used for power stabilization.
- Pins: -, +
- Properties: Capacitance: 1000 Farads
Wiring Details
SparkFun Pro Micro
GND is connected to:
- GND of the WS2812 RGB LED strip
- GND of the Potentiometer
-
- of the Electrolytic Capacitor
A3 is connected to:
-
- of the Electrolytic Capacitor
- 5V of the WS2812 RGB LED strip
- VCC of the Potentiometer
-
D5 is connected to:
- pin2 of the Resistor
A0 is connected to:
- Output of the Potentiometer
WS2812 RGB LED strip
- DIN is connected to:
- pin1 of the Resistor
Potentiometer
GND is connected to:
- GND of the SparkFun Pro Micro
Output is connected to:
- A0 of the SparkFun Pro Micro
VCC is connected to:
- A3 of the SparkFun Pro Micro
Resistor
pin1 is connected to:
- DIN of the WS2812 RGB LED strip
pin2 is connected to:
- D5 of the SparkFun Pro Micro
Electrolytic Capacitor
+ is connected to:
- GND of the SparkFun Pro Micro
- is connected to:
- A3 of the SparkFun Pro Micro
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) для плавной регулировки яркости.