Ondes sonores

Produire & Exploiter

 

(Cliquez pour afficher la version PDF)

 

Après avoir bien travaillé, maintenant que nous maîtrisons le principe des entrées et sorties de l’Arduino, nous allons nous détendre en écoutant un peu de musique…

En effet, il est possible d’émettre un son, caractérisé par sa fréquence en Hz, avec un Arduino.

Comme une corde de guitare qui vibre et qui transmet sa vibration à l’air, pour produire un son avec un Arduino, il faut utiliser un matériel qui peut vibrer sur commande !

Pour cela on utilise un petit haut-parleur ou un buzzer (transducteur) piézo-électrique (communément appelé « piezo ») connecté sur une des sorties de l’Arduino.

Il existe différents types de buzzer, les actifs qui nécessitent une alimentation et les passifs sans alimentation.

 

Gestion du son en langage Arduino

. La fonction tone() :

Le signal électrique appliqué par l’Arduino sur une de ses sorties digitales ou analogiques, sur laquelle est connecté le piezo ou le haut-parleur et qui va créer l’onde sonore, est réalisé avec la fonction tone().

Cette fonction génère une onde carrée (onde symétrique avec « duty cycle » (niveau haut/période) à 50%) à la fréquence spécifiée en Hertz (Hz) sur une broche. La durée peut être précisée, sinon l’impulsion continue jusqu’à l’appel de l’instruction noTone().

Une seule note peut être produite à la fois. Si une note est déjà jouée sur une autre broche, l’appel de la fonction tone() n’aura aucun effet (tant qu’une instruction noTone() n’aura pas eu lieu).

Si la note est jouée sur la même broche, l’appel de la fonction tone() modifiera la fréquence jouée sur cette broche.

Enfin, l’utilisation de tone() rend impossible l’utilisation des broches D3 et D11 en PWM avec analogWrite().

. Syntaxe :

tone(broche, fréquence)
tone(broche, fréquence, durée)

. Paramètres :

Broche : la broche sur laquelle la note est générée
Fréquence : la fréquence de la note produite, en hertz (Hz)
Durée : la durée de la note en millisecondes (optionnel)

 

. La fonction noTone() :

La fonction noTone() stoppe la génération d’impulsion produite par l’instruction tone(). Elle n’a aucun effet si aucune impulsion n’a été générée.

. Syntaxe :

noTone(broche)

. Paramètres :

broche: la broche sur laquelle il faut stopper la note.

 

Pour réaliser les activités suivantes, nous allons donc ajouter un petit haut-parleur ou un buzzer connecté sur la broche 8 de l’Arduino à notre circuit d’apprentissage :

. Liste des composants :

. 1 DEL rouge
. 1 résistance de 220 Ω (résistance de protection de la DEL)
. 1 bouton poussoir
. 1 résistance de 10 kΩ (résistance du circuit du bouton poussoir)
. 1 potentiomètre de 10 kΩ
. 1 buzzer
. 1 plaque d’essai
. Fils de connexion

 

. Les activités