As a small buzzer to output simple audio, I am considering the Jiangsu Huaneng Elec MLT-5020. Other buzzers of that size are also an option, as long as their footprint isn’t much bigger than 5×5 mm.

From the datasheet:

  • Recommended driving circuit (I guess, substituting the 2SC3199 with a PN2222A is safe):


  • Rated voltage: 3.6 Vo-p

  • Operating voltage: 2.0~5.0 Vo-p

I want to connect the buzzer to an Arduino (ATmega 328p) circuit with 5 V. I don’t have a 3.6 V power source in that circuit, although I could add one, for example with an LDO.

Some questions that come to mind:

  • For simplicity, can I drive the buzzer with 5.0 Vo-p?

  • Instead of the transistor circuit, can I just connect the buzzer directly to a pin via a resistor? (as done in some examples I found on the web)

I know the sound quality of these buzzers is awful, but I don’t want to degrade it further by bad wiring.


I tested the circuit with various resistors in series. Applying a constant high signal, I measured the current. (Interestingly the current fluctuated by a few mA, despite a constant voltage.)

15 Ω 15 Ω, around 100 mA (maximum rating)

22 Ω 22 Ω, around 90 mA

47 Ω 47 Ω, around 60 mA

Above 100 mA, the audio starts to clip. I compared various resistances to the 47 Ω proposed in Chris Stratton’s answer. See my video MLT-5020 Tests.

I also tried connecting the MLT-5020 directly to Arduino pins 9 and 10 and driving it in push-pull mode via the ToneAC library: It was less loud than with the transistor ciruit. Apparently the Arduino cannot provide enough power on these pins, and obviously that's exceeding its maximum current ratings anyhow.

  • 1
    \$\begingroup\$ The quick & dirty hobbyist solution is to put 2x 1N4148 in series (5V - 0.7V - 0.7V = 3.4V). Or a 3V3 zener to ground. More serious solutions involve having a 3V3 supply. But please note that the rated voltage is what the buzzer expects to be supplied with, not the voltage level of the BJT base. That is, it wants 3.6V in the + net on top of your pic. \$\endgroup\$
    – Lundin
    Oct 14, 2020 at 11:32

1 Answer 1


This is a magnetic buzzer, so the real concern is current, not voltage (you're nowhere near insulation breakdown).

The current is specified as no more than 100 mA, and the coil resistance is 12 +/- 3 ohms.

Applying ohms law, you can calculate that 5 volts divided by 100 mA gives a minimum resistance of 50 ohms.

At minimum coil resistance, you'd need 50-9 = 41 ohms of series resistance to not violate specifications if the buzzer were permanently driven with 5 volts DC.

In practical terms, if you build the depicted transistor circuit but add say a 47 ohm series resistor between the buzzer/diode and the supply, things should be fine - even if you have a bug in your program which leaves the transistor base permanently driven.

In practice, you can probably use a smaller resistor, on the other hand you may find it's already loud enough (at least if you drive at the resonant frequency) and use a larger one. Do note that if left with 5 volts applied (which you'd want to avoid, though again it could happen as a bug) this would need to be a half watt resistor. Make sure when you stop buzzing you leave the base low!

There are more optimal ways to drive this, eg incorporating a capacitor, push/pull drivers, etc but you are probably looking for simplicity.

(Yes, there will be some loss in your transistor, too. You could in theory increase the base resistor, which would decrease the base current and decrease the collector current which is proportional to that via the transistor's gain, or Beta. But Beta is variable, so it's going to be a lot simpler to get repeatability by keeping your resistance in an actual resistor, and driving the transistor fully)

  • \$\begingroup\$ What would be the advantage of "incorporating a capacitor, push/pull drivers"? Less waste of energy? \$\endgroup\$
    – feklee
    Oct 14, 2020 at 15:13
  • 1
    \$\begingroup\$ Yes, and possibly getting more sound energy out while being safe against accidental DC outputs. But really, too much bother. \$\endgroup\$ Oct 14, 2020 at 18:44
  • 1
    \$\begingroup\$ See the update to my question. I have done various tests. In the end I settled for 22 mA. Around the resonant frequency of 4000 Hz, the buzzer is loud enough for my purposes. \$\endgroup\$
    – feklee
    Dec 9, 2020 at 4:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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