Go Down

Topic: Beginners help on year long High School Project (Read 1 time) previous topic - next topic


Jun 03, 2009, 05:57 am Last Edit: Jun 03, 2009, 05:58 am by RobWalker91 Reason: 1
For my senior year in High School I am required to make a "Senior Project" that will reflect a career choice I would like to pursue. It is a yearlong project and I was hoping to ask for some beginners help.

I want to create a system that, when working properly, will monitor sound output and depending on the frequency and decibel level, enable lights and simple machines (strobe light, fog machine?ect.)
So basically I want to make a "light show" that will work with sound (Like a song or movie). I was just wondering what Arduino devices I would need to make this happen.

I understand that this is probably very complicated, and because I have all year, I have no issues with learning the basics first. I would just like to ask the Arduino community what their thoughts on this project might be.

Any help/Advice is greatly appreciated.  :)



Will the sound input (frequency & db level) be prerecorded or are you looking for an interactive solution?  (ie...do you expect to react to what people are saying/singing in real time or are you trying to sync the "light show" to a prerecorded song/movie)

I believe the number of microphones or inputs will probably be more critical than the outputs.  As from what I remember there tend to be more digital I/O lines than analog I/O lines.  So your inputs, especially the analog ones (which I would assume you will use to measure the sound intensity) will have fewer available.  If you run out of analog lines you could use an external ADC chip to turn your digital lines into analog inputs.  As to which one would be best for your application I will have to let the other board members chime in on that.

As for the interaction with strobe lights, smoke machines, etc.  Those could be triggered by the digital output lines.  You will want to use the output line to trigger a relay or transistor that switches these items on for the amount of time needed.  I doubt any arduino you choose will have enough current to directly run the device you want, plus you would run the risk of damaging your board.

If what you are trying to do a lightshow with is a predetermined song or movie you might want to consider basing your triggers on timers instead of listening for input.  You could wire the arduino to start an mp3 player or dvd player that is hooked into the sound/display system.  This would allow you to synchronize the events to the music without the need to listen for sounds.

Good Luck, it sounds like a fun project!



Thanks for the reply.

I am planning to use prerecorded music and movies for the sound but I was hoping to be able to, instead of using timers, have the lights and whatnot actually listen in so I would be able to use diffrent songs without having to program the show to the sound.

For the board not having enough current, instead of running the machines directly from the arduino, can you simply have it stop current from, lets say, a wall outlet? Or maybe run a device that could do that? So that when the arduino is triggered, it would let the wall current into the strobe/fog machine and in that way "turn it on".


OK, as far as I know you should be able to detect sounds with and trigger events.

It is possible to get the arduino to turn off wall current.  You will need to put some circuitry in between the arduino and the power line though.  For normal AC you will want to use a relay.  Make sure you find one that can handle the current load of the fog machine or fan or strobes.  The relay will close a large(r) switch when a small(er) current is sent to the coil.  Depending on the amount of current needed in the coil you will probably want to use a transistor to initiate the relay.  So the arduino would turn on the transistor with a very small current, which in turn triggers the relay.  I found this site to be helpful in researching how to switch AC on and off with a relay.



Here's a few ideas the come to mind:

  • You could use different frequencies to trigger different things using a bank of analog bandpass filters, each connected to a different ADC input.
  • Rather than just paying attention to the absolute loudness of the audio (of either the full signal or filtered bands of signal), you could pay attention to the change in loudness of the audio.  That way a gradually building sounds (like an orchestra string section crescendo) might trigger slowly changing lights, while a drum or an explosion could trigger a bright strobe flash.   This technique could be combined with the previous one (of splitting it into bands) to let you respond to very particular elements in the music (like you could just pick out the cymbals out of a song with many instruments, for instance).
  • As the previous poster mentioned, the arduino can't provide enough power to switch things like relays or certain transistors (like triacs, which you might want to use to switch AC for lights), so having the arduino trigger a driver circuit can be a good way to do this.  You can do this with darlington transistors (which are just a couple transistors doubled-up to switch a big load), mosfets (which can switch big loads), or the easiest route is a chip with a bunch of these on them, something like this: Driver Array.  Check out the "interfacing with hardware" section of the Playground for similar things.  Also, you might look into opto-isolators as to minimize your chances of frying your arduino(s).
  • If you run out of outputs, switch to a serial input driver array, or use a "595" and "shiftOut" calls to do the job.
  • If you're looking for a good overview of electronics (including everything I've mentioned, like bandpass filters, drivers, etc.), I really recommend this book: Practical Electronics for Inventors.   Silly name, but quality content to make pretty much anything you might want.

I hope that helps.



Thanks for all of the help. I've got a good concept of how I'm going to do the project and with what now. I really appreciate it.

Much Obliged,


Go Up