I recently borrowed an Arduino Inland Basic Starter Kit. It includes an active and passive buzzer. What is the difference? I can hear a difference in sound when I use the tone() command. Anything else?

How can I identify which one is which? Are there any specific commands for each one?

  • 6
    \$\begingroup\$ Just a wild guess, but the "active" buzzer may include an oscillator, and will make a noise when connected to a DC power supply. The passive one may just be a bare transducer, and must be driven by a pulsed voltage to make a noise. \$\endgroup\$ Mar 24, 2016 at 4:59

1 Answer 1


An active buzzer will generate a tone using an internal oscillator, so all that is needed is a DC voltage. A passive buzzer requires an AC signal to make a sound. It is like an electromagnetic speaker, where a changing input signal produces the sound, rather than producing a tone automatically.

To identify them, if you apply a DC voltage to them and it buzzes, it's an active.

As far as commands go if you want to control the pitch, you would need a passive buzzer. PWM on the Arduino can be used to control the pitch and the volume at the same time (which may or may not be what you want). If you wanted to change just volume or just pitch I suppose some external circuitry would be required to change the amplitude without changing the voltage, and vice versa.

A couple sources: Source, Source, and Source, as well as @Peter Bennett's comment.

  • \$\begingroup\$ When I use the tone(pin, frequency) command on the arduino on either of them, the pitch changes. So, the you can use the tone command on both, just the active works on DC voltage? Thank you \$\endgroup\$
    – shurup
    Mar 24, 2016 at 14:32
  • \$\begingroup\$ Using the tone() function should generate the exact frequency you specify in the arguments on the passive buzzer. To be honest, I'm not sure what happens when you apply a square wave to an active buzzer. Do the passive and active buzzers generate the same (correct) pitch? If the active plays a different sound, perhaps some type of frequency mixing is going on. \$\endgroup\$
    – MichaelK
    Mar 27, 2016 at 4:24
  • 1
    \$\begingroup\$ The active one is a bit off. When I play frequency 566 for example, passive plays 566, while active plays 559 according to my tuner. They sound different, the passive one is much more pleasant. The active one can't generate very high frequencies, it stopped at around 700, while the passive can go beyond 3000. \$\endgroup\$
    – shurup
    Mar 27, 2016 at 14:28
  • \$\begingroup\$ I have a buzzer on a little board with 3 pins: SIG VCC and GND. I could not find a datasheet but after some experimenting I found that it can be used both in active as in inactive mode. When applying a constant high signal on the SIG pin, the buzzer generates a beep at a fixed pith, for the duration of the signal. But when applying a pulse signal (eg using tone() in Arduino) it generates a tone with the frequency of the signal. This works well over 3000 Hz. Normally active and passive buzzers both have 2 pins, so this type can easily be recognized. \$\endgroup\$ Jan 25, 2020 at 13:41
  • \$\begingroup\$ Do passive buzzers really need AC power? How come you can get them for the Raspberry Pi then? \$\endgroup\$
    – user2442
    Mar 27, 2021 at 14:15

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