Básico - Projeto 36a

Controlando um sonorizador piezoelétrico sem a função tone()

Objetivo

Neste projeto vamos apresentar um circuito onde é possível controlar a frequência de um sonorizador piezoelétrico (buzzer ou disco piezoelétrico) através de um potenciômetro. Neste exemplo, diferente do projeto 36, não iremos utilizar o conceito tone() para gerar sons, e o sonorizador deverá estar conectado à uma porta digital do Arduino sem precisarmos do recurso PWM (Pulse Width Modulation).

Disco Piezoelétrico: Um disco piezoelétrico funciona quando uma corrente elétrica passa pelo material cerâmico do disco, fazendo com que ele mude de forma e produza um som. O disco também funciona de forma inversa: quando se bate nele ou ele sofre algum tipo de pressão, a força no material provoca a geração de uma corrente elétrica. Para saber mais, leia: https://pt.wikipedia.org/wiki/Piezoeletricidade e Transdutor Piezoelétrico.

Resultado de imagem para disco piezo elétrico com fio

Buzzer: Nada mais é do que um transdutor piezoelétrico encapsulado.

Obs.: O buzzer e o disco são sonorizadores piezoelétricos. Quando se aplica um sinal elétrico e um determinada frequência, o dispositivo piezoelétrico produz uma nota musical. As notas variam de acordo com a frequência utilizada. (O ouvido humano pode ouvir sons nas frequências entre 20 e 20.000 Hz).

Aplicação

Para fins didáticos e criação de sons com arduino.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos

Comprar

1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 pontos

Jumpers Kit cabos ligação macho / macho

Comprar

1  
Buzzer

Buzzer ativo 5V 12mm

Comprar

1

Utilize um buzzer ou um disco piezoelétrico

Potenciômetro

Potenciômetro 10K

Comprar


 

1 Resultado de imagem para potenciômetro

O valor do potenciômetro aumenta quando giramos o eixo do componente na direção do polo negativo para o polo positivo.

Arduino UNO R3 Arduino UNO Original

Comprar

 

Arduino UNO Similar

Comprar


 

1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito. Neste projeto você poderá utilizar um buzzer ou um disco piezoelétrico na montagem do circuito. Se possível, teste com os dois componentes.

 


Atenção

1) O buzzer tem polaridade. Portando, cuidado para não ligar o buzzer invertido. Se você retirar o adesivo superior do buzzzer poderá ver um sinal de positivo (+). Este sinal mostra onde está o pino positivo do componente que deverá estar conectado ao potenciômetro (neste projeto) ou a uma porta digital do Arduino e o polo negativo ao GND.

2) Observe que nesse projeto o potenciômetro foi montado como um divisor de tensão, onde utilizamos os 3 terminais do componente:

Veja a montagem do nosso projeto abaixo:

Desta forma o potenciômetro funciona como um divisor de tensão que pode ser lido pelo IDE do Arduino. Girando o eixo no sentido horário (da saída do arduino para a entrada do buzzer) aumentaremos o valor, e ao contrário, diminuímos o volume do som. Isto acontece pois girando o eixo do potenciômetro aumentaremos ou diminuímos a tensão na entrada da porta analógica do Arduino, variando de 0 a 5V. Para saber mais sobre a diferença entre potenciômetro e reostato leia o tutorial: Potenciômetro ou reostato: qual a diferença?

3) A montagem do nosso projeto foi realizada em um protoboard com linhas de alimentação não contínuas, onde acrescentamos jampers para a ligação. Verifique se o seu protoboard possui linhas de alimentação contínuas ou separadas - saiba mais em protoboard

Observação: No exemplo acima, utilizamos um buzzer. Você poderá substituir o buzzer por um disco piezoelétrico para ter um efeito semelhante. O cabo vermelho (positivo) deverá estar conectado ao Arduino e o cabo preto (negativo) conectado ao GND (ground).

Código do Projeto (Sketch)

1) Faça o dowload e abra o arquivo projeto36a.ino no IDE do Arduino:

Ou se preferir, copie e cole o código abaixo no IDE do Arduino:

/*******************************************************************************
*
*    Projeto 36a - Controlando frequência de um sonorizador sem tone()
*                   http://squids.com.br/arduino
*
*******************************************************************************/

const int pinPot = A5; // Indica a porta analógica ligada ao potenciômetro
const int pinBuzzer = 8; // Indica a porta digital ligada ao buzzer

void setup(){
  pinMode(pinBuzzer, OUTPUT);
  pinMode(pinPot, INPUT); // Por padrão porta analógica já é INPUT 
}

void loop(){
  
  int potValue = analogRead(pinPot); // Lê valores no potenciômetro
  int frequencia = map(potValue, 0, 1024, 2500, 0); //define valores de frequência

  digitalWrite(pinBuzzer, 1);  //onda quadrada (50%) - estado lógico HIGH
  delayMicroseconds(frequencia);   // micro segundos

  digitalWrite(pinBuzzer, 0);     //onda quadrada (50%) - estado lógio LOW
  delayMicroseconds(frequencia);    
     
} 

Observação: Os valores mínimo e máximo de frequência podem ser alterados a vontade. Por exemplo, você poderá utilizar valores das notas musicais de diversas escalas. Veja tabela de notas musicais.

Vídeo

Como o projeto deve funcionar

1. Ao iniciar o programa, você poderá controlar a frequência gerada em um buzzer através do potenciômetro.

2. Girando o eixo do potenciômetro para o lado conectado no polo positivo (5V) o valor da frequência no buzzer aumentará. Já ao contrário, girando o eixo para o lado negativo (GND) o valor da frequência diminuirá.

Gerar sons em um dispositivo piezoelétrico

1. Neste projeto não vamos utilizar a função tone(pin, frequência, duração) para gerar sons em um sonorizador piezoelétrico.

2. Portanto, para criarmos um onda quadrada de cerca de 50%, vamos utilizar um truque onde ligamos e desligamos o buzzer em frações de microsegundos (delayMicroseconds), conforme mostra padrão abaixo:

  digitalWrite(pinBuzzer, 1);  //onda quadrada (50%) - estado lógico HIGH
  delayMicroseconds(frequencia);   // micro segundos

  digitalWrite(pinBuzzer, 0);     //onda quadrada (50%) - estado lógio LOW
  delayMicroseconds(frequencia); 

Desta forma, para gerarmos um tom,  criamos uma onda quadrada de cerca de 50% no estado lógico HIGH e 50% no estado lógico LOW, onde podemos definir que:

. A frequência será inversamente proporcional ao valor dado pela variável frequencia, ou seja, quanto maior o tempo em micro segundos, menor a frequência gerada no buzzer.

. Apenas um tom pode ser gerado por vez.

 

O anúncio abaixo ajuda a manter o Squids Arduino funcionando

Compartilhe:

Doações

Contribua pra manter o site online :)

Inscreva-se no canal Squids

Squids Arduino News

CB09 : Dimmer para leds com CI 555 sem Arduino Objetivo Criar um circuito gerador de pulsos modulados (PWM - Pulse Width Modulation) para alterar a intensidade do brilho de um led. Para este pro...

Como usar temporizadores no Arduino

Funções de temporização na programação com Arduino Objetivo Nesta dica vamos mostrar utilizar as diversas funções de temporização disponíveis na programação com Arduino. As funções de Temporizaç...

Intermediário - Projeto 11 Contador de acessos utilizando leds infravermelhos e Arduino Objetivo O objetivo deste projeto é criar um sistema de contagem de visitantes que entram e saem de uma s...

Básico - Projeto 94 Simulando um botão na tela do display OLED Objetivo O objetivo deste projeto é simular um botão de controle no display OLED. O botão servirá para controlar a iluminação de u...

Básico - Projeto 93 Criando um relógio analógico com Oled SSD1306 Objetivo O objetivo deste projeto é exibir no display OLED um relógio com estilo analógico, ou seja, com ponteiros. Utilizaremo...

Outros artigos

Mais: Circuitos básicos Dicas de Software Projetos Intermediários Projetos Básicos Desafios Jogos

Você está preparado?

Topo