fbpx
ArduinoNovidadeSérie Arduino

Utilizando o Buzzer Ativo no Arduino


O buzzer é um componente eletrônico que converte um sinal elétrico em onda sonora. Este dispositivo é utilizado para sinalização sonora, sendo aplicado em computadores, despertadores, carros, entre outros. O buzzer é composto por duas camadas de metal, uma terceira camada de cristal piezelétrico, envolvidas em um invólucro de plástico, e dois terminais para ligação elétrica.

Figura 1: Buzzer.


Existem dois tipos de buzzer: o buzzer ativo e o buzzer passivo. O buzzer ativo possui um circuito mais complexo que o passivo, no entanto seu uso é mais simples necessitando apenas de ser energizado para emitir um sinal sonoro. Este componente é apropriado para alarmes, avisos e sinais de alerta. No tutorial de hoje vamos aprender como utilizar o buzzer ativo no Arduino.

O propósito deste projeto será utilizar o buzzer ativo para emitir som cinco vezes. Apesar de bastante simples, este projeto nos ensinará sobre o acionamento deste componente em uma determinada frequência e intervalo de tempo. Para isso, aprenderemos como utilizar as funções tone() e noTone().

Além disso, esse projeto também visa colocar em prática o uso da estrutura de repetição for, utilizada para que certo trecho do código seja executado um determinado número de vezes, cinco neste caso.


MATERIAIS NECESSÁRIOS

1 x Placa UNO SMD R3 Atmega328 compatível com Arduino UNO;
1 x Cabo USB;
1 x Protoboard;
1 x Buzzer ativo;
Cabos jumpers macho-macho.


ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES


Antes de iniciar a montagem elétrica do circuito, certifique-se que a sua placa Arduino esteja desligada. Monte o circuito da utilizando a protoboard, o buzzer ativo e os fios.


Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:

• Assim como os LEDS, o buzzer possui polaridade. No corpo do componente você encontrará um símbolo “+” que indica a polaridade positiva;
• O terminal positivo do buzzer deve ser conectado à porta digital 8 da placa UNO e o outro terminal deve ser ligado ao GND.


ELABORANDO O CÓDIGO

Após a montagem do circuito, vamos a programação do Sketch. Conforme mencionado anteriormente, o objetivo deste projeto é fazer com o que o buzzer toque cinco vezes. Vamos entender a lógica de programação deste projeto com os seguintes passos:

1- Declarar a variável

A variável buzzer será utilizada para representar o pino digital 8, onde o terminar positivo do buzzer está conectado;

2- Definir o pino de saída

A variável buzzer (pino 8) deve ser definida como saída, ou seja, OUTPUT;

3- Realizar repetição

Inicializaremos o loop incluindo a estrutura de repetição for através da instrução for (i; i < 5; i++). Após o for, o primeiro parâmetro a ser incluído nos parênteses é a variável que será utilizada como contados. O outro parâmetro é uma condição, que deve ser satisfeita para que as instruções do laço for sejam executadas. Neste projeto, as instruções do for serão realizadas enquanto i for menor que 5. Por fim, deve ser incluído o incremento.

4- Acionar o buzzer

Utilizaremos a função tone() para gerar uma onda quadrada na frequência de 1500 Hz no pino digital 8 da placa UNO e damos um intervalo de 500 milissegundos;
Sintaxe da função tone: tone(pino, frequência);

Para interromper a geração da onda quadrada iniciada pela função tone() utilizaremos a função noTone(), desligando o buzzer e criamos um intervalo de 500 milissegundos;
Sintaxe da função noTone: noTone(pino);

Desta forma, o Sketch deste projeto ficará da seguinte maneira:

int buzzer = 8;//Atribui o valor 8 a variável buzzer, que representa o pino digital 8, onde o buzzer está conectado
int i = 0;//Variável para contar o número de vezes que o buzzer tocou

void setup() {
  pinMode(buzzer, OUTPUT);//Definindo o pino buzzer como de saída.
}

void loop() {
  for (i; i < 5; i++) {//Para i, enquanto i for menor que 5, realize o código e incremente 1 em i
    tone(buzzer, 1500);//Ligando o buzzer com uma frequência de 1500 Hz.
    delay(500);//Intervalo de 500 milissegundos
    noTone(buzzer);//Desligando o buzzer.
    delay(500);//Intervalo de 500 milissegundos
  }
}

Espero que tenham gostado deste tutorial. Em caso de dúvidas deixe seu comentário abaixo.

Att.,

Carol Correia Viana

Dúvidas? Deixe seu comentário

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Deixe uma pergunta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.