Arduino Pro Micro Controlled RGB LED Strip with Potentiometer Brightness Adjustment
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This circuit is designed to control a WS2812 RGB LED strip using a SparkFun Pro Micro microcontroller. The brightness of the LEDs is adjustable via a potentiometer. The circuit also includes two 16-channel analog multiplexers for additional input control.
Component List
SparkFun Pro Micro
- Description: Microcontroller for controlling the LED strip and reading 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: Addressable RGB LED strip.
- Pins: DIN, 5V, GND, DO
Potentiometer
- Description: Variable resistor for adjusting the brightness of the LEDs.
- Pins: GND, Output, VCC
Resistor
- Description: 330 Ohm resistor used in series with the data line to protect the LEDs.
- Pins: pin1, pin2
- Properties: Resistance: 330 Ohms
Electrolytic Capacitor
- Description: 1000 Farad capacitor for filtering and stabilizing the power supply.
- Pins: -, +
- Properties: Capacitance: 1000 Farads
16 channel analog multiplexer bob
- Description: Multiplexer for expanding the number of input channels.
- Pins: GND, VCC, EN, S0, S1, S2, S3, SIG, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
Wiring Details
SparkFun Pro Micro
- D9 -> S0 (16 channel analog multiplexer bob)
- D8 -> S1 (16 channel analog multiplexer bob)
- D7 -> S2 (16 channel analog multiplexer bob)
- D6 -> S3 (16 channel analog multiplexer bob)
- D5 -> S0 (16 channel analog multiplexer bob)
- D4 -> S1 (16 channel analog multiplexer bob)
- D3 -> S2 (16 channel analog multiplexer bob)
- A0 -> Output (Potentiometer)
- D10 -> pin1 (Resistor)
- GND -> GND (16 channel analog multiplexer bob)
- GND -> EN (16 channel analog multiplexer bob)
- GND -> GND (16 channel analog multiplexer bob)
- GND -> EN (16 channel analog multiplexer bob)
- GND -> GND (16 channel analog multiplexer bob)
- D2 -> S3 (16 channel analog multiplexer bob)
- A2 -> SIG (16 channel analog multiplexer bob)
- A1 -> SIG (16 channel analog multiplexer bob)
- VCC -> VCC (WS2812 RGB LED strip)
- VCC -> VCC (Potentiometer)
- VCC -> VCC (16 channel analog multiplexer bob)
- VCC -> VCC (16 channel analog multiplexer bob)
WS2812 RGB LED strip
- DIN -> pin2 (Resistor)
- 5V -> + (Electrolytic Capacitor)
- GND -> - (Electrolytic Capacitor)
- GND -> GND (Potentiometer)
Potentiometer
- VCC -> VCC (WS2812 RGB LED strip)
- GND -> GND (WS2812 RGB LED strip)
- Output -> A0 (SparkFun Pro Micro)
Resistor
- pin1 -> D10 (SparkFun Pro Micro)
- pin2 -> DIN (WS2812 RGB LED strip)
Electrolytic Capacitor
- + -> 5V (WS2812 RGB LED strip)
- - -> GND (WS2812 RGB LED strip)
16 channel analog multiplexer bob
- S0 -> D9 (SparkFun Pro Micro)
- S1 -> D8 (SparkFun Pro Micro)
- S2 -> D7 (SparkFun Pro Micro)
- S3 -> D6 (SparkFun Pro Micro)
- S0 -> D5 (SparkFun Pro Micro)
- S1 -> D4 (SparkFun Pro Micro)
- S2 -> D3 (SparkFun Pro Micro)
- S3 -> D2 (SparkFun Pro Micro)
- SIG -> A2 (SparkFun Pro Micro)
- SIG -> A1 (SparkFun Pro Micro)
- VCC -> VCC (WS2812 RGB LED strip)
- GND -> GND (WS2812 RGB LED strip)
- EN -> GND (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