Maker.io main logo

How to Make DIY Music Reactive RGB LED Ring (WS2812B) Using Visuino

17

2026-04-02 | By Ron Cutts

License: GNU Lesser General Public License LED Strips Microcontrollers Wifi Arduino ESP32

In this tutorial, we are going to make music reactive lights using an Arduino Nano ESP32 board with a Neopixel LED ring & microphone module using Visuino.

Every time the sound is detected, the LEDs will move and randomly change colors.

In case you do not have the microphone module, I will also add a step at the bottom to make the project without it.

Watch the video!

Learn more about Visuino: What is Visuino

What You Will Need

What You Will Need

What You Will Need photo 2

What You Will Need photo 3

What You Will Need photo 4

What You Will Need photo 5

What You Will Need photo 6

The Circuit

  1. Connect the LED Ring pin [VCC] to the Arduino pin VBUS or 5V.

  2. Connect the LED Ring pin [GND] to Arduino pin [GND]

  3. Connect the LED Ring pin [IN] or (DI) to Arduino digital pin [6]

  4. Connect the Microphone module pin [VCC] to Arduino pin [VBUS or 5V]

  5. Connect the Microphone module pin [GND] to Arduino pin [GND]

  6. Connect the Microphone module pin [DO] to Arduino digital pin [2]

The Circuit

Calibrate the Microphone

Slowly rotate the trimmer until the second LED is OFF and turns ON only if you make a sound.

Calibrate the Microphone

Start Visuino, and Select the Arduino Nano ESP32 board type.

Start Visuino as shown in the first picture. Click on the "Tools" button on the Arduino component (Picture 1) in Visuino. When the dialog appears, select "Arduino Nano ESP32" as shown in Picture 2

Start Visuino, and Select the Arduino Nano ESP32 Board Type

Start Visuino, and Select the Arduino Nano ESP32 Board Type photo 2

In Visuino Add Components

  1. Add "Clock Multi Source" component

  2. Add "Random Color" component

  3. Add "NeoPixels" component

In Visuino Add Components

In Visuino Add Components photo 2

In Visuino Add Components photo 3

In Visuino Set Components

  • Double-click on "NeoPixels1" and in the "PixelGroups" window, drag "Running Color" to the left

  • On the left side of the "PixelGroups" window, select "RunningColor1," and in the properties window, set "Count Pixels" to 12 or 16 (depending on how many LEDs your LED ring has)

  • Close the "PixelGroups" window

In Visuino Set Components

In Visuino Set Components photo 2

In Visuino Connect Components

  1. Connect Arduino digital pin [2] to "ClockMultiSource1" pin [In]

  2. Connect "ClockMultiSource1" pin [0] to "RandomColor1" component pin [Clock]

  3. Connect "RandomColor1" pin [Out] to "NeoPixels> "RunningColor1" component pin [Color]

  4. Connect "ClockMultiSource1" pin [1] to "NeoPixels> "RunningColor1" component pin [Step]

  5. Connect "NeoPixels1" component pin [Out] to Arduino digital pin[6]

In Visuino Connect Components

In Visuino Connect Components photo 2

Generate, Compile, and Upload the Project

  • In Visuino, at the bottom, click on the "Build" tab, make sure the correct port is selected, then click on the "Compile/Build and Upload" button.

Generate, Compile, and Upload the Project

Play

After uploading the project to the Arduino Nano ESP32, the RGB LED ring will start to randomly change colors according to the detected sound by the microphone module.

Congratulations! You have completed your LED project with Visuino. Also attached is the Visuino project that I created for this. You can download and open it in Visuino: https://www.visuino.com

Project Without the Microphone

Add "Pulse Generator" component and connect pin [Out] to "ClockMultiSource1" pin [In]

Select "PulseGenerator1" and in the properties window, change the "Frequency" value to adjust the speed

Project Without the Microphone

Project Without the Microphone photo 2

Tips

Place the microphone module near the speaker of a radio, phone, or TV.

Downloads

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.