Go Down

Topic: How a speaker (4 ohm 2 w) can be driven by Arduino board? (Read 459 times) previous topic - next topic

Zhengzheng

Except using amplifier, is there any other ways to do?

DVDdoug

The minimum resistance/impedance on an Arduino pin is 125 Ohms (5V @ 40 mA).

You can put a 120 Ohm (or greater) resistor in series with the speaker, but it will be very quiet* with most of the audio power going to the resistor.

You can use a transistor or MOSFET in a driver circuit, but that's a non-linear digital-switching circuit so there's no volume control and it might be too loud.   (You could add an experimentally-selected resistor to adjust-down the volume.)

Both of the above solutions are pulsed DC PWM, so it would be a good idea to put a capacitor in series with the speaker to remove the DC component (allowing the speaker to move in-and-out with positive & negative voltage).    For low-audio frequencies at 4 or 8 Ohms, you need a capacitor of around 1000uF.  With a series resistance or higher frequencies you can get-by with a lower value capacitor.   (A series capacitor is a high-pass filter, and DC is "zero Hz" which you want to filter-out.)




*If I've done my calculations correctly, 40mA through 4 Ohms is about 6 milliwatts.

Zhengzheng


pjrc

You could use a transformer, with turns ratio 30:1 or more.  Of course, this also needs a DC-blocking capacitor between the pin and transformer primary.

However, in these modern times it's hard to find audio bandwidth transformers.  Most are designed for 50-60 Hz power, or 20 kHz high frequency switching.

Go Up