- Projetos Finalizados
- Projetos em Andamento
- Treinamentos
- Conhecimentos
-
- Conceitos
- Outros
Essa é uma revisão anterior do documento!
Além das aplicações usuais de um Arduino, como uma ferramenta de prototipagem, podemos utilizá-lo para o desenvolvimento de instrumentos mais simples. Um exemplo disso é a criação de uma caixa de som.
Para isso devemos utilizar uma função própria do Arduino, a qual chama-se tone(). Ela consegue gerar ondas em frequências específicas nos pinos de PWM e, com isso, gerar notas musicas. Essa função possui dois modos de utilização com 2 parâmetros - tone(pino, frequência) - ou três - tone(pino, frequência, duração). Além dela, temos a função noTone(pino) que interrompe a geração da onda.
Além disso, necessitamos criar um circuito utilizando um Buzzer. Ligue o polo positivo do buzzer em algum saída geradora de onda e a outra ponta no GND. Para evitar que o buzzer possa queimar, recomenda-se a utilização um resistor no polo positivo do buzzer. Abaixo se encontra uma figura esquemática do circuito, utilizando o pino 9 e um resistor de 100 Ω:
Para a implementação, precisamos saber qual é a frequência das notas que você utilizará na sua canção. Abaixo se encontra uma tabela com algumas notas que utilizaremos nesse exemplo:
Nota | Frequência |
---|---|
Dó | 262 |
Ré | 294 |
Mi | 330 |
Fá | 349 |
Sol | 392 |
Lá | 440 |
Si | 494 |
Outras notas: As escalas musicais Abaixo se encontra um código que reproduz a musica tema de Game of Thrones:
#define Do 262 #define Re 294 #define Mi 330 #define Fa 349 #define Sol 392 #define La 440 #define Si 494 #define Pausa 0 char buz = 9; //pino conectado no buzzer void setup(){ pinMode(buz, OUTPUT); // seta o pino como saída } void loop(){ //O primeiro parâmetro representa a frequência, já o segundo, a duração tone(La,500); tone(Re,300); tone(Fa,250); tone(Sol, 250); tone(La, 250); tone(Re, 300); tone(Fa, 200); tone(Sol, 200); tone(Mi, 700); tone(Pausa, 200); tone(Sol, 500); tone(Do, 500); tone(Fa, 200); tone(Mi,200); tone(Sol,200); tone(Do,500); tone(Fa,200); tone(Mi,200); tone(Re,500); }