Go Down

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

#### Zhengzheng

##### Jun 08, 2016, 11:38 am
Except using amplifier, is there any other ways to do?

#### DVDdoug

#1
##### Jun 08, 2016, 05:11 pmLast Edit: Jun 08, 2016, 05:14 pm by 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

#2
##### Jun 08, 2016, 11:25 pm
Thank you so much for your help!

#### pjrc

#3
##### Jun 09, 2016, 03:17 pm
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