Audio Output (Buzzers & Speaker)
de:volt ships three audio output parts: an Active Buzzer, a Passive Buzzer, and an 8 Ω Speaker. All three are electrically modelled as a simple resistive load and report a sounding / signal-present state in the simulator readout. There is no audio synthesis — de:volt detects whether a part is being driven, not what it sounds like.
Pinout
All three parts share the same two-pin layout. The positive pin is at the top.
| Pin | Label | Description |
|---|---|---|
| p1 | + | Positive terminal (drive signal) |
| p2 | − | Negative terminal (GND) |
Part comparison
| Part | Drive signal | Default load | Polarity |
|---|---|---|---|
| Active Buzzer | DC voltage, 2–5 V | 32 Ω | + pin is longer; reverse won’t damage but won’t sound |
| Passive Buzzer | AC / PWM, 200 Hz–8 kHz | 32 Ω | Usually not critical |
| 8 Ω Speaker | AC / PWM audio signal | 8 Ω | Critical only for DC-coupled circuits |
The resistance property is editable in the Inspector for all three parts.
Active vs passive buzzer
This is the distinction that trips up most beginners:
- Active buzzer has a built-in oscillator. Apply a DC voltage above roughly 1.5 V and it sounds at a fixed internal frequency (typically around 2 kHz) — no external frequency source needed. You just turn it on and off. de:volt treats it as sounding whenever the DC level across it exceeds the ~1.5 V threshold.
- Passive buzzer has no oscillator. It needs an AC or PWM drive signal at audio frequency (200 Hz–8 kHz) to make sound, and the pitch follows the drive frequency. Feed it a 50% duty-cycle square wave from a
clock_genor an Arduino PWM pin. de:volt detects the frequency by counting zero-crossings and reports it; the part counts as sounding when the detected frequency is above 0 Hz.
If you apply a steady DC level to a passive buzzer it will stay silent — that constant level has no frequency to follow.
8 Ω Speaker
The speaker’s voice coil is modelled as a pure 8 Ω resistance; the coil’s AC reactance is ignored at audio frequencies in this simplified model. Drive it from an amplifier output (for example an LM386) or a PWM pin. de:volt registers a signal-present indicator when the terminal voltage has a peak-to-peak amplitude of at least 50 mV over a 5 ms sliding window.
For DC-coupled drive circuits, observe the + terminal polarity. For AC- (capacitor-) coupled circuits, polarity is less critical, and a coupling capacitor is recommended to block the DC bias from reaching the coil.
Protecting your output pin
A buzzer or speaker can pull tens of milliamps (active buzzers draw roughly 30–90 mA at 5 V), which is enough to overload a microcontroller GPIO. Drive larger loads through a series resistor, a small transistor, or a ULN2003 channel rather than directly off a logic pin.
Example circuit
Active buzzer driven straight from a logic output:
Arduino D8 ─── + [Active Buzzer] − ─── GNDPassive buzzer driven by a PWM square wave:
Arduino D9 (PWM) ─── + [Passive Buzzer] − ─── GNDSpeaker driven through an amplifier with a DC-blocking capacitor:
LM386 out ─── 220 µF ─── + [8 Ω Speaker] − ─── GNDWatch the simulator readout for the sounding state (buzzers) or signal present indicator (speaker) to confirm the part is being driven.