Is this a correct way to connect an 8 ohm beaker to an Arduino?



2 Answers 2


To effectively drive a speaker from an Arduino you need an amplifier. The good ol' LM386 is a common choice for this (readily available and cheap, though not recommended for battery based projects).

While it is possible to drive a speaker directly it's not recommended. Not only is it very quiet, but also it can damage the IO pin. Not only from excess current draw (peak current at 5V through 8Ω [nominal] is 626mA, more than 15x the maximum the pin can supply, which not only stresses the pin but also distorts the output waveform) but a speaker is also an inductive load which has all the associated issues of back-EMF and such.

  • I have also seen 1 transistor designs which isolate the speaker from the processor's I/O pin. Should we include these in the answer - or is there a reason to avoid this solution?
    – st2000
    Mar 23, 2020 at 12:52
  • No, no reason why not. A transistor is just acting as an amplifier. I just mentioned the lm386 as an example.
    – Majenko
    Mar 23, 2020 at 12:59

You had to put a resistor in serial with the speaker, Max current from the pin is 40 mA if put 8 ohm speaker on the pin it can't drive the speaker. Try a speaker with higher impedans.

  • it can drive the speaker and it works, but it stresses the pin that is why there should be a resistor. to limit the current. (downvote is not my).
    – Juraj
    Mar 23, 2020 at 7:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.