Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Audio-Reactive LED Strip with Arduino

The concept of audio-reactive systems has gained significant popularity, especially in the realm of DIY electronics and home automation. These systems allow LED lights to react to audio signals, creating visually stunning effects that sync with music or other sounds. Integrating such a system with Arduino makes it accessible and customizable for hobbyists and professionals alike. This article will guide you through creating an audio-reactive LED strip using Arduino, highlighting the importance of such projects in enhancing user experience in home entertainment systems, parties, and artistic installations.

Projeto: In this project, we will create an audio-reactive LED strip that changes colors and patterns based on the audio input it receives. The primary objective is to demonstrate how to capture audio signals and use them to control an LED strip. The functionalities include:

  • Capturing audio signals using a microphone module.
  • Processing the audio signals to determine the amplitude.
  • Controlling the LED strip colors and patterns based on the processed audio signals.

Lista de componentes:

  • Arduino Uno (1)
  • Microphone Sound Sensor Module (1)
  • WS2812B LED Strip (1 meter)
  • 5V Power Supply (1)
  • Breadboard and Jumper Wires (various)

Exemplos:

  1. Basic Setup and Audio Signal Capture:
    
    // Include the necessary libraries
    #include <Adafruit_NeoPixel.h>

// Define the pin for the LED strip and the microphone

define LED_PIN 6

define MIC_PIN A0

// Define the number of LEDs in the strip

define NUM_LEDS 30

// Create a NeoPixel object Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() { // Initialize the LED strip strip.begin(); strip.show(); // Initialize all pixels to 'off' pinMode(MIC_PIN, INPUT); }

void loop() { // Read the audio signal from the microphone int audioSignal = analogRead(MIC_PIN);

// Map the audio signal to a range suitable for LED brightness int brightness = map(audioSignal, 0, 1023, 0, 255);

// Set the color of the LED strip based on the audio signal for (int i = 0; i < NUM_LEDS; i++) { strip.setPixelColor(i, strip.Color(brightness, 0, 255 - brightness)); } strip.show(); }

*Comments:*
- The `Adafruit_NeoPixel` library is used to control the WS2812B LED strip.
- The microphone is connected to the analog pin `A0`.
- The audio signal is read using `analogRead` and mapped to a brightness value for the LEDs.

2. **Advanced Audio Processing and LED Patterns:**
```cpp
#include <Adafruit_NeoPixel.h>

#define LED_PIN 6
#define MIC_PIN A0
#define NUM_LEDS 30

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show();
  pinMode(MIC_PIN, INPUT);
}

void loop() {
  int audioSignal = analogRead(MIC_PIN);
  int brightness = map(audioSignal, 0, 1023, 0, 255);

  // Apply a simple low-pass filter to smooth the audio signal
  static int smoothedSignal = 0;
  smoothedSignal = (smoothedSignal * 9 + audioSignal) / 10;

  // Create a color pattern based on the smoothed audio signal
  for (int i = 0; i < NUM_LEDS; i++) {
    int color = (i * brightness / NUM_LEDS) % 255;
    strip.setPixelColor(i, strip.Color(color, 0, 255 - color));
  }
  strip.show();
}

Comments:

  • A low-pass filter is applied to smooth the audio signal, reducing noise and making the LED response more fluid.
  • A color gradient pattern is created along the LED strip based on the audio signal.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.