This project is an RGB LED controller built with an Arduino Pro Micro, a 13-LED WS2812B strip, and three push buttons for user interaction. The controller supports multiple lighting modes, brightness levels, and color control, with persistent settings stored in EEPROM.
-
๐ Lighting Modes:
0: Static white lamp1: Rainbow animation2: Manual color selection (with hue adjustment)3: Police strobe (red & blue flashing)4: Wave gradient animation5: Single pixel chase animation6: Waterfall cascade (fading drops)
-
๐ Button Control:
MODEbutton: cycles through lighting modesBRIGHTNESSbutton:- In all modes except ManualColor: decreases brightness
- In ManualColor mode: increases hue
COLORbutton:- In all modes except ManualColor: increases brightness
- In ManualColor mode: decreases hue
-
๐พ EEPROM Saving:
- Mode, brightness level, and hue are saved and restored on power cycle
-
๐ Smooth Brightness Transitions:
- Smooth fade animation when changing brightness levels
- Arduino Pro Micro
- WS2812B LED strip (13 LEDs)
- 3 momentary push buttons
- Power supply (ensure enough current for the LED strip)
| Pin | Function |
|---|---|
8 |
LED strip signal |
A0 |
Mode button |
A1 |
Brightness button |
A2 |
Color button |
Adafruit_NeoPixelBounce2EEPROM(built-in)
- Install required libraries via Library Manager or GitHub.
- Upload the code to your Arduino Pro Micro.
- Wire up the buttons and LEDs as described above.
- Power the system โ your light show is ready to go!
- Long-press to enter setup/config mode
- Custom mode creation via serial or button combinations
- Support for other LED types (e.g., APA102)
- Add support for color temperature presets in Lamp mode
MIT License โ feel free to use and modify!
Created with โค๏ธ by Genius.