This is a set of musical bells which are driven by solenoids and controlled by an Arduino microcontroller.
There are 8 bells covering one octave.
The bells are controllable from a PC, or the tower can stand alone and play pre-programmed melodies.
Check out the final page for video of it in action.
Step 1: Parts
The following parts were used:
1 set of chromatic handbells. I got these from my local Aldi for $20. They span the range from C to C. (I.e. c,d,e,f,g,A,B,C).
Wood panel & brackets to hold the bells and solenoids in place. $10.
8 Solenoids to strike the bells. I had these laying around in my junk box. I got them from a typewriter repairman who was throwing them away. You can probably find similar on Ebay.
Arudino microcontroller. ~$45. I got mine from SparkFun electronics.
Proto/Perf board & misc components to make my custom ‘shield’ for the arduino. $10.
Darlington driver board. I used one I had laying around, but I believe they’re not sold separately. Should be possible to make it using the ULN2803 chip for a couple of dollars.
Step 2: Woodworking
Surprisingly enough this step took the longest. The coding and wiring took less time than for the glue to dry.
The frame for this was pretty simple. Just a piece of plywood to hold all the bells, plus some pine brackets for the solenoids. Everything was glued together with PVA glue.
In order to make the solenoid brackets more repeatably, I made a stencil in MS Visio and then glued it to the wood. This helped a lot to have all the solenoids at a constant distance from the bell.
If you do this I can’t stress enough to measure carefully for the striker locations. The bells sound quite different depending on where you hit them and the ‘throw’ of the solenoid.
Step 3: Electronics & Wiring
Driver side:
I was lucky enough to have a darlington driver laying around, which simplified the design a lot. The darlington is a power transistor that you can use to drive heavier loads than the tiny microcontroller pins would normally support. The board I used is based on the ULN2803 chip, which is quite common and cheap.
Please note: Solenoids are (usually) not designed to be driven constantly! They may melt if you do! See the software section for more info.
Arduino side:
This was just a matter of finding 8 IO pins from the arduino to drive the Darlington inputs.
Because I wanted to send and receive serial data, I couldn’t use pins 0 & 1, so I ended up using digitals 2,3,4&5 on one side, and using four of the analog input pins on the other side as digital outputs. I also added a potentiometer hooked up to analog input #5, which is used to control the tempo. Two LEDs are used for visual feedback of the driver.
Pins 8-13 were of no use because of the funky arduino pin spacing (grr…)
For more detail: Arduino Controlled Bell Tower or Carillon