Este exemplo mostra como usar o tom () comando para gerar notas. Ele toca uma melodia pouco você pode ter ouvido antes.
Hardware necessário
- Arduino bordo
- 8 alto falantes ohm pequena
- 100 ohm resistor
- ligar-fio
Circuito
imagem desenvolvido utilizando Fritzing . Para mais exemplos de circuito, consulte a página do projeto Fritzing
Conectar um terminal de seu alto-falante para digital pino 8 através de um resistor de 100 ohms. Conecte o outro terminal ao terra.
Código
O código abaixo usa um arquivo extra, pitches.h. Este arquivo contém todos os valores campo para anotações típicas. Por exemplo, é meio NOTE_C4 C. NOTE_FS 4 é Fá sustenido, e assim por diante. Esta tabela nota foi originalmente escrito por Brett Hagman, em cuja obra o tom () comando foi baseado. Você pode achar que é útil para quando você quiser fazer notas musicais.
O esboço principal é a seguinte:
/*
Melodia
Tocar uma melodia
circuito:
Melodia
Tocar uma melodia
circuito:
* falante de 8 ohms em digital de 8 pinos
Criado 21 Jan 2010
modificado 30 Aug 2011
Po Tom Igoe
Este exemplo de código é de domínio público
http://arduino.cc/en/Tutorial/Tone
*/
#include "pitches.h"
// notas da melodia:
int melody[] = {
NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};
// nota: 4 semínima =, 8 = colcheia, etc:
int noteDurations[] = {
4, 8, 8, 4,4,4,4,4 };
void setup() {
// iterar sobre as notas da melodia:
for (int thisNote = 0; thisNote < 8; thisNote++) {
// para calcular a duração da nota, ter um segundo
. // dividido pelo tipo de nota semínima
// eg = 1000 / 4, colcheia = 1000 / 8, etc
int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote],noteDuration);
// para distinguir as notas, definir um tempo mínimo entre eles.
// duração da nota + 30% parece funcionar bem:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// parar a reprodução de tom:
noTone(8);
}
}
void loop() {
// não precisa repetir a melodia.
}
Fonte: Arduino.cc
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.