DIY Inventive ART Project Idea With LED Lights and Sound

Introduction: DIY Inventive ART Project Idea With LED Lights and Sound

About: Robotic Projects (Arduino, Raspberry Pi, ESP8266, PCB, IoT, 3D, Electronics)

In this video I will be showing you how to make unique art project at home using LED strip and sound.

Step 1: Project Video

Step 2: Schematic and Gerber

Step 3: Source Code

Source Code:https://github.com/MertArduino/Art-Project-LED-Strip-DFPlayer-Arduino

#include <FastLED.h>
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

#define NUM_LEDS_PER_STRIP 70
#define BRIGHTNESS  200
#define LED1pin 5
#define LED2pin 6
#define LED3pin 7

const int IR1pin = A0;
const int IR2pin = A1;
const int IR3pin = A2;

CRGB LED1color[NUM_LEDS_PER_STRIP];
CRGB LED2color[NUM_LEDS_PER_STRIP];
CRGB LED3color[NUM_LEDS_PER_STRIP];

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup() 
{
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  if (!myDFPlayer.begin(mySoftwareSerial)) {
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
  }

  pinMode(IR1pin, INPUT);
  pinMode(IR2pin, INPUT);
  pinMode(IR3pin, INPUT);
  
  myDFPlayer.volume(20);
  myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
  
  FastLED.addLeds<NEOPIXEL, LED1pin>(LED1color, NUM_LEDS_PER_STRIP);
  FastLED.addLeds<NEOPIXEL, LED2pin>(LED2color, NUM_LEDS_PER_STRIP);
  FastLED.addLeds<NEOPIXEL, LED3pin>(LED3color, NUM_LEDS_PER_STRIP);
  FastLED.setBrightness(  BRIGHTNESS );

}

void loop() {
  if(digitalRead(IR1pin) == LOW)
  {
    LED1show();
  }
  if(digitalRead(IR2pin) == LOW)
  {
    LED2show();
  }
  if(digitalRead(IR3pin) == LOW)
  {
    LED3show();
  }
}

void LED1show()
{
  myDFPlayer.play(1);
  for(int i = 0; i < NUM_LEDS_PER_STRIP; i++)
    {
      LED1color[i] = CRGB::Purple;
      FastLED.show();
      LED1color[i] = CRGB::Black;
      delay(100);
    }
      
    for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--)
    {
      LED1color[i] = CRGB::Green;
      FastLED.show();
      LED1color[i] = CRGB::Black;
      delay(100);
    }
    myDFPlayer.pause();
}

void LED2show()
{
  myDFPlayer.play(2);
  for(int i = 0; i < NUM_LEDS_PER_STRIP; i++)
    {
      LED2color[i] = CRGB::Purple;
      FastLED.show();
      LED2color[i] = CRGB::Black;
      delay(100);
    }
      
    for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--)
    {
      LED2color[i] = CRGB::Green;
      FastLED.show();
      LED2color[i] = CRGB::Black;
      delay(100);
    }
    myDFPlayer.pause();
}

void LED3show()
{
  myDFPlayer.play(3);
  for(int i = 0; i < NUM_LEDS_PER_STRIP; i++)
    {
      LED3color[i] = CRGB::Purple;
      FastLED.show();
      LED3color[i] = CRGB::Black;
      delay(100);
    }
      
    for(int i = NUM_LEDS_PER_STRIP-1; i >= 0; i--)
    {
      LED3color[i] = CRGB::Green;
      FastLED.show();
      LED3color[i] = CRGB::Black;
      delay(100);
    }
    myDFPlayer.pause();
}

Be the First to Share

    Recommendations

    • First Time Author Contest

      First Time Author Contest
    • Fandom Contest

      Fandom Contest
    • Make it Fly Challenge

      Make it Fly Challenge

    Comments

    0
    jessyratfink
    jessyratfink

    10 months ago

    What a cool idea. This would be an awesome installation for a band room :)