#15Intermédiaire

Hymne national turc avec un buzzer

4.9(95)
153 terminé
Hymne national turc avec un buzzer
Le projet qui joue les deux premières strophes de l'hymne national de la République de Turquie note par note avec Buzzer. Il enseigne la relation fréquence-note et la programmation mélodique.

Vidéo

Schéma du circuit

Hymne national turc avec un buzzer - Circuit

Code source

Arduino (C++)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Hymne national turc avec un buzzer
4// ─────────────────────────────────────────
5// Appuie sur le bouton et le buzzer joue les deux premiers couplets de
6// l'hymne national turc note par note. Un potentiomètre en série avec le
7// buzzer règle le volume. Paroles : Mehmet Akif Ersoy, musique : Osman
8// Zeki Ungor.
9//
10// Broches :
11//   D7 -> Bouton de lecture, autre patte sur 5V
12//   D7 -> Résistance de 10k vers GND (pull-down)
13//   D8 -> Potentiomètre (volume) vers Buzzer +
14//   Buzzer - sur GND
15
16int buttonPin = 7;   // Bouton de lecture
17int buzzer = 8;      // Broche de sortie du buzzer
18
19// Fréquences des notes (Hz). Un "d" final signifie dièse (ad = A#), 2 et 3 sont des octaves plus
20// hautes
21int a = 440, ad = 466, b = 494, c = 523, cd = 554, d = 587, dd = 622, e = 659, f = 698;
22int fd = 740, g = 784, gd = 830, a2 = 880, ad2 = 932, b2 = 988, c2 = 1046, cd2 = 1108;
23int d2 = 1174, dd2 = 1244, e2 = 1318, f2 = 1396, fd2 = 1480, g2 = 1568, gd2 = 1660;
24int a3 = 1760;
25
26void setup() {
27  pinMode(buttonPin, INPUT);   // Entrée du bouton (pull-down)
28  pinMode(buzzer, OUTPUT);
29}
30
31void loop() {
32  if (digitalRead(buttonPin)) {   // Bouton appuyé ?
33    playSong();                   // Jouer l'hymne du début à la fin
34  }
35}
36
37// Chaque tone() lance une note et le delay() qui suit est la durée de la note (ms). noTone() ajoute
38// un petit silence.
39void playSong() {
40  // Couplet 1
41  // Paroles
42  tone(buzzer, c);
43  delay(800);
44  tone(buzzer, f);
45  delay(800);
46  tone(buzzer, g);
47  delay(800);
48  tone(buzzer, gd);
49  delay(800);
50  tone(buzzer, e);
51  delay(400);
52  tone(buzzer, g);
53  delay(200);
54  tone(buzzer, f);
55  delay(1600);
56  noTone(buzzer);
57  delay(300);
58
59  // Paroles
60  tone(buzzer, f);
61  delay(800);
62  tone(buzzer, ad2);
63  delay(800);
64  tone(buzzer, c2);
65  delay(800);
66  tone(buzzer, cd2);
67  delay(800);
68  tone(buzzer, a2);
69  delay(400);
70  tone(buzzer, c2);
71  delay(200);
72  tone(buzzer, ad2);
73  delay(1600);
74
75  // Paroles
76  tone(buzzer, c2);
77  delay(200);
78  tone(buzzer, ad2);
79  delay(200);
80  tone(buzzer, c2);
81  delay(200);
82  tone(buzzer, g);
83  delay(400);
84  noTone(buzzer);
85  delay(100);
86  tone(buzzer, g);
87  delay(400);
88  tone(buzzer, ad);
89  delay(200);
90  tone(buzzer, gd);
91  delay(400);
92  tone(buzzer, e);
93  delay(200);
94  tone(buzzer, f);
95  delay(400);
96  tone(buzzer, g);
97  delay(200);
98  tone(buzzer, gd);
99  delay(400);
100  tone(buzzer, ad);
101  delay(200);
102  tone(buzzer, c2);
103  delay(400);
104  tone(buzzer, cd2);
105  delay(200);
106  tone(buzzer, dd2);
107  delay(400);
108  tone(buzzer, f2);
109  delay(200);
110  tone(buzzer, dd2);
111  delay(400);
112
113  // Paroles
114  tone(buzzer, dd);
115  delay(200);
116  tone(buzzer, d);
117  delay(200);
118  tone(buzzer, dd);
119  delay(200);
120  tone(buzzer, c2);
121  delay(800);
122  tone(buzzer, ad);
123  delay(800);
124  tone(buzzer, gd);
125  delay(1600);
126
127  // Paroles
128  tone(buzzer, c);
129  delay(200);
130  tone(buzzer, b);
131  delay(200);
132  tone(buzzer, c);
133  delay(200);
134  tone(buzzer, g);
135  delay(800);
136  tone(buzzer, c);
137  delay(800);
138  tone(buzzer, c2);
139  delay(800);
140  tone(buzzer, ad);
141  delay(200);
142  tone(buzzer, gd);
143  delay(200);
144  tone(buzzer, g);
145  delay(400);
146  tone(buzzer, gd);
147  delay(200);
148  tone(buzzer, f);
149  delay(800);
150
151  // "Dir, Lyrics
152  tone(buzzer, f2);
153  delay(800);
154  tone(buzzer, dd2);
155  delay(200);
156  tone(buzzer, cd2);
157  delay(400);
158  tone(buzzer, c2);
159  delay(200);
160  tone(buzzer, ad);
161  delay(400);
162  tone(buzzer, gd);
163  delay(200);
164  tone(buzzer, g);
165  delay(400);
166  tone(buzzer, f);
167  delay(200);
168  tone(buzzer, c2);
169  delay(400);
170  tone(buzzer, c);
171  delay(800);
172  tone(buzzer, f);
173  delay(1600);
174
175  // Couplet 2
176  // Paroles
177  tone(buzzer, c);
178  delay(800);
179  tone(buzzer, f);
180  delay(800);
181  tone(buzzer, g);
182  delay(800);
183  tone(buzzer, gd);
184  delay(800);
185  tone(buzzer, e);
186  delay(400);
187  tone(buzzer, g);
188  delay(200);
189  tone(buzzer, f);
190  delay(1600);
191  noTone(buzzer);
192  delay(300);
193
194  // Paroles
195  tone(buzzer, f);
196  delay(800);
197  tone(buzzer, ad2);
198  delay(800);
199  tone(buzzer, c2);
200  delay(800);
201  tone(buzzer, cd2);
202  delay(400);
203  tone(buzzer, ad2);
204  delay(400);
205  tone(buzzer, a2);
206  delay(400);
207  tone(buzzer, c2);
208  delay(400);
209  tone(buzzer, ad2);
210  delay(800);
211
212  // Paroles
213  tone(buzzer, c2);
214  delay(200);
215  tone(buzzer, ad2);
216  delay(200);
217  tone(buzzer, c2);
218  delay(200);
219  tone(buzzer, g);
220  delay(400);
221  noTone(buzzer);
222  delay(100);
223  tone(buzzer, g);
224  delay(400);
225  tone(buzzer, ad);
226  delay(200);
227  tone(buzzer, gd);
228  delay(400);
229  tone(buzzer, e);
230  delay(200);
231  tone(buzzer, f);
232  delay(400);
233  tone(buzzer, g);
234  delay(200);
235  tone(buzzer, gd);
236  delay(400);
237  tone(buzzer, ad);
238  delay(200);
239  tone(buzzer, c2);
240  delay(400);
241  tone(buzzer, cd2);
242  delay(200);
243  tone(buzzer, dd2);
244  delay(400);
245  tone(buzzer, f2);
246  delay(200);
247  tone(buzzer, dd2);
248  delay(400);
249
250  // Paroles
251  tone(buzzer, dd);
252  delay(200);
253  tone(buzzer, d);
254  delay(200);
255  tone(buzzer, dd);
256  delay(200);
257  tone(buzzer, c2);
258  delay(800);
259  tone(buzzer, ad);
260  delay(800);
261  tone(buzzer, gd);
262  delay(1600);
263
264  // Paroles
265  tone(buzzer, c);
266  delay(200);
267  tone(buzzer, b);
268  delay(200);
269  tone(buzzer, c);
270  delay(200);
271  tone(buzzer, g);
272  delay(800);
273  tone(buzzer, c);
274  delay(800);
275  tone(buzzer, c2);
276  delay(800);
277  tone(buzzer, ad);
278  delay(200);
279  tone(buzzer, gd);
280  delay(200);
281  tone(buzzer, g);
282  delay(400);
283  tone(buzzer, gd);
284  delay(200);
285  tone(buzzer, f);
286  delay(800);
287
288  // Paroles
289  tone(buzzer, f2);
290  delay(800);
291  tone(buzzer, dd2);
292  delay(200);
293  tone(buzzer, cd2);
294  delay(400);
295  tone(buzzer, c2);
296  delay(200);
297  tone(buzzer, ad);
298  delay(400);
299  tone(buzzer, gd);
300  delay(200);
301  tone(buzzer, g);
302  delay(400);
303  tone(buzzer, f);
304  delay(200);
305  tone(buzzer, c2);
306  delay(400);
307  tone(buzzer, c);
308  delay(800);
309  tone(buzzer, f);
310  delay(1600);
311  noTone(buzzer);
312}
313

FAQ

Comment les notes sont-elles converties en fréquences ?▾

Chaque note correspond à une fréquence spécifique ; par exemple, dans la 4e octave, le do est d'environ 262 Hz et le la de 440 Hz. Dans le code, les notes sont stockées dans une liste en fonction de leur fréquence, tandis que les durées sont stockées dans une liste distincte, et elles sont jouées les unes après les autres à l'aide de la fonction tone().

Comment modifier la vitesse d'une mélodie ?▾

Les durées des notes sont multipliées par un coefficient de tempo. Si vous réduisez ce coefficient, la mélodie s'accélère ; si vous l'augmentez, elle ralentit. Dans ce projet, le potentiomètre peut être utilisé pour ce type de réglages.

Les notes se collent les unes aux autres, comment puis-je les séparer ?▾

Après chaque note, laisse un court silence correspondant à environ 10 à 30 % de sa durée (noTone et delay). Cela permet de distinguer clairement les notes les unes des autres.

Puis-je ajouter ma propre chanson ?▾

Oui. Il te suffit de trouver les notes de la chanson dans le tableau des notes et des fréquences, puis de les noter dans un tableau, et d'enregistrer leurs durées dans un deuxième tableau. On trouve sur Internet de nombreux tableaux de notes prêts à l'emploi pour Arduino, correspondant à de nombreuses chansons.

Hymne national turc avec un buzzer | BlueGrays