ARDX-Montages-CIRC06
En cours de traduction/élaboration. |
Ce que faisons nous
.: Musique :.
.: Le s éléments Piezo électriques :.
Jusqu'à maintenant nous avons contrôlé la lumière, le mouvement et les électrons. Attaquons nous maintenant au son.
Mais le son est un phénomène analogique, comment Arduino va t'il résoudre ce problème ?
Une fois encore, nous allons nous appuyer sur l'incroyable vitesse de traitement d'Arduino pour imiter le comportement analogique. Pour y arriver, nous allons raccorder un composant piezo sur une des broches digitales d'Arduino.
Un piezo fait un petit « clic » chaque fois qu'il est traversé par un courant. Si nous envoyons des impulsions à la bonne fréquence (par exemple, 440 fois par seconde pour obtenir un La (A)) ces « clics » combinés produiront une note.
Essayons donc d'expérimenter cette particularités et de faire jouer « A vous dirais-je maman » à notre Arduino.
Le montage
Le matériel nécessaire
2 Pin header
x4
Piezo Buzzer
x1
Schéma
Montage
Le code
Pas besoin de taper tout le code, vous pouvez télécharger ce programme depuis ardx.org/CODE06 et faire un copier/coller dans votre croquis.
/* Melody (cleft) 2005 D. Cuartielles pour K3 * * Cet exemple utilise un piezo pour jouer une * mélodie. Il envoie une onde carrée à la * fréquence adéquate pour générer la tonalité correspondante. * * Le calcul de la tonalité est fait en suivant * l'opération mathématique suivante: * * timeHigh = période/2 = 1/(2*FrequenceTonalité) * * Où les différentes tonalités sont spécifiées dans la table suivante: * * note Fréquence Période timeHigh * Do c 261 Hz 3830 1915 * Ré d 294 Hz 3400 1700 * Mi e 329 Hz 3038 1519 * Fa f 349 Hz 2864 1432 * Sol g 392 Hz 2550 1275 * La a 440 Hz 2272 1136 * Si b 493 Hz 2028 1014 * Do C 523 Hz 1912 956 * * http://www.arduino.cc/en/Tutorial/Melody */ int speakerPin = 9; int length = 15; // Le nombre de notes // Les notes. Un espace représente un blanc char notes[] = "ccggaagffeeddc "; // Rythme correspondant à chaque note int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 }; int tempo = 300; void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); } } void playNote(char note, int duration) { char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; // Jouer la tonalité correspondant à une note for (int i = 0; i < 8; i++) { if (names[i] == note) { playTone(tones[i], duration); } } } void setup() { pinMode(speakerPin, OUTPUT); } void loop() { for (int i = 0; i < length; i++) { if (notes[i] == ' ') { delay(beats[i] * tempo); // Attendre } else { playNote(notes[i], beats[i] * tempo); } // Pause entre deux notes delay(tempo / 2); } }
Cela ne fonctionne pas?
Voici 3 choses à essayer.
xxx 1
yyyy
xxx 2
yyyy
xxx 3
yyyy
Faire encore mieux
zzz 1
zzzz
Plus, plus et encore plus
Plus d'information, où poser vos autres questions:
ardx.org/CIR06 (anglais)
Internet
.:téléchargement:.
LA fiche de montage est disponible sur ardx.org/BBLS06
.: Vidéo :.
La vidéo du montage est disponible sur ardx.org/VIDE13 (anglais)
Tutoriel/Manuel traduit par Meurisse D. pour MCHobby.be licence Creative Commons BY-SA.
Crédit de traduction
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant :
« Traduction par MCHobby (shop.MCHobby.be) - Vente de kit et composants » et ce quelque soit le média utilisé.
Utilisation commerciale
L'utilisation commercial de cette traduction (y compris sur site produisant des revenus par l'intermédiaire de publicité), même partielle, est soumise à redevance (license fee).
Le présent manuel a été traduit et autorisé à la vente avec l'aimable autorisation conjointe de Oomlout (www.oomlout.com) et d'AdaFruit (www.adafruit.com).
Produit sous licence Creative Commons BY-SA License and available for download: ardx.org/src/