Toque músicas com Arduino

Fabio Souza
Franzininho
Published in
4 min readOct 28, 2018

Nesse artigos vou explicar como gerar música com Arduino e apresentar alguns exemplos para você reproduzir.

Som

O som pode ser definido como uma onda mecânica. Essa onda é uma oscilação de pressão e pode ser transmitida através de sólido, líquido ou gás. Por extensão, podemos definir o som como o resultado audível dessas oscilações em nossos ouvidos.

Os sons audíveis pelo ouvido humano têm uma frequência entre 20 Hz e 20 000 Hz.

Abaixo e acima desta faixa estão infrassom e ultrassom, respectivamente

Timbre

Timbre é a característica peculiar de cada som. Apesar de aprendermos no colégio que o som é uma onda, essa onda não é bonitinha (senoidal) como aparece nos livros. Cada onda sonora apresenta um formato característico, que depende do material que produziu o som. Isso é o que define o timbre do som. Timbre é o que diferencia dois sons de mesma frequência (mesma nota). Por exemplo, a nota Dó tocada no violão tem um som muito diferente da nota Dó tocada no teclado ou na flauta. Isso significa que esses instrumentos possuem timbres diferentes. Fonte: Descomplicado a Música

Microfones e alto falante

Microfones são dispositivos sensíveis à variação sutil da pressão do ar. Eles são sensores que traduzem as variações de pressão de ar em variações de tensão.

Os alto-falantes transforma a energia elétrica em som. A variação de tensão atua em uma parte que pode se mover, empurrando e puxando massas de ar, fazendo com que ela vibre e produza sons.

Usando o Arduino para reproduzir sons

Nesse tópico vamos aprender gerar música com Arduino. Mas antes é importante saber sobre as notas musicais.

As notas musicais são frequências definidas:

  • C (dó natural)
  • D (ré natural)
  • E (mi natural)
  • F (fá natural)
  • G (sol natural)
  • A (lá natural)
  • B (si natural)

Para gerar a frequência, vamos usar a função tone() do Arduino, que vai gerar uma onda quadrada na frequência requerida:

Função tone

  • tone(pin, frequency)
  • tone(pin, frequency, duration)

Parâmetros

  • pin: pino que será gerado o sinal.
  • frequency: a frequência em hertz — unsigned int
  • duration: duração do som em milissegundo (opcional) — unsigned long

Circuito

Para nosso teste vamos usar o seguinte circuito:

Exemplo 1 — toneMelody

Para nosso primeiro teste vamos usar o exemplo toneMelody que já vem na IDE do Arduino:

Troque a saída na função tone para o pino 6 e carregue na placa.

Exemplo 2 — Teclado musical

Agora vamos fazer um teclado musical:

const int speaker = 6;
const int BT1 = 2;
void setup() {
pinMode(speaker, OUTPUT);
pinMode(BT1, INPUT_PULLUP);
}
void loop() {
if(digitalRead(BT1) == LOW){
tone(speaker,264,100);
}
}

Adicione mais teclas com outras notas e toque suas músicas preferidas.

Exemplo 3 — Sirene da policia

Agora vamos brincar com loops e gerar um som que lembra a sirene da polícia:

const int speaker  = 6;
const int duracao = 10;
int freq = 0;
void setup()
{
pinMode(speaker,OUTPUT);
}
void loop()
{
for (freq = 200; freq < 2000; freq++)
{
tone(speaker, freq, duracao);
delay(1);
}

for (freq = 2000; freq > 200; freq --)
{
tone(speaker, freq, duracao);
delay(1);
}
}

Tente alterar os loops for para gerar novos sons.

O que achou? Conhece alguma música para executar com Arduino? Deixe seu comentário abaixo.

--

--

Fabio Souza
Franzininho

Engenheiro, professor e fazedor! Apaixonado por tecnologia, é diretor de operações do portal Embarcados e líder do projeto Franzininho. about.me/fabio.souza