This project uses streams of water to direct light, much like an optical fiber. You may have seen this trick used in laminar flow nozzles at theme parks. I've used it myself in some projects in the past (http://www.youtube.com/watch?v=eHUNQAujOUE )...
My goal is not so much to show you how to build this specific fountain (I'm sure many of you could do much better aesthetically), but to show you some cool tricks you can use in your own designs. All of the parts I used were very inexpensive, and once I had them, it only took a coupe of days to put the fountain clock together.
While this project is not complex, it does help to have some experience with Arduinos and some basic electronic hacking skills. You will be working with water and electronics, so please exercise appropriate care!
Let's get started!
The clock in action!
Setting the time...
Step 1: The Illuminated Nozzle
Water is passed in through the bottom connection, and emerges out the lit end. The stream may be somewhat turbulent, but this can be improved by adding a short length clear tubing to reestablish laminar flow.
Step 2: Driving the Servos
Inexpensive servos are not known for their long lifetime or precision. I decided to limit each "hand" of my clock to just 12 positions - 1 for each hour, and 1 for every 5 minutes. This means that the servo is only moving at most, once every 5 minutes. To improve reliability, I used an NPN transistor (2N2222A) to disconnect the ground lead when the servo was not actually moving. This greatly extends the life of the servo - I only turn it on for 1 second every 5 minutes! This removes any concerns about the servos over-heating. This only works because the servos have no static load trying to make them turn while they are off.
In addition to disconnecting ground, one must be careful to also disconnect the control signal from the servo. Failing to do this can cause the servo to power up through that connection, and draw excessive currents. This is easily rectified by switching that control pin to input mode BEFORE breaking the ground connection.
Step 3: Attaching the Nozzle to a Servo
Step 4: Pump
Although this pump is rated for 12V operation, I found it sufficiently strong for my purposes running at 5V. At this voltage, it only draws around 1/4 amp, making it very easy to power.
Step 5: Mounting
I then added two plastic plates - a base plate that holds the pump, and a numbers plate for the fountain to stream onto. To spread the light around the numbers, I used an opalescent plastic. I carefully engraved the numbers on it, but they weren't very visible. So I traced over them with a permanent marker. Again, one could do a prettier version...
Step 6: Adjusting the Nozzles
You can see in this picture how the nozzle is held on the servo with the short segment of tubing.
Step 7: Arduino
For power, I used a 12V, 1A adapter. Although I run the pump at 5V, it draws too much current to be powered via the regulator on the Arduino Uno board. To fix this, I added an external 7805 5V regulator. This was getting a bit hot, so I added a small clip on heat sink.