
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Using a Buzzer
4// ─────────────────────────────────────────
5// The buzzer beeps at 400 Hz for 0.3 s, stays silent for 0.3 s and keeps
6// repeating. Shows how to use tone() and noTone().
7//
8// Pins:
9// D7 -> Buzzer + (other leg to GND)
10
11int frequency = 400; // Tone frequency (Hz)
12int buzzerPin = 7; // Buzzer output pin
13
14void setup() {
15 // tone() sets the pin as an output itself
16}
17
18void loop() {
19 tone(buzzerPin, frequency); // Start the 400 Hz tone
20 delay(300);
21 noTone(buzzerPin); // Stop the sound
22 delay(300);
23}
24
Perguntas frequentes
Qual é a diferença entre um buzzer ativo e um passivo?▾
Um buzzer ativo tem um oscilador interno; basta aplicar uma tensão para ele emitir um som constante. Um buzzer passivo precisa de uma fonte externa de frequência e pode tocar notas diferentes com a função `tone()`. Projetos de melodias exigem buzzers passivos.
Como usar a função tone()?▾
tone(pin, frequency) emite um som na frequência indicada; noTone(pin) interrompe o som. Também é possível definir uma duração com tone(pin, frequency, duration). Por exemplo, 440 Hz corresponde à nota lá.
O volume está muito baixo. Como aumentar?▾
O pino do Arduino aciona o buzzer com uma corrente limitada. Para obter um som mais alto, você pode acionar o buzzer por meio de um transistor NPN (por exemplo, BC547) ou posicioná-lo de forma que seu orifício fique livre.
Usar `tone()` causa problemas nos outros pinos?▾
No Uno, a função `tone()` usa o Timer2; por isso, o PWM (analogWrite) não funciona corretamente nos pinos 3 e 11 enquanto o som é emitido. Se você precisar de PWM ao mesmo tempo, escolha outros pinos.
