Como usar um Buzzer no NodeMCU
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.
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.
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.