Como usar um Buzzer no NodeMCU

Arthur Mehl
3 min readFeb 14, 2023

--

Quando estamos desenvolvendo projetos, fica clara a barreira entre o microcontrolador e o usuário, para resolver esse problema, usamos componentes para quebrar essa barreira e gerar uma conexão clara. Um exemplo são os LED’s, e no caso desse tutorial, o Buzzer.

Buzzer Ativo

O Buzzer é um componente que gera sinais sonoros ou beeps. Ele é utilizado em várias aplicações, uma bem conhecida é quando aliado a uma placa mãe, assim reportando o problema da placa por códigos sonoros.

Também é importante diferenciar o Buzzer de um Alto Falante. Enquanto o alto falante simplesmente reproduz o sinal enviado, o Buzzer possui uma PCB interna que traduz essa sinal para um sinal único que será reproduzido, agindo como uma espécie de filtro.

Ligação:

Em teoria, a ligação do Buzzer é bem simples, uma vez que só possui dois terminais. O problema é a corrente de consumo quando ligado, em geral, o consumo passa de 20mA, que é normalmente o limite de corrente por porta dos microcontroladores. No nosso caso, o limite de corrente por GPIO é 12mA, então como podemos contornar esse problema? Simples, com outro componente, extremamente importante na eletrônica, o transistor.

Transistor

O transistor possui várias propriedades, mas no nosso caso, vamos utilizar uma, que é a capacidade de acionar um componente pela fonte, ao invés da porta GPIO, assim criando um driver.

Então vamos entender como utilizar o transistor em nosso projeto.

Nesse tutorial, vamos utilizar o transistor BC548, ele possui 3 terminais, o coletor, a base e o emissor, vamos utiliza-los na seguinte ligação:

A ligação é básica, a base será o terminal que vai receber o sinal do nosso microcontrolador, para esse transistor,é recomendado utilizar um resistor de 1k. No coletor, conectamos o terminal negativo do Buzzer. Já no emissor, conectamos no GND do controlador. Por fim, conectamos o terminal positivo do Buzzer no VCC da fonte, no caso, utilizei um Buzzer 5V, então utilizei uma fonte com a mesma tensão.

Código:

O código é bem simples, uma vez que funciona do mesmo jeito que o LED.

#define BUZZER 5

void setup() {
pinMode(BUZZER, OUTPUT);
}

void loop() {
digitalWrite(BUZZER, HIGH);
delay(1000);
digitalWrite(BUZZER, LOW);
delay(1000);
}

Nesse exemplo, o Buzzer liga e desliga em um intervalo de 1 segundo. Para simular um beep, é necessário diminuir o intervalo, algo como 150ms.

--

--

Arthur Mehl

Co-Host do canal MehlCor Tech, curso Engenharia Mecatrônica e faço alguns tutorias sobre eletrônica e programação.