Buzzer ativo e passivo: como fazer o robô apitar e tocar notas
A diferença entre buzzer ativo e passivo, como descobrir qual você tem, como tocar notas com tone() no Arduino e PWM no ESP32, o cuidado com a corrente do pino e o efeito do tone() nos pinos 3 e 11 do Nano.

O buzzer é a voz do robô. Parece a peça mais simples do kit, mas existem dois tipos que se parecem por fora e funcionam de jeitos diferentes, e trocar um pelo outro é o motivo número um de "o buzzer não toca".
Ativo e passivo
Buzzer ativo tem um oscilador dentro. Basta ligar a alimentação e ele apita, sempre no mesmo tom, normalmente na casa de 2 kHz a 3 kHz. Para o programa, é como um LED: pino em nível alto, apita; em nível baixo, cala.
Buzzer passivo é só o elemento que vibra. Com tensão contínua, ele dá um estalo e fica quieto. Para soar, precisa receber uma onda quadrada, e a frequência dessa onda é a nota. Em troca do trabalho, toca melodias.
Como descobrir qual é o seu
- O teste definitivo: ligue o buzzer em 5 V (ou 3,3 V) por um instante. Apitou contínuo: ativo. Só estalou: passivo.
- Pista visual: muitos ativos têm o fundo selado e um adesivo por cima; muitos passivos mostram a placa de circuito por baixo. Não é regra, só pista.
- Polaridade: o ativo tem lado; a perna mais longa ou a marcação "+" vai no pino.
Na IDE de blocos, o cartão de buzzer pergunta o tipo. Para o ativo, ele liga e desliga o pino; para o passivo, gera a frequência.
Tocar notas
Algumas frequências de referência (afinação com o Lá em 440 Hz):
| Nota | Frequência |
|---|---|
| Dó 5 | 523 Hz |
| Ré 5 | 587 Hz |
| Mi 5 | 659 Hz |
| Sol 5 | 784 Hz |
| Lá 5 | 880 Hz |
Para um aviso, sons agudos e curtos funcionam melhor: 2.000 Hz por 100 ms chamam atenção sem irritar. Duas notas subindo soam como "deu certo"; duas descendo, como "erro".
No Arduino Nano
A função tone(pino, frequência, duração) gera a onda quadrada em qualquer pino, e noTone(pino) cala. Dois cuidados:
- Só um tom de cada vez. Enquanto um tone() toca num pino, chamar tone() em outro pino não tem efeito.
- O tone() usa o timer 2, e por isso interfere no PWM (analogWrite) dos pinos 3 e 11 enquanto toca. Servos com a biblioteca Servo não são afetados, porque ela usa outro timer.
No ESP32 com MicroPython
O PWM do ESP32 faz o papel do tone: a frequência é a nota e o ciclo de trabalho em 50% dá a onda quadrada.
from machine import Pin, PWM
import time
buzzer = PWM(Pin(23), freq=2000, duty_u16=32768)
time.sleep_ms(100)
buzzer.duty_u16(0) # silêncio
Corrente do pino
Os buzzers pequenos de kit consomem algumas dezenas de miliampères, perto do limite recomendado para um pino de microcontrolador (cerca de 20 mA no ATmega328P do Nano). Para um buzzer mais alto, use um transistor como chave: o pino comanda o transistor, e o transistor liga o buzzer.
No braço robótico
O buzzer do braço confirma o que o operador fez: um bip curto quando uma posição é gravada, dois bips no fim da repetição, um som contínuo enquanto houver objeto perto do sensor. Na IDE de blocos, o cartão "bip no buzzer" pede o pino, o tipo e a duração, e o cartão "tocar nota" aceita a nota pelo nome.
A IoTData faz o cadastro e o envio por você.
Um engenheiro nosso responde: qual rede chega até o poço, o que o IGAM ou a ANA vão pedir, quanto custa e quem cuida do cadastro de operador.