This project came about when the Interactive Media team I was working with decided that we needed better wayfinding to our lab. We realised early on that any wayfinding of ours would absolutely have to involve flashy lights of some sort. The problem was that the corridors in our building have very limited access to power.
The almost natural outcome of these two constraints was a sign that could be interactively powered by its users. On a whim I decided to see if a 9v gearmotor could sustain power to an Arduino, and whether I could used it as a dynamo for a hand cranked Arduino powered light up sign.
The first win of the project was finding out that if rotated reasonably quickly the motor could sustain power to the blink.ino example sketch through the help of an intermediary 5V regulator. I’m afraid I only have an early example of what this looked like as this is an old (and now lost) project, but the schematic should fill in the gaps.
It might have been possible to plug a 9V motor directly into the VIN pin on the Arduino, but I needed a constant 5V for the Neopixel LEDs anyway and setting up my own voltage regulator ensured I wouldn’t accidentally blow up the board.
Testing the Neopixels on the system was a simple matter of plugging them in as usual, with the exception that instead of using an external 5V power supply I used the 5V output from the above dynamo. I only used 12 pixels, so I wasn’t worried about the current draw.
The Neopixels worked straight away, sort of. When running the simple.ino test sketch from Adafruit, the pixels lit up in mostly the right order, but glitched out randomly. Adding a 103 capacitor to the output of the 5V regulator somewhat helped, but did not completely remedy the problem.
On the bright side, this is was exactly the aesthetic we were going for with the sign, so rather than code a complex series of programmatic glitches I just left the simple.ino test to do its thing. It is my current favourite example of a bug becoming a feature.