An interactive LED instrument controlled by analog inputs.
This project uses an MCP3008 ADC and Arduino to read 4 potentiometers and transform them into expressive LED animations on an 8x8 matrix.
Instead of simple brightness control, each knob changes a behavioral parameter of the visual system โ making this feel more like a playable device than a basic electronics demo.
- 4 Analog Controls via MCP3008
- Smooth parameter-based LED animations
- Multiple visual engines
- Designed for future custom PCB
- Expandable architecture
| Potentiometer | Function |
|---|---|
| P1 | Pattern Type |
| P2 | Speed |
| P3 | Density |
| P4 | Chaos / Randomness |
These parameters dynamically shape the animation instead of switching static modes.
The system blends between multiple animation styles:
- Flow Field (liquid motion)
- Cellular Automata
- Pulse / Breathing Patterns
- Spark / Firefly Movement
4x Potentiometers โ MCP3008 โ Arduino via SPI
8x8 LED Matrix driven by MAX7219
| MCP3008 | Arduino |
|---|---|
| VDD | 5V |
| VREF | 5V |
| AGND | GND |
| DGND | GND |
| CLK | D13 |
| DOUT | D12 |
| DIN | D11 |
| CS | D10 |
Potentiometers connect to:
- CH0
- CH1
- CH2
- CH3
| MAX7219 | Arduino |
|---|---|
| DIN | D11 |
| CLK | D13 |
| CS | D9 |
SPI lines are shared with MCP3008.
Each potentiometer is normalized:
float speed = pot1 / 1023.0;
float density = pot2 / 1023.0;
float chaos = pot3 / 1023.0;
float mode = pot4 / 1023.0;These values drive animation engines rather than acting as direct outputs.
- Arduino Nano / Uno
- MCP3008 ADC
- 4x 10k Potentiometers
- MAX7219 8x8 LED Matrix
- Breadboard + jumpers
- Custom standalone PCB
- ATmega328P onboard
- USB-C power input
- Optional preset button
- EEPROM preset saving
- NeoPixel version
Planned layout:
[ POT ][ POT ]
[ POT ][ POT ]
[ 8x8 LED ]
Compact, synth-style interactive device.
Prototype phase โ breadboard implementation.
Next step: schematic โ PCB design.
- Learn SPI ADC integration
- Build parameter-driven UI
- Prepare for custom hardware manufacturing
MIT