Como tocar notas musicais no Arduino

Adicionar som ao Arduino é divertido e a interface dos alto-falantes com o Arduino é relativamente simples. Você pode conectar um alto-falante diretamente ao Arduino ou conectar um alto-falante por meio de um circuito amplificador. Em ambos os casos, o Arduino pode gerar áudio digital de qualquer GPIO. A necessidade ou não de um circuito amplificador depende inteiramente do alto-falante selecionado. Um circuito amplificador não é necessário se o alto-falante for potente o suficiente para gerar sons audíveis.

O Arduino não pode processar arquivos de áudio de forma independente; ainda pode gerar áudio digital para muitas notas musicais. Um circuito de decodificação de áudio externo é necessário para reproduzir arquivos de áudio de uma fonte como arquivos WAV ou MP3 em um cartão SD. Nenhum circuito adicional é necessário, exceto um alto-falante adequado para tocar tons de melodia. Neste projeto, tocaremos notas musicais no Arduino e comporemos música para uma música no Arduino.

Componentes necessários

  1. Arduino UNO x1
  2. Alto-falante 4Ω 50W x1
  3. Conectando fios/fios de jumper

Conexões de circuito
Neste projeto, estamos conectando um alto-falante diretamente ao Arduino. O alto-falante usado neste projeto é um alto-falante de 4 ohms e 50 Watts de 3 polegadas que produz sons audíveis suficientes. O alto-falante possui dois terminais. Conecte um terminal ao pino terra do Arduino e o outro terminal a qualquer GPIO. Aqui, o outro terminal está conectado ao pino D8 do Arduino UNO.

Função Tom
A função tone é usada para tocar tons musicais no Arduino. A função gera uma onda quadrada da frequência especificada em um pino com um ciclo de trabalho de 50 por cento. A onda quadrada de um GPIO pode ser usada para tocar tons em um alto-falante ou campainha. A função permite tocar tons em apenas um pino por vez. Não é possível gerar tons menores que 31 Hz no Arduino. A função é conhecida por interferir na saída PWM nos pinos D3 e D11, portanto, deve ser usada com cuidado ao usar junto com a saída PWM. A função tem os seguintes protótipos.

tom (pino, frequência)
tom (pino, frequência, duração)

Se a duração não for especificada, o tom será reproduzido até que uma chamada para a função noTone seja feita. Se a duração for definida, o tom será encerrado no período especificado em milissegundos.

Tocando escala Dó maior no Arduino
Dó maior é uma escala maior baseada em Dó. Ela compreende os tons C, Ré, Mi, F, Sol, Lá e B. Na música vocal hindustani, esses tons são conhecidos como Sa, Re, Ga, Ma, Pa, Da, Ni e Sá. Esses tons têm as seguintes frequências:

C4/Sa: 262
D4/Re: 294
E4/Ga: 330
F4/Má: 349
G4/Pa: 392
A4/Da: 440
B4/Ni: 494
C5/Sa: 532

Faça as conexões do circuito e carregue o seguinte esboço no Arduino.

O esboço começa com a definição de constantes para notas da escala Dó maior. Os tons são armazenados em uma matriz. As notas são geradas chamando a função tone mantendo meias notas para cada nota. A duração do tom é definida como mínima para todas as alturas, ou seja, 1000/2 = 500 milissegundos. Na função setup , o pino 8 é configurado como saída digital para geração de ondas quadradas para as afinações. Os tons são finalizados chamando a função noTone após todos os tons serem tocados. O vídeo a seguir demonstra tocar tons de Dó maior no Arduino.

Tocando mais notas no Arduino
É possível tocar muitas notas diferentes para o mesmo tom alterando a duração do tom. Todas as notas possíveis, como nota completa, mínima, semínima, colcheia, sexta nota, etc., podem ser tocadas para cada tom simplesmente alterando a duração do tom. Todos os tons foram tocados em mínima no exemplo acima para a escala de Dó maior. Envie o seguinte esboço para o Arduino, que toca os mesmos tons da escala de Dó maior, mas em notas diferentes para produzir música para o tema do filme Star Wars.

O esboço toca as mesmas notas da escala C maior, mas com notas ou durações de tom diferentes. Dessa forma, o Arduino tocou música para o tema do filme Star Wars. O vídeo a seguir demonstra como tocar notas com variação de nota no Arduino.


Reproduzindo frequências de áudio contínuas
O Arduino não toca apenas notas musicais discretas. Ele pode reproduzir frequências contínuas como a de uma sirene de polícia. O esboço a seguir gera uma onda sonora continuamente variável, em vez de gerar notas musicais discretas.

O esboço altera continuamente a frequência de saída para gerar som para uma sirene da polícia. O vídeo a seguir demonstra como tocar uma sirene da polícia no Arduino.

Tocando notas musicais de uma música no Arduino
Tocar tons diferentes em notas diferentes pode gerar música para qualquer música no Arduino. O esboço a seguir gera música para uma música no Arduino tocando diferentes tons em notas diferentes.

O esboço acima gera música para uma música tocando muitos tons diferentes em notas diferentes, de acordo com a partitura de piano da música. Da mesma forma, a música de qualquer música pode ser sintetizada no Arduino tocando notas individuais. No entanto, não é possível tocar acordes de piano no Arduino. Os acordes de piano têm mais de uma nota individual tocada ao mesmo tempo, e a função tone pode tocar apenas um tom ou nota por vez. O vídeo a seguir demonstra a reprodução de uma música composta por notas únicas.

Conclusão
É possível gerar uma variedade de tons de melodia no Arduino tocando diferentes tons em diferentes notas. Dessa forma, o Arduino pode sintetizar qualquer música, desde que contenha notas únicas.

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.