Streaming with an Arduino Bambino

Two straight days of Arduino work. At this rate, I might actually start to be slightly less incompetent when working with micro controllers (slightly). Between work, the family, and the general apathy that seems to be going around, I haven’t been the best maker on the planet. We all go through spells of this; no matter though, as I found the solution to my problems when my wife declared that the boy is playing too many video games. Of course I agreed and quickly came up with a solution: he can help me build some Arduino projects.

Before I go into the details about the circuits, I should probably plug the work we have been doing on the webpage and twitch stream. I’m not sure where live streaming all of this nonsense is going to go; probably nowhere, but, it is a nifty way of cataloging every move, every circuit, and *ahem* every mistake. Don’t believe me? Check out the stream from one of our Servo Arduino builds here ( Eventually I’ll figure out how to embed twitch videos within the blog. In the mean time, make sure to follow us on twitch). This circuit was relatively straight forward: An Arduino, a breadboard, some wires, two capacitors, a potentiometer, and a servo motor were all that was needed to capture both me and the boys millennial challenged imagination. He was especially delighted at the idea that if we expand this circuit to include some more code and servo motors, we could have an honest to goodness working robot arm. Or leg. Or… other appendage.  (I should remember this for later). I won’t go into any more detail on this build, as it is immortalized and codified in the twitch video. Warts and all.

Instead, I’ll talk about the second circuit that we attempted to build. Using an R-G-B light emitting diode (LED) that was controlled by a series of photoresistors, we made a lamp that adjusted itself to ambient light. Now this may not sound like much, but we built this circuit using nothing but a wiring diagram:


Pretty crazy right? Let me break this down. The Arduino micro-controller is represented by the rectangle in the center of the diagram. Each number designation within the rectangle represents a pin that can be set to High or Low. The numbers on the right side of the triangle represent digital pins, with the “~” representing pins that facilitate something called  Pulse Width Modulation (PWM). Since the voltage cannot be varied as an OUTPUT on an Arduino pin, we need to use a technique where the Arduino rapidly turns the output of a pin from 5 volts to 0 volts (or in Arduino speak, High and Low). When we use PWM, we rapidly change the state of a pin from High to Low, which replicates a change in voltage. Cool eh?

The photoresistors adjust the resistance of the circuit based on the amount of light each resistor is receiving. Coupled with the 10k ohm resistors, the voltage adjusts where these 6 resistors meet. Using the analog pins, we take a reading of the voltage at these points and then use this information to feed PWM at pins ~11, ~10, and ~9. The result is a lamp that adjusts to light just like the screen of your smart phone. In fact, if you take out your smart phone and look near the camera lens at the top of the screen, you might see a few extra ports. Guess what is probably housed in one of those portals? A photoresistor. Specifically, a photoresistor that senses ambient light around the phone and informs a program that in turn, adjusts the screens brightness accordingly (provided that you have this function turned on in the phone operating system).

Thats enough for now. I’ve been mandated to start sketching up a robotic appendage for our next build, less the boy be angry with me.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s