Mémos

M é m o - l a b .

Arduino – Fonctionnement d’un Buzzer

Le buzzer permet d’émettre des sons. Dans notre cas, le son sera déclenché par un bouton. Un fichier annexe situé dans le même dossier que le fichier contenant le code Arduino nous permettra de définir les fréquences des notes sur plusieurs octaves. La notation utilisée est la notation américaine.

Notation américaine des notes de musique

  • DO -> C
  • RE -> D
  • MI -> E
  • FA -> F
  • SOL -> G
  • LA -> A
  • SI -> B

Dans le fichier octaves.h :
Le d minuscule représente l’altération « Dièse » correspondant à l’augmentation de la note d’un demi-ton.
Le chiffre représente l’octave.

Dans le code, la fonction tone utilisée prend 3 arguments.

  • Le premier correspond à la broche utilisée (GPIO de la broche D3 c’està dire 0)
  • Le deuxième correspond à la fréquence de la note qui sera jouée
  • Le troisième correspond à la durée de la note

Le délai, quant à lui définit l’intervalle de temps entre 2 notes.

Pour l’utilisation du bouton et du mode INPUT_PULLUP, se rendre sur le mémo Le bouton poussoir.

Schéma de montage

Code






#include "octaves.h"

unsigned int btnPin = 4; //Pin digital D2 sur esp8266
unsigned int buzzerPin = 0; //Pin Digital D3 sur esp8266;

void setup() {
  pinMode(btnPin, INPUT_PULLUP);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  bool btn = digitalRead(btnPin);

  if (btn == LOW) {
    tone(buzzerPin, C5, 700);
    delay(700);
    tone(buzzerPin, D5, 700);
    delay(700);
    tone(buzzerPin, E5, 700);
    delay(700);
    tone(buzzerPin, F5, 700);
    delay(700);
    tone(buzzerPin, G5, 200);
    delay(700);
    tone(buzzerPin, A5, 200);
    delay(700);
    tone(buzzerPin, B5, 200);
    delay(700);
    tone(buzzerPin, C6, 200);
    delay(700);
  } else {
    noTone(buzzerPin);
  }
}

Fichier octaves.h




#define C1 33
#define Cd1 35
#define D1 37
#define Dd1 39
#define E1 41
#define F1 44
#define Fd1 46
#define G1 49
#define Gd1 52
#define A1 55
#define Ad1 58
#define B1 62
#define C2 65
#define Cd2 69
#define D2 73
#define Dd2 78
#define E2 82
#define F2 87
#define Fd2 93
#define G2 98
#define Gd2 104
#define A2 110
#define Ad2 117
#define B2 123
#define C3 131
#define Cd3 139
#define D3 147
#define Dd3 156
#define E3 165
#define F3 175
#define Fd3 185
#define G3 196
#define Gd3 208
#define A3 220
#define Ad3 233
#define B3 247
#define C4 262
#define Cd4 277
#define D4 294
#define Dd4 311
#define E4 330
#define F4 349
#define Fd4 370
#define G4 392
#define Gd4 415
#define A4 440
#define Ad4 466
#define B4 494
#define C5 523
#define Cd5 554
#define D5 587
#define Dd5 622
#define E5 659
#define F5 698
#define Fd5 740
#define G5 784
#define Gd5 831
#define A5 880
#define Ad5 932
#define B5 988
#define C6 1047
#define Cd6 1109
#define D6 1175
#define Dd6 1245
#define E6 1319
#define F6 1397
#define Fd6 1480
#define G6 1568
#define Gd6 1661
#define A6 1760
#define Ad6 1865
#define B6 1976
#define C7 2093
#define Cd7 2217
#define D7 2349
#define Dd7 2489
#define E7 2637
#define F7 2794
#define Fd7 2960
#define G7 3136
#define Gd7 3322
#define A7 3520
#define Ad7 3729
#define B7 3951