Étape 9: Jouer la Can Can
Il est temps de faire de la musique ! À l’aide d’un piano à queue (ou Garage Band dans mon cas), écouter les différentes notes que vous souhaitez créer. Jouer la chanson à l’oreille, ou recherchez-le sur partitions. Pour chaque billet que vous souhaitez créer, prendre en compte de la première note dans le tableau, F, de comprendre quel entier note du tableau correspond à la note jouée sur le piano.
NoteInt exemple :
G =??: nous allons comprendre cela.
F = 0
Ajouter une octave (12) pour rendre le terrain plus agréable sur cette sonnerie = 12
G est supérieure à F (clé noir et blanc) sur le clavier 2 touches, ajoutez 2 = 14
G = 14
Pour la durée de jeu dans cet exemple :
une seizième note = 250 millisecondes
un huitième note = 500 millisecondes
une note noire = 1000 millisecondes
une note blanche = 2000 millisecondes
une note entière = 4000 millisecondes
En outre, la longueur par défaut de « souffle » dans la fonction playNote() a été modifiée à 20, pour donner une légère pause entre chaque note pour donner un effet « tee-tee-tee-tee » lors de la lecture. Voici les résultats :
---copier après cette ligne---
Fonction d’avertisseur sonore exemple pour le buzzer de CEM-1203 (de Sparkfun partie #COM-07950).
par Rob Faludi
http://www.Faludi.com
Ajouts par Christopher Stevens
http://www.christopherstevens.cc
référencé à partir de http://www.phy.mtu.edu/~suits/notefreqs.html
commençant par F noteFreqArr [1]
int noteFreqArr [] = {}
49,4 52,3, 55,4, 58,7, 62,2, 65,9, 69,9, 74, 78,4, 83.1, 88, 93.2
98,8, 105, 111, 117, 124, 132, 140, 148, 157, 166, 176, 186,
198, 209, 222, 235, 249, 264, 279, 296, 314, 332, 352, 373,
395, 419, 444, 470, 498, 527, 559, 592, 627, 665, 704, 746,
790, 837, 887, 940, 996, 1050, 1110, 1180, 1250, 1320, 1400, 1490,
1580, 1670, 1770, 1870, 1990, 2100} ;
void setup() {}
pinMode (sortie 4) ; mettre une épingle pour la sortie de l’avertisseur sonore
}
void playNote (int noteInt, longue durée, long souffle = 20) {}
longueur = longueur - souffle ;
Buzz (4, noteFreqArr [noteInt], longueur) ;
if(Breath > 0) {//take une courte pause ou « souffle » si spécifié
Delay(Breath) ;
}
}
void loop() {}
plat principal
playNote(24,500) ;
playNote(17,1000) ;
playNote(19,250) ;
playNote(22,250) ;
playNote(21,250) ;
playNote(19,250) ;
playNote(24,500) ;
playNote(24,500) ;
playNote(24,250) ;
playNote(26,250) ;
playNote(21,250) ;
playNote(22,250) ;
playNote(19,500) ;
playNote(19,500) ;
playNote(19,250) ;
playNote(22,250) ;
playNote(21,250) ;
playNote(19,250) ;
playNote(17,250) ;
playNote(29,250) ;
playNote(28,250) ;
playNote(26,250) ;
playNote(24,250) ;
playNote(22,250) ;
playNote(21,250) ;
playNote(19,250) ;
playNote(17,1000) ;
playNote(19,250) ;
playNote(22,250) ;
playNote(21,250) ;
playNote(19,250) ;
playNote(24,500) ;
playNote(24,500) ;
playNote(24,250) ;
playNote(26,250) ;
playNote(21,250) ;
playNote(22,250) ;
playNote(19,500) ;
playNote(19,500) ;
playNote(19,250) ;
playNote(22,250) ;
playNote(21,250) ;
playNote(19,250) ;
playNote(17,250) ;
playNote(24,250) ;
playNote(19,250) ;
playNote(21,250) ;
playNote(17,250) ;
Delay(250) ;
}
{} void buzz (int targetPin, fréquence longue, longue durée)
delayValue long = 1000000/fréquence/2 ; calculer la valeur de délai entre les transitions
1 seconde est d’une valeur de microsecondes, divisées par la fréquence, puis divisée en deux depuis
Il y a deux phases pour chaque cycle
numCycles long = fréquence * longueur / 1000 ; calculer le nombre de cycles pour bon moment
multiplication de fréquence, ce qui est vraiment cycles par seconde, par le nombre de secondes pour
obtenir le nombre total de cycles pour produire
pour (long j’ai = 0; i < numCycles; i ++) {/ / pour la longueur calculée de temps...
digitalWrite(targetPin,HIGH) ; écrire le NIP de buzzer haut pour faire sortir le diaphragme
delayMicroseconds(delayValue) ; Attendez que la valeur de délai calculé
digitalWrite(targetPin,LOW) ; écrire la broche sonnerie faible se replier le diaphragme
delayMicroseconds(delayValue) ; attendre againf ou la valeur de délai calculé
}
}
---copier avant cette ligne---
L’Arduino est maintenant, en jouant le Can Can, mais il est encore... bla bla. L’étape suivante donne les notes un peu plus de texture.