Il est possible d’émettre des sons à l’aide d’un microcontrôleur en branchant un buzzer sur une de ses sorties. Lorsqu’on veut créer une interface utilisateur, il est agréable d’avoir un retour selon les actions effectuées que ce soit un affichage, une lumière qui s’allume, ou change de couleur, ou encore un son. Nous allons voir dans ce tutoriel comment utilisé un buzzer (ou haut-parleur piezoélectrique).

Matériel

  • Ordinateur
  • ArduinoUNO
  • Câble USB A Mâle/B Mâle
  • Buzzer

Principe de fonctionnement

Un buzzer est une sorte de haut-parleur mais de faible puissance qui va émettre un son en fonction de la fréquence et amplitude de vibration. Il permet de jouer des notes et de recréer des mélodies simples. Si vous souhaitez jouer des sons comme de la musique ou des voix, il vous faudra utiliser un haut-parleur avec un amplificateur audio qui viendra jouer un fichier audio stocké sur une carte SD..

Schéma

Un buzzer étant de faible puissance, il peut être branché directement sur le microcontrôleur sur n’importe laquelle de ses broches de sorties. Dans ce tutoriel, nous branchons la borne – du buzzer au GND et la borne + à la sortie digitale 2.

Code

Pour chaque note correspond un fréquence qui est enregistrée dans le fichier pitches.h. Pour jouer une mélodie, nous allons placer les notes dans un tableau et spécifier un retard entre chaque notes. Nous utilisons ensuite la fonction tone pour appliquer cette fréquence et cette durée à la sortie du buzzer.
Pour créer le fichier pitches, faites un clique droit sur la flèche à droite du nom du sketch, puis cliquer sur « créer un nouvel onglet. Copier-coller ensuite le code avec la définition des notes.

//Libraries
#include "pitches.h" //https://www.arduino.cc/en/Tutorial/toneMelody

//Parameters
const int buzPin  = 0;

void setup(){
//Init Serial USB
Serial.begin(9600);
Serial.println(F("Initialize System"));
}

void loop(){
 playPassed();
 delay(1000);
 playFailed();
 delay(2000);
}

void playPassed(){/* function playPassed */ 
////Play 'ON' Sound
int melodyOn[] = {NOTE_C5, NOTE_C6,NOTE_D5, NOTE_A6};
		int durationOn=200;
		for (int thisNote = 0; thisNote < 4; thisNote++) {
    tone(buzPin, melodyOn[thisNote], durationOn);
    delay(200);
  }
}

void playFailed(){/* function playFailed */ 
////Play 'OFF' Sound
int melodyOff[] = {NOTE_C3, NOTE_D3};
		int durationOff=200;
		for (int thisNote = 0; thisNote < 2; thisNote++) {
    tone(buzPin, melodyOff[thisNote], durationOff);
    delay(200);
  }
}


Résultat

Modifier les notes, la taille des tableaux et les délais pour recréer les mélodies que vous voulez.

Applications

  • Créer un clavier intéractif avec retour sonore
  • Créer un robot qui émet des sons comme R2-D2

Sources

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie