Bonjour, Aujourd'hui comme il est indiqué au titre de cet article je vais essayer de produire une strophe musicale en utilisant la carte STM 32 F4 et un buzzer ou un speaker.
Commençons par définir le son :
Le son, c’est avant tout une vibration. Il faut que quelque chose bouge pour qu’un son soit produit. Par exemple, tu peux sonner une cloche, taper des mains ou pincer les cordes d’une guitare pour produire des vibrations qui vont générer des ondes sonores. Les vibrations voyagent d’un endroit à l’autre dans l’air sous forme d’ondes sonores.
Si les vibrations atteignent ton oreille, celle-ci va envoyer un signal à ton cerveau et tu vas entendre le son.
Mais si vous adore le physique vous pouvez lire ce que j'ai trouvez dans un article trés intéressent sur le son au dessous sinon vous passer directement au test avec l'STM32
un son est une vibration de l'air. On peut en faire une représentation graphique avec en abscisse le temps et en ordonnée l'amplitude de la vibration : une onde plus grande aura un volume plus élevé, une courbe "tassée" en largeur représente un son aigu. Car c'est la fréquence de la vibration qui déterminera la hauteur de la tonalité. L'unité de mesure des fréquences est le hertz : 1 hertz correspond à une oscillation par seconde. Comme on le verra, nombre de paramètres concernant le son se mesurent en hertz, mais ne s'appliquent pas aux mêmes choses. Le la du diapason (ou de la tonalité du téléphone) a une fréquence de 440 Hz (la fréquence des notes de musique suit une augmentation logarithmique, le doublement d'une fréquence passe la note à l'octave supérieure). Bien que l'acuité auditive varie d'une personne à l'autre, il est généralement admis que l'oreille humaine est capable de percevoir des fréquences comprises entre 20 Hz et 20.000 Hz, avec une perte dans les aigus à mesure que l'on vieillit.
Une vidéo d'un haut parleur diffuse une fréquence de 120 Hz dont les vibrations font danser ce liquide non-newtonien
Alors on peut conclure que le son en faite électroniquement est une combinaison entre un fréquence et son delay d'ou on va se baser a créer notre programme suivant.
J'ai basée sur Mikro c for ARM comme toujours, pour le brochage y a rien de spécial vous pouvez même comprendre ce qu'il faut faire par les commentaires équipées sur le programme,
Alors si vous avez un buzeur ou un petit speaker apporter le et relier sa borne positive au PIN PE14 d'STM 32 et sa masse au masse d'STM32 et compiler ce programme au dessous et vous voyez la résultat.
Programme
// Let's Electronic by Aymen Lachkhem
// How to play Audio Sound with STM32 F4
//www.letselectronic.blogspot.com
void Tone1() {
Sound_Play(659, 250); // Frequency = 659Hz, duration = 250ms
}
void Tone2() {
Sound_Play(698, 250); // Frequency = 698Hz, duration = 250ms
}
void Tone3() {
Sound_Play(784, 250); // Frequency = 784Hz, duration = 250ms
}
void Melody() { // Plays the melody from tones 1,2 and 3
Tone1();
Tone2();
Tone3();
Tone3();
Tone1();
Tone2();
Tone3();
Tone3();
Tone1();
Tone2();
Tone3();
Tone1();
Tone2();
Tone3();
Tone3();
Tone1();
Tone2();
Tone3();
Tone3();
Tone3();
Tone2();
Tone2();
Tone1();
}
void main() {
Sound_Init(&GPIOE_ODR, 14); // the sound output PE14
Sound_Play(880, 1000); // Play sound at 880Hz for 1 second
Melody(); //play the Melody that's we maked using Tones;
while (1) { } // Do Nothing
}
Voici une démonstration vidéo de fonctionnement :
Have Fun :)