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.

  • 2,824 views
  • 1 comment
  • 8 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.

Thanks UTSOURCE.net to offer electronic components for our projects.

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,108 views
  • 11 comments
  • 23 respects

The "Tennis Ball" Garage Stop Light

Project tutorial by Team Stuart Mace

  • 10,809 views
  • 2 comments
  • 37 respects

Morse Code Transmitter - Light Signal

Project showcase by Alireza Karkon

  • 3,259 views
  • 1 comment
  • 7 respects

Combat Ready LED Light Show

Project showcase by BUInvent

  • 3,366 views
  • 2 comments
  • 11 respects

Night Light Assistant

Project showcase by Gabriele Fugazzi

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