Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
programacao-arduino:musica-buzzer [2018/12/30 00:12] patrickof [Código] |
programacao-arduino:musica-buzzer [2020/11/26 09:12] (atual) bandeira [Código] |
||
---|---|---|---|
Linha 7: | Linha 7: | ||
=====Lógica===== | =====Lógica===== | ||
- | 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 [[programacao-arduino:pwm|PWM]] e, com isso, gerar notas musicas. Além disso necessitamos de um Buzzer para emitir sinais sonoros e formar a música. | + | 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 [[programacao-arduino:pwm|PWM]] e, com isso, gerar notas musicais. 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. |
=====Circuito===== | =====Circuito===== | ||
- | Para a montagem dessa caixa, devemos ligar o 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 que utilizem 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 Ω: | + | |
+ | Além disso, necessitamos criar um circuito utilizando um Buzzer. Ligue o polo positivo do buzzer em alguma saída geradora de onda e a outra ponta no GND. Para evitar que o buzzer possa queimar, recomenda-se a utilização de 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 Ω: | ||
Linha 20: | Linha 20: | ||
=====Código===== | =====Código===== | ||
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: | 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: | ||
- | Do”,”Re#”,”Mi”, “Pausa”, “Fa”, “Fim” | ||
<dtable> | <dtable> | ||
^ Nota ^ Frequência ^ | ^ Nota ^ Frequência ^ | ||
Linha 30: | Linha 29: | ||
| Lá | 440 | | | Lá | 440 | | ||
| Si | 494 | | | Si | 494 | | ||
- | | Dó# | 528 | | ||
- | | Ré# | 622 | | ||
- | | Sol# | 370 | | ||
- | | Lá# | 415 | | ||
</dtable> | </dtable> | ||
+ | |||
+ | Outras notas: [[http://www.das.inpe.br/~alex/FisicadaMusica/fismus_escalas.htm| As escalas musicais]]. | ||
+ | // | ||
+ | // | ||
+ | |||
+ | Abaixo se encontra um código que reproduz a musica tema de Game of Thrones: | ||
+ | // | ||
+ | // | ||
+ | <code C> | ||
+ | #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); | ||
+ | } | ||
+ | </code> |