// Définition des fréquences des notes de musiques de la 4ème octave #define OCTAVE_4_DO 523 #define OCTAVE_4_RE 587 #define OCTAVE_4_MI 659 #define OCTAVE_4_FA 698 #define OCTAVE_4_SOL 784 #define OCTAVE_4_LA 880 #define OCTAVE_4_SI 988 // Définition du temps de base sur lequel on doit jouer une note, en millisecondes #define DUREE_TEMPS 300 // Définition du temps de pause entre chaque note jouée, en millisecondes #define PAUSE_FIN_NOTE 90 // Fonction qui permet de jouer une note avec un temps de pause entre les notes // Paramètres : // - note : la fréquence de la note à jouer. // - nb_temps : le nombre de temps de la note. void JouerNote(unsigned int note, unsigned int nb_temps) { // Lance l'émission de la note tone(8, note, nb_temps * DUREE_TEMPS); // Attend que la note soit terminée de jouer delay(nb_temps * DUREE_TEMPS); // Petit silence avant la note suivante delay(PAUSE_FIN_NOTE); } void setup() { // Initialisation du port de communication série Serial.begin(9600); // Envoi d'un message au PC avec le port série Serial.println("On va jouer 'Au clair de la lune' !"); } void loop() { // On joue les notes une par une JouerNote(OCTAVE_4_DO, 1); JouerNote(OCTAVE_4_DO, 1); JouerNote(OCTAVE_4_DO, 1); JouerNote(OCTAVE_4_RE, 1); JouerNote(OCTAVE_4_MI, 2); JouerNote(OCTAVE_4_RE, 2); JouerNote(OCTAVE_4_DO, 1); JouerNote(OCTAVE_4_MI, 1); JouerNote(OCTAVE_4_RE, 1); JouerNote(OCTAVE_4_RE, 1); JouerNote(OCTAVE_4_DO, 4); // On arrête de jouer noTone(8); // On attend 5 secondes avant de recommencer delay(5000); }