Monday, February 1, 2010

Arduino + XBee + Wii Remote

Woot!  Our Wii Remote controlled robot!  I'll write up the details soon.

ULN2803a is a sink!

Keeping true with the title of this blog, I fought with a ULN2803a over the weekend.  I was attempting to create a simple mood light with my daughter.  We were able to quickly construct a mood light using a small RGB LED from SparkFun.  It was fun, but didn't look like a mood light.  The plan going into the project was to use a ULN2803a Darlington array to drive three 3-watt LEDs and place the resulting circuit in a frosted light globe.  I fiddled with the 2803, reading and fiddling until finally I figured I was much to stupid to use this relatively simple device.  I looked at circuits but it just wasn't clicking.  So, I decided to shelve the 2803 and merely place a white ping-pong ball over the RGB LED.  The results were actually quite nice and it makes a very cool night light.

However, I am nothing if not persistent (check my other blog to read all about my all about my adventures with persistence).  So, after getting KK her coffee, I did a bit more reading and finally figured out that the source of my boneheadedness was a sink!  Huh?  The 2803a (and several of the related devices) are current sinks not sources!  Basically, the load (LED) needs to be hooked into the high side of the load voltage with the low side (i.e., negative) hooked into the ULN2803a.  Duh!  What was throwing me for a loop was the fact that the high load voltage source is also hooked into the 2803.  I just kept thinking that the device would output the load voltage level (in my case 9 volts).  But I kept reading near zero at the outputs.  Only after looking at the device schematic for the umteenth time did it dawn on me that the purpose of the common hookup was to supply the built-in protection diodes a path to dissipate reverse current spikes.

I quickly hooked this all together to make a sizable mood light.  The schematic is here.  And a quick video is here.