Buzzer
Buzzer ou alto-falante piezoelétrico é um dispositivo acústico capaz de gerar som pela passagem de corrente elétrica por uma membrana de cristais piezoelétricos. São utilizados em projetos que necessitam de alarmes sonoros como beeps ou necessitem de melodias.
![]() |
Elementos de um buzzer |
Tipos de Buzzer
Os buzzers podem ser ativos quando possuem seu próprio dispositivo controlador necessitando apenas de uma fonte de energia. São capazes de trabalhar com uma única frequência de som, por isso geram uma única tonalidade de beep, cabendo ao desenvolvedor apenas ajustar a sua duração. Geralmente possuem um terminal maior (VCC) e outro menor (GND) e sua parte inferior apresenta uma carcaça protetora com um lacre.
Já os passivos apresentam externamente dois terminais de mesmo tamanho e sua parte inferior fica exposta. Não possuem controlador próprio e aceitam diferentes frequências de som determinadas por dispositivos externos como o Arduino por isso são apropriados para gerar melodias.
Exemplo de uso
Nossos projetos até agora trabalharam com leds mas não emitiram sons. Por isso vamos trazê-los de volta ao Wokwi e implementar um buzzer para deixá-los mais animados. Comece trazendo o led que acendia com um botão. Use o nosso link para agilizar.
Link: https://wokwi.com/projects/411938098293675009
Montagem
Ao carregar nosso projeto, salve uma cópia com o nome de Framework Arduino Básico Aula 08:Buzzer e Led. Depois mande adicionar um buzzer, para isso clique no botão + e digite buz no campo de pesquisa:
![]() |
Botão para adicionar componentes no Wokwi |
![]() |
Adicionando um buzzer no Wokwi |
Depois posicione o componente e crie conexões conforme o layout abaixo. Repare que o GND do buzzer esta no GND superior da placa juntamente com o led e o VCC do buzzer conectado ao pino 13 da placa:
![]() |
Layout da inclusão do buzzer ao projeto |
Sketch
Para manter o mesmo padrão usado até agora, vou criar uma variável inteira para armazenar o pino onde o buzzer foi conectado. Basicamente vamos precisar de duas funções tone() e noTone(). A primeira serve para ordenar a um pino que receba uma frequência de som em Hz com uma duração em milissegundos.
Para isso ela recebe três parâmetros nessa disposição: tone(pino,frequencia,duração). Por essa razão vou criar também as variáveis inteiras frequencia e duracao que você poderá alterar posteriormente. Para interromper o buzzer é recomendável utilizar a função noTone() que precisa apenas do pino como parâmetro.
Assim teremos o nosso primeiro Sketch onde as alterações eu coloquei em rosa:
- int led=2;
- int botao=11;
- int estado=0;
- int buzzer=13;
- int frequencia=500; //quanto maior, mais agudo
- int duracao=100;
- void setup() {
- pinMode(led, OUTPUT);
- pinMode(botao, INPUT);
- Serial.begin(9600);
- }
- void loop() {
- Serial.print("estado: ");
- Serial.println(estado);
- delay(100);
- estado=digitalRead(botao);
- if (estado==HIGH){
- digitalWrite(led, HIGH);
- tone(buzzer, frequencia,duracao);
- }
- else{
- digitalWrite(led, LOW);
- noTone(buzzer);
- }
- }
Link: https://wokwi.com/projects/412279304636204033
Se o buzzer o Wokwi se comporta como um buzzer passivo e aceita diferentes frequências, talvez fosse interessante mostrar a variação desse frequência em uma escala. Assim vamos trazer de volta a montagem com o led e potenciômetro para adicionar um buzzer.
Carregue o nosso link para ganhar tempo e salve uma copia do projeto com o nome Framework Arduino Básico Aula 08: Buzzers e potenciômetro.
Link: https://wokwi.com/projects/411848004063075329
Novo layout
Depois adicione um buzzer e faça as conexões semelhantes ao projeto anterior dessa forma:
![]() |
Layout do segundo projeto do dia |
Modificando o Sketch
Além das alterações feitas no projeto anterior com a inclusão das variáveis buzzer, frequencia e duracao, agora precisaremos criar uma escala de frequência com base na leitura obtida do potenciômetro e isso pode ser feito também com a função map() que já conhecemos.
Nesse caso o map precisará dos seguinte parâmetros:
map(leitura, 0, 1023, maior frequência inaudível, maior frequência audível)
Nos nossos testes o buzzer do Wokwi é audível com frequências entre 11 e 9000 hz, sendo assim a maior frequência inaudível é 10 hz. Pode ser que esses valores sejam diferentes de acordo com a capacidade auditiva de diferentes pessoas, mas o que vale é o raciocínio.
Vamos mudar também o valor do último delay() para tornar a simulação mais rápida não esquecendo o noTone() no final para desativar o tone anterior preparar o pino para receber outras frequências e colocarei também a variação da frequência no monitor serial. Assim temos o seguinte sketch:
- int led=3;
- int pwm;
- int buzzer=13;
- int frequencia;
- int duracao=200;
- //atribuindo o pino do potenciometro
- int potenciometro=14;
- //variável para leitura do potenciometro
- int leitura=0;
- void setup() {
- pinMode(led, OUTPUT);
- Serial.begin(9600) ;
- }
- void loop() {
- leitura=analogRead(potenciometro);
- pwm=map(leitura,0,1023,0,255);
- //de acordo com nossos testes no
- //Wokwi a frequencia do buzzer é
- //audível entre 11 e 9000 hz
- frequencia=map(leitura,0,1023,10,9000);
- analogWrite(led, pwm);
- tone(buzzer,frequencia,duracao);
- Serial.print(("leitura:"));
- Serial.println(leitura);
- Serial.print(("pwm:"));
- Serial.println(pwm);
- Serial.print(("Frequência:"));
- Serial.println(frequencia);
- delay(200);
- noTone(buzzer);
- }
link: https://wokwi.com/projects/412282682689209345
Aula que vem falaremos sobre POO.
Referências
ARDUINO DOCS. Arduino Documentation. Disponível em: <https://docs.arduino.cc/> Acesso em 05 ago. 2024.
OLIVEIRA, Cláudio Luis Vieira et al. Aprenda Arduino: Uma abordagem prática. Duque de Caixas: Katzen Editora, 2018. 181p. Disponível em: <https://www.fatecjd.edu.br/fatecino/material/ebook-aprenda-arduino.pdf> Acesso em 05 ago. 2024.
OLIVEIRA, Cláudio Luis Vieira. Arduino Descomplicado - Como Elaborar Projetos de Eletrônica. São Paulo: Editora Érica, 2015. 287p.
TINKERCAD. Centro de Aprendizagem. Disponível em: <https://www.tinkercad.com/learn> Acesso em 05 ago. 2024.
WOKWI. Referência do wokwi-arduino-uno. Disponível em: <https://docs.arduino.cc/> Acesso em 05 ago. 2024.