
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Uso do buzzer
4// ─────────────────────────────────────────
5// O buzzer apita a 400 Hz por 0.3 s, fica em silêncio por 0.3 s e repete
6// sem parar. Mostra como usar tone() e noTone().
7//
8// Pinos:
9// D7 -> Buzzer + (outra perna em GND)
10
11int frequency = 400; // Frequência do tom (Hz)
12int buzzerPin = 7; // Pino de saída do buzzer
13
14void setup() {
15 // tone() já define o pino como saída
16}
17
18void loop() {
19 tone(buzzerPin, frequency); // Inicia o tom de 400 Hz
20 delay(300);
21 noTone(buzzerPin); // Para o som
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.
