Franzininho DIY – Instrumento musical com Buzzer

Nesse exemplo vamos criar um programa que lê uma partitura e toca a música escrita através de um buzzer no Franzininho DIY. Vamos aprender como se usar um buzzer passivo para gerar cada nota musical com ajuda do timer0.

Introdução

Nesse exemplo vamos criar um programa que lê uma partitura e toca a música escrita através de um buzzer na Franzininho DIY. Vamos aprender como se usar um buzzer passivo para gerar cada nota musical com ajuda do timer0.

Boa prática!

Recursos necessários

  • Franzininho DIY (com Micronucleus)
  • 1 buzzer passivo 5V
  • 4 jumpers macho-fêmea
  • 1 jumper macho-macho

Fazendo música com o Buzzer

Nesse exemplo vamos através de uma lookup table vamos ensinar quais as frequências de cada nota, e com o uso do timer vamos variar a entrada no buzzer na frequência da nota que queremos. Com a ajuda de outra tabela, vamos dar para o Franzininho a sequência das notas que queremos que ele toque, podendo assim, tocar a música que quisermos.

O buzzer passivo funciona como um pequeno alto falante, enquanto tivermos a tensão nominal na entrada positiva e o terra na entrada negativa o imã dentro dele vai para frente. Por outro lado, quando tivermos terra em ambas ele volta para a posição inicial. Se variarmos entre esses dois estados na frequência de uma nota musical geraremos uma onda sonora com o tom dela.

As notas musicais ocidentais em uma escala maior são Do Do# Re Re# Mi Fa Fa# Sol Sol# Lá Lá# Si voltando para Do depois. Cada nota está a uma distância de meio tom da outra e a 6 tons de sua próxima oitava, que é a mesma nota porém mais fina.

Olhando pela frequência temos que partindo de da terceira oitava, 440Hz, cada uma oitava acima tem o dobro da frequência e cada oitava a baixo tem metade da frequência. Já para subir cada semitom, basta multiplicar por 2^(1/12), ou para x semitons, 2^(x/12).

Código

Código disponível em: https://github.com/Franzininho/exemplos-avr-libc/tree/main/exemplos/buzzer

Montagem

circuito buzzer

Dependendo do buzzer é necessário conectar os jumpers diretamente nos pinos do buzzer ao invés de colocá-lo na protoboard.

Compilação e upload

Para compilar o programa, acesse a pasta do exemplo e dê o comando make:

Como já temos o makerfile configurado na pasta, será feita compilação e deve aparecer a seguinte mensagem:

Conecte a placa em uma entrada USB ou, caso a Franzininho já esteja conectada, aperte o botão de reset para iniciar o upload.

Resultado

O buzzer deve tocar Parabéns para você e deve continuar em loop até a placa ser desligada.

Conclusão

O buzzer passivo é um componente muito versátil com o qual podemos, não só, tocar músicas como também gerar diversos tipos de efeitos sonoros, tudo que precisamos é entender como gerar o som que queremos. Além disso vimos como podemos usar interrupções de timer para funções que precisam de Real Time, ou seja, que precisam de precisão de tempo.

Glossário

  • Setar: colocar um novo valor em um registrador. Para um bit é convencionado setar, mudá-lo para valor 1, e clear (limpar), mudá-lo para valor 0
  • Resetar: reiniciar
  • Timer: circuito eletrônico dedicado a contagem de tempo
  • Lookup table: tabela de consulta, no contexto de programação é um vetor com informações necessárias para o programa.

Outros artigos da série

<< Franzininho DIY – Contador de pulsos externosFranzininho DIY – Timer0 >>
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments

WEBINAR

Visão Computacional para a redução de erros em processos manuais

DATA: 23/09 ÀS 17:00 H