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/29 23:48] patrickof [Circuito] |
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 Ω: |
+ | |||
// | // | ||
{{ :programacao-arduino:buzzer.png?350 |}} | {{ :programacao-arduino:buzzer.png?350 |}} | ||
// | // | ||
+ | |||
+ | |||
=====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: | ||
+ | <dtable> | ||
+ | ^ Nota ^ Frequência ^ | ||
+ | | Dó | 262 | | ||
+ | | Ré | 294 | | ||
+ | | Mi | 330 | | ||
+ | | Fá | 349 | | ||
+ | | Sol | 392 | | ||
+ | | Lá | 440 | | ||
+ | | Si | 494 | | ||
+ | </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> |