ACTIVITÉ EXPÉRIMENTALE


3
Créer un son avec un microcontrôleur et l’analyser





Doc. 4
Quelques notes et leur fréquence associée

Note Do3 Ré3 Mi3 Fa3 Sol3 La3 Si3
f(Hz)f(\mathrm{Hz}) 262 294 330 349 392 440 494


Un microcontrôleur permet de générer des signaux électriques que l’on peut transformer en signaux sonores grâce à un haut-parleur.

➜ Comment générer des sons avec un microcontrôleur et quelques lignes de code ?



Doc. 5
Le code minimal

génération d'un son carré

Doc. 2
Schéma du montage

Schéma du montage fritzing

Questions

Voir les réponses
1. Générer le son après avoir « téléversé » le code vers le microcontrôleur (attention à bien vérifier le port d’envoi dans le menu Outils > Port de l’éditeur Arduino).

2. Observer l’allure du signal généré, grâce à l’application Phyphox Audio Scope ou Audacity. La décrire après enregistrement sur l’écran.


3. Le signal sonore enregistrée est-il de forme carrée comme devrait l’avoir généré la fonction tone() ? Mesurer sa période, calculer sa fréquence et comparer avec la fréquence théorique. Expliquer les éventuelles différences.


4. Coder et faire jouer le début de l’Ode à la joie (hymne européen) : mi-mi-fa-sol-sol-fa-mi-ré.

Doc. 1
Matériel nécessaire

  • Un ordinateur avec port USB et l’éditeur Arduino Genuino ;
  • Un smartphone avec l’application PhyPhox, ou bien l’application Audacity sur un ordinateur ;
  • Un microcontrôleur monté sur carte de type Arduino ;
  • Un haut-parleur miniature ;
  • Un dipôle ohmique de 220 Ω\Omega ;
  • Des fils de connexion ;
  • Une tablette de prototypage.

Compétence

MATH : Utiliser des outils numériques et un langage de programmation


Par intuition

Les sons générés par un microcontrôleur ressemblent-ils à ceux joués par un instrument ?

Doc. 3
La fonction tone() sur Arduino

La fonction tone() permet de générer un signal carré, périodique, avec comme paramètres le numéro de borne utilisé sur la carte, la fréquence (entre 31 Hz et 65 535 Hz pour les cartes Arduino) et la durée (en ms) : Tone(numeroBorne, frequence, duree);

Remarque :
tone() est non bloquante : elle n’arrête pas le programme pendant l’exécution de la fonction. Entre deux sons successifs différents, utiliser delay() avec en paramètre la durée (en ms) avant l’émission d’un nouveau son.
Connectez-vous pour ajouter des favoris

Pour pouvoir ajouter ou retrouver des favoris, nous devons les lier à votre compte.Et c’est gratuit !

Se connecter

Livre du professeur

Pour pouvoir consulter le livre du professeur, vous devez être connecté avec un compte professeur et avoir validé votre adresse email académique.

Votre avis nous intéresse !
Recommanderiez-vous notre site web à un(e) collègue ?

Peu probable
Très probable

Cliquez sur le score que vous voulez donner.

Dites-nous qui vous êtes !

Pour assurer la meilleure qualité de service, nous avons besoin de vous connaître !
Cliquez sur l'un des choix ci-dessus qui vous correspond le mieux.

Nous envoyer un message




Nous contacter?