Modifications

Sauter à la navigation Sauter à la recherche
4 607 octets ajoutés ,  21 février 2016 à 13:19
Ligne 1 : Ligne 1 :  
{{ARDX-NAV}}
 
{{ARDX-NAV}}
   −
{{traduction}}
+
== Ce que nous faisons ==
 +
'''.: Musique :.'''
   −
== Ce que faisons nous ==
+
'''.: Les éléments Piezo électriques :.'''
.: Musique :.
  −
 
  −
.: Le s éléments Piezo électriques :.
      
{{bloc-etroit|text=Jusqu'à maintenant nous avons contrôlé la lumière, le mouvement et les électrons. Attaquons nous maintenant au son.
 
{{bloc-etroit|text=Jusqu'à maintenant nous avons contrôlé la lumière, le mouvement et les électrons. Attaquons nous maintenant au son.
Ligne 23 : Ligne 21 :     
{{ARDX-composant
 
{{ARDX-composant
   |label=Fiche de montage CIRC-01
+
   |label=Fiche de montage CIRC-06
 
   |label2=x1
 
   |label2=x1
 
   |img=ARDX-circ-sheet.png
 
   |img=ARDX-circ-sheet.png
Ligne 51 : Ligne 49 :     
{{ARDX-composant-end}}
 
{{ARDX-composant-end}}
 +
Tous ces éléments sont disponibles dans [http://shop.mchobby.be/product.php?id_product=11 le Kit Ardx proposé sur shop.mchobby.be].
    
=== Schéma ===
 
=== Schéma ===
Ligne 59 : Ligne 58 :     
== Le code ==
 
== Le code ==
xxx
+
Pas besoin de taper tout le code, vous pouvez télécharger ce programme depuis [http://ardx.org/CODE06 ardx.org/CODE06] et faire un copier/coller dans votre croquis.
 +
 
 +
<nowiki>/* 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);
 +
      }
   −
<nowiki>/* code */</nowiki>
+
      // Pause entre deux notes
 +
      delay(tempo / 2);
 +
  }
 +
}</nowiki>
    
== Cela ne fonctionne pas? ==
 
== Cela ne fonctionne pas? ==
 
Voici 3 choses à essayer.
 
Voici 3 choses à essayer.
=== xxx 1 ===
+
=== Pas de son? ===
yyyy
+
Etant donné la taille et la forme d'un piezo (un gros cylindre). Il est facile de le placer dans le mauvais trou sur le breadboard.
 +
 
 +
Vérifiez son emplacement.
 +
 
 +
=== Arrêter la mélodie ===
 +
'''Je n'arrive plus à penser pendant qu'Arduino joue une mélodie'''
 +
 
 +
Il suffit de débrancher le piezo pendant que vous êtes occupé.
 +
 
 +
Ensuite, chargez votre nouveau programme et rebranchez le piezo
 +
 
 +
=== Une autre mélodie ===
 +
'''Fatigué d'entendre « A vous dirais- je maman » ?'''
   −
=== xxx 2 ===
+
Le code est écrit de telle sorte qu'il vous sera facile d'ajouter vos propres mélodies.
yyyy
     −
=== xxx 3 ===
+
Jetez un coup d'œil sur la section ci-dessous.
yyyy
      
== Faire encore mieux ==
 
== Faire encore mieux ==
=== zzz 1 ===
+
=== Modifier la vitesse ===
zzzz
+
Le temps de chaque note est calculé à l'aide de variables de telle sorte que nous pouvons modifier le son de chaque note ainsi que le temps de chaque note. Pour changer la vitesse d'une mélodie, il ne faut changer qu'une ligne.
 +
 
 +
<nowiki>int tempo=300; ---> int tempo=(nouvelle_valeur)</nowiki>
 +
 
 +
Utiliser une valeur plus grande pour ralentir la mélodie et une plus petite valeur pour l'accélérer.
 +
 
 +
=== Adapter les notes ===
 +
Si vous trouvez que les notes ne correspondent pas bien à la mélodie, cela peut également être corrigé. Les notes sont calculées sur base de la formule décrite dans les commentaires du programme. Pour ajuster une note, il suffit de modifier sa valeur correspondante dans le tableau {{fname|notes[]}}. Chaque note correspond à la position de son nom dans e tableau {{fname|names[]}}.
 +
 
 +
Par exemple c Do = 1915.
 +
 
 +
<nowiki>char names[] = { 'c', 'd', 'e', 'f', 'g', 'a','b', 'C' };
 +
 
 +
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; </nowiki>
 +
 
 +
=== Composez vos propres mélodies ===
 +
Le programme est configuré pour jouer « Ah vous dirais-je maman », cependant, il est développé de sorte à pouvoir la changer facilement. Chaque chanson est définie à l'aide
 +
d'un entier et de deux tableaux. L'entier indique le nombre de notes, le premier tableau ({{fname|notes[]}}) contient les notes et le rythme de chaque note (temps pendant lequel la note est jouée) dans le second ({{fname|beats[]}}).
 +
 
 +
{{underline|Quelques exemples:}}
 +
* Ah! vous dirai-je, maman
 +
<nowiki>int length = 15;
 +
char notes[] = {"ccggaagffeeddc "};
 +
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };</nowiki>
 +
* Joyeux anniversaire (premier couplet)
 +
<nowiki>int length = 13;
 +
char notes[] = {"ccdcfeccdcgf "};
 +
int beats[] = {1,1,1,1,1,2,1,1,1,1,1,2,4};</nowiki>
    
== Plus, plus et encore plus ==
 
== Plus, plus et encore plus ==
Plus d'information, où poser vos autres questions:
+
Plus d'information, où poser vos autres questions [http://ardx.org/CIRC06 ardx.org/CIR06] (''anglais'')
 
  −
[http://ardx.org/CIRC13 ardx.org/CIR06] (''anglais'')
      
== Internet ==
 
== Internet ==
29 917

modifications

Menu de navigation