In an effort to make a wearable piece of electronics, I would like to be able to control a large number of buzzers, sewn together on a string, from a single output pin on my Arduino.
The idea already exists: Several companies offer ready-made LED chains which can be controlled through a single pin (see for instance here). These purpose-made LEDs have 4 pins: Two for electricity and two for receiving and transmitting a signal. If I understood it correctly (and please correct me if I am wrong), this is simply a serial shift register: Bits are pushed through the system until all are in place, then only requiring a latch signal to activate them.
However, in my case, the buzzers I intend to use have only the electricity wires and have no way to be chained together, yet controlled separately.
So this got me thinking: Can I, through simple means/tools, construct my own chain which I can address through a single pin on the Arduino? If so, what would I need to do & buy to accomplish it?
In essence, what I am trying to achieve is maybe captured in this picture.
I am aware that this could be solved with shift registers and/or I/O expansions, but this causes problems for me because I would need one wire per buzzer, and so with a large number of buzzers, I would be forced to purchase a big number of shift registers and sew a large amount of conductive thread to serve as wire.
I have seen similar questions to this one (see here, here and here), but the answers there always tended to go for solutions which would allow me to create 8 wires out of a single one (so using shift registers, 1-wire 8-channel switches, etc.), which is exactly what I am trying to avoid, if at all possible.
Edit: Clarification – What I mean by more wires is this: If I can link and control all the buzzers (which will probably be upwards of 30), through a single chain, that means that I have 3 distinct wires, as in the example website for the LED design I gave above: two power lines and one to send controls over.
On the other hand, if I placed multiple shift registers (I'd probably need at least four chained shift registers?), I'd need one wire from the SRs to each of the buzzers, which means I would need two power lines and 30 wires, which is a nuisance.
Best Answer
From your question I think you have one of those black plastic buzzers in mind that has two wires?
If you restrict your design to 3 wires (daisy chained through all buzzer locations) you won't escape from having a chip at each location. Once you have a chip you will need a PCB. There are much smaller buzzers/speakers than the type you have in mind that can be mounted on a PCB. Put a small < $1 micro-controller (a PIC 10F200 would do, but I would prefer a small Cortex M0) and you can program it to do exactly what you want, including beeping at various frequencies etc. But this does require some programming!