Project showcase

Aurora - The Light Show © CC BY-NC

A cool 30 x 10 ft light show which includes 2 Arduino Mega boards, a hundred single-color LED strips and some SMPS full of AMPERES.

  • 519 views
  • 0 comments
  • 2 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)
Hy gluegun
Hot glue gun (generic)
Pro dmm box 600  26129.1449785766.500.659
Digilent Mastech MS8217 Autorange Digital Multimeter

Apps and online services

About this project


This light show was a big installation project that took almost one month to get completed. The whole show was running on two Arduino Mega boards. It consists of hundreds of single color LED strips and almost 80 relays. There were two 12 volt, 40 AMPS SMPS. The music was edited and compiled on Audacity software and the syncing with lights were done on Vixen Lights software.

There were a team of 10 members who worked hard day and night to make it a big success.

Code

CodeArduino
Arduino IDE Code. Copy, Paste, Change & Burn
#define MAX_CHANNELS 44

int ch;
int state;
int chVal[MAX_CHANNELS] = {0};
int pins[] = {2, 3, 4, 5, 6, 7,8,9,10,11,12,13,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53};

enum states
{
  IDLE,
  DELIM,
  READ,
  DISP
};

void setup()
{
  for (ch=0; ch<MAX_CHANNELS; ch++)
  {
    pinMode(pins[ch], OUTPUT);
   // digitalWrite(pins[ch], LOW);
  }
  
  state = IDLE;
  ch = 0;

 // analogWrite(53,255);  
  
  Serial.begin(57600);
}

void loop()
{  
    while(1)
    {
         for (ch=0; ch<MAX_CHANNELS; ch++)
        {   
          //if (chVal[ch] > 0)
         // {
            digitalWrite(pins[ch], LOW);
            delay(3000);
            digitalWrite(pins[ch], HIGH);
        //  }
        //  else
       //   {
       //     digitalWrite(pins[ch], HIGH);
         // }
            }
    }
  if (Serial.available())
  {
    switch (state)
    {
      case IDLE:  
        ch = 0;
        if (Serial.read() == '+')
        {
          state = DELIM;          
        }
        else
        {
          state = IDLE;
        }
      break;
        
      case DELIM:
        ch = 0;
        if (Serial.read() == '>')
        {
          state = READ;
        }
        else
        {
          state = IDLE;
        }
      break;
      
      case READ:
        chVal[ch++] = Serial.read();
        if (ch >= MAX_CHANNELS)
        {
          ch = 0;
          state = DISP;
        }
      break; 
      
      case DISP:
        state = IDLE;
        for (ch=0; ch<MAX_CHANNELS; ch++)
        {   
          if (chVal[ch] > 0)
          {
            digitalWrite(pins[ch], LOW);
          }
          else
          {
            digitalWrite(pins[ch], HIGH);
          }
        }
      break;
    }
  }
}

Comments

Similar projects you might like

Arduino + Vixen + School = Awesome Christmas Light Show!

Project showcase by igorgaldeano

  • 10,187 views
  • 11 comments
  • 23 respects

The "Tennis Ball" Garage Stop Light

Project tutorial by Stuart Mace

  • 10,865 views
  • 2 comments
  • 37 respects

Morse Code Transmitter - Light Signal

Project showcase by Alireza Karkon

  • 3,667 views
  • 1 comment
  • 7 respects

Combat Ready LED Light Show

Project showcase by BUInvent

  • 3,420 views
  • 2 comments
  • 11 respects

Night Light Assistant

Project showcase by Gabriele Fugazzi

  • 5,853 views
  • 9 comments
  • 24 respects
Add projectSign up / Login