Salut à tous.

J'ai en ma possession un buzzer actif GT1143, acheté chez Gotronic.
Le montage est fort simple et ne nécessite aucune résistance.
Sur ESP32, j'ai branché le "S" (pour signal) sur la "D18" (GPIO 18), le "GND" sur le GND et le "+" sur le 3V3.

Dans un premier temps, j'ai cherché à obtenir des notes audibles, ce qui n'était pas gagné d'avance.
Puis en cherchant sur le net, j'ai trouvé une première mélodie dans un exemple.
Après, j'ai récupéré pour débutant sur un piano où l'on voit défiler les notes, le thème bien connu d'un film de science fiction.

Voici le sketch que j'ai testé :
Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*******************************************/
/*                                         */
/*     Jouer une Mélodie sur le Buzzer     */
/*                                         */
/*******************************************/
 
#include "L:\Arduino\MyLibraries\Music.h"
 
const unsigned short _Pin = 18;			/* Broche Signal du Buzzer */
 
/*************************************/
/*                                   */
/*     Déclaration des Fonctions     */
/*                                   */
/*************************************/
 
void play(const byte son[], const byte tempo)
{
	ledcSetup(0, round(_Note[son[0]] * _Octave[son[1]]), 12);
 
	if (son[0] == 12)
			ledcWrite(0,   0);			/* Silence */
	else	ledcWrite(0, 384);
	delay(tempo * son[2]);
 
	ledcWrite(0, 0);
	delay(50);
}
 
/*********************/
/*                   */
/*     Démarrage     */
/*                   */
/*********************/
 
void setup()
{
	ledcAttachPin(_Pin, 0);
}
 
/****************************/
/*                          */
/*     Boucle Itérative     */
/*                          */
/****************************/
 
void loop()
{
	for (int _i = 0; _i < _Nbre1 ; _i++)
		play(_Melody1[_i], 120);
 
	delay(2000);
 
	for (int _i = 0; _i < _Nbre2 ; _i++)
		play(_Melody2[_i], 100);
 
	delay(2000);
}
Et voici les notes de musiques, ainsi que les deux mélodies :
Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/***********************************************************************/
/*                                                                     */
/*     Fréquences Octave 3 en hertz des Notes de la Gamme Tempérée     */
/*                                                                     */
/***********************************************************************/
 
const float _Octave[] = {0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0};
 
const float _Do   = 261.625000;
const float _Do2  = 277.187500;
const float _Re   = 293.671875;
const float _Re2  = 311.125000;
const float _Mi   = 329.625000;
const float _Fa   = 349.234375;
const float _Fa2  = 370.000000;
const float _Sol  = 392.000000;
const float _Sol2 = 415.312500;
const float _La   = 440.000000;
const float _La2  = 466.156250;
const float _Si   = 493.890625;
const float _Pa   =   0.000000;
 
const float _Note[13] = {_Do,_Do2,_Re,_Re2,_Mi,_Fa,_Fa2,_Sol,_Sol2,_La,_La2,_Si,_Pa};
//                       0   1    2   3    4   5   6    7    8     9   10   11  12
/*******************************/
/*                             */
/*          Mélodies           */
/*                             */
/*-----------------------------*/
/*                             */
/*     Note, Octave, Durée     */
/*                             */
/*******************************/
 
const byte _Nbre1		 = 32;
 
const byte _Melody1[][3] = {	{ 4, 3, 2},{ 5, 3, 1},{ 7, 3, 3},{ 0, 4, 6},
						{ 2, 3, 2},{ 4, 3, 1},{ 5, 3, 8},{ 7, 3, 2},
						{ 9, 3, 1},{11, 3, 3},{ 5, 4, 6},{ 9, 3, 2},
						{11, 3, 1},{ 0, 4, 3},{ 2, 4, 3},{ 4, 4, 3},
						{ 4, 3, 2},{ 5, 3, 1},{ 7, 3, 3},{ 0, 4, 6},
						{ 2, 4, 2},{ 4, 4, 1},{ 5, 4, 8},{ 7, 3, 2},
						{ 7, 3, 1},{ 4, 4, 3},{ 2, 4, 2},{ 7, 3, 1},
						{ 5, 4, 3},{ 4, 4, 2},{ 2, 4, 1},{ 0, 4, 8}};
 
const byte _Nbre2		 = 69;
 
const byte _Melody2[][3] = {	{ 9, 3, 6},{ 9, 3, 6},{ 9, 3, 6},{ 5, 3, 4},{ 0, 4, 2},{ 9, 3, 6},{ 5, 3, 4},{ 0, 4, 2},
						{ 9, 3, 6},{12, 9, 7},{ 4, 4, 6},{ 4, 4, 6},{ 4, 4, 6},{ 5, 4, 4},{ 0, 4, 2},{ 8, 3, 6},
						{ 5, 3, 4},{ 0, 4, 2},{ 9, 3,10},{12, 9, 2},{ 9, 4, 6},{ 9, 3, 4},{ 9, 3, 2},{ 9, 4, 6},
						{ 8, 4, 4},{ 7, 4, 2},{ 6, 4, 1},{ 5, 4, 2},{ 6, 4, 6},{10, 3, 3},{ 3, 4, 6},{ 2, 4, 4},
						{ 1, 4, 1},{ 0, 4, 2},{11, 3, 2},{ 0, 4, 6},{ 5, 3, 2},{ 8, 3, 6},{ 5, 3, 4},{ 8, 3, 1},
						{ 0, 4, 6},{ 9, 3, 4},{ 0, 4, 2},{ 4, 4,10},{12, 9, 2},{ 9, 4, 6},{ 9, 3, 4},{ 9, 3, 2},
						{ 9, 4, 6},{ 8, 4, 4},{ 7, 4, 2},{ 6, 4, 1},{ 5, 4, 2},{ 6, 4, 6},{10, 3, 3},{ 3, 4, 6},
						{ 2, 4, 4},{ 1, 4, 1},{ 0, 4, 2},{11, 3, 2},{ 0, 4, 6},{ 5, 3, 2},{ 8, 3, 6},{ 5, 3, 4},
						{ 0, 4, 2},{ 9, 3, 6},{ 5, 3, 4},{ 0, 4, 2},{ 9, 3,16}};
Le principe est fort simple. Dans la mélodie, la première valeur du triplé est la note. Il y en a douze !
La deuxième valeur est l'octave. Il y en a dix. Sur mon buzzer, je n'entend pas les trois dernières.
Et la troisième du triplé est la durée.
Il y a une treizième notes correspondante à une pause (ou silence).

A vous de tester mon sketch et de me donner le titre de ces deux mélodies.
Dites moi, si le son est correcte avec votre matériel.

Cordialement.
Artemus24.
@+