Electronic – arduino – Sending audio signals to output device through relay

arduinoaudiopowerrelay

I've created a paper speaker through this tutorial, except instead of conductive thread I used copper tape for the coil. When I hook it up to a device that is known to give off lots of sound, the speaker works pretty well.

My problem is that when I hook up the speaker to my Arduino Uno and run the example tone Sketch provided in the arduino program, the sound comes out veeeery dim. I can barely hear it. I think this is because the arduino wasn't giving enough power to the speaker for it to be loud enough because when I used a 2.5v and 9v battery to power it, it was very loud. I also tested the power going to the speaker and, if I read it correctly on the multimeter, it's barely giving off any power at all.

I know I can use a relay attached to a large battery pack (like 9v) to give more power and get a louder sound. But I'm not sure how I would send the audio signals from the digital pin on the arduino to the speaker through the relay. Would it be appropriate to even use a relay in this case? Or would I have to use something else?

EDIT:
Here's a pic of what I think it would look like in the end. I'm a total n00b with this, I apologize if I didn't draw it with the right connections or anything. I've never had any type of EE training.

schematic

…Let me know if any of that doesn't make sense. Thanks!

Best Answer

Your fundamental problem is likely that the impedance (primarily resistance) of this homemade "speaker" is far too low for the limited current drive capability of the Arduino pin. Your substitution of copper tape for the typically somewhat resistive conductive thread likely makes this even worse (at least in terms of presenting an overload to the driver).

As others have mentioned, using a relay as an audio amplifier isn't really workable. Actually a relay is fairly close to being an electromechanical buzzer; drive it with a signal of appropriate frequency and you will likely get more sound output from the relay itself than from this speaker of yours. Under the right conditions you might even get intelligible voice when using a relay as a speaker, but it will not be pleasant.

It may be possible to get sound out of your homemade speaker in one of two fairly simple ways:

  • you could try to use an audio output transformer to change the comparatively high voltage (nearly 5v) but low current arduino output, into a lower voltage, high current output to drive your low impedance speaker. I forget if radio shack still carries these, but you can salvage one out of an old battery powered radio. The higher turns count, typically 3-terminal side would go to the arduino (ignore the center terminal) while the lower turns count side would go to the speaker.

  • Since your Arduino output is digital all-or-nothing, you don't actually need a linear audio amplifier. Instead, you can make a switching circuit with an npn transistor switching the negative supply to the coil, and a resistor between the transistor's base and the arduino output pin. Not surprisingly, this is the exact same circuit you would typically build to drive a relay with an arduino output, as that is also a coil. Given your likely very low coil resistance, you will likely want to add a series resistor to limit the current to what the supply and a cheap plastic case transistor can handle. Such a circuit will likely have sufficient bandwidth to attempt pulse width modulation if you wish to try to generate quasi-analog output from your arduino software. Since you are digital all the way to the speaker, you will need the PWM frequency to be above the audible range if you do not want to hear the switching.

While it is true the bipolar drive might be more beneficial for this type of crude speaker than for traditional ones, the complexity of building that (while avoiding the shoot through issue) is probably not something you want to tackle in a first attempt. Mounting the speaker substrate tensioned in something like a small embroidery hoop (or gluing it to a carrier ring) to increase its restoring force could be a worthwhile experiment.