Toque músicas com Arduino
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.