#15Intermedio

Himno nacional turco con zumbador

4.9(95)
153 completado
Himno nacional turco con zumbador
Proyecto que reproduce nota a nota con Buzzer las dos primeras estrofas del Himno Nacional de la República de Turquía. Enseña la relación frecuencia-nota y la programación de melodías.

Video

Diagrama del circuito

Himno nacional turco con zumbador - Circuit

Código fuente

Arduino (C++)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Himno nacional turco con zumbador
4// ─────────────────────────────────────────
5// Pulsa el botón y el zumbador toca nota a nota las dos primeras estrofas
6// del Himno Nacional de Turquía. Un potenciómetro en serie con el zumbador
7// ajusta el volumen. Letra: Mehmet Akif Ersoy, música: Osman Zeki Ungor.
8//
9// Pines:
10//   D7 -> Botón de reproducción, otra patilla a 5V
11//   D7 -> Resistencia de 10k a GND (pull-down)
12//   D8 -> Potenciómetro (volumen) al + del zumbador
13//   Zumbador - a GND
14
15int buttonPin = 7;   // Botón de reproducción
16int buzzer = 8;      // Pin de salida del zumbador
17
18// Frecuencias de las notas (Hz). Una "d" final significa sostenido (ad = A#), 2 y 3 son octavas más
19// agudas
20int a = 440, ad = 466, b = 494, c = 523, cd = 554, d = 587, dd = 622, e = 659, f = 698;
21int fd = 740, g = 784, gd = 830, a2 = 880, ad2 = 932, b2 = 988, c2 = 1046, cd2 = 1108;
22int d2 = 1174, dd2 = 1244, e2 = 1318, f2 = 1396, fd2 = 1480, g2 = 1568, gd2 = 1660;
23int a3 = 1760;
24
25void setup() {
26  pinMode(buttonPin, INPUT);   // Entrada del botón (pull-down)
27  pinMode(buzzer, OUTPUT);
28}
29
30void loop() {
31  if (digitalRead(buttonPin)) {   // ¿Botón pulsado?
32    playSong();                   // Reproducir el himno de principio a fin
33  }
34}
35
36// Cada tone() inicia una nota y el delay() posterior es la duración de la nota (ms). noTone() añade
37// un breve silencio.
38void playSong() {
39  // Estrofa 1
40  // Letra de la canción
41  tone(buzzer, c);
42  delay(800);
43  tone(buzzer, f);
44  delay(800);
45  tone(buzzer, g);
46  delay(800);
47  tone(buzzer, gd);
48  delay(800);
49  tone(buzzer, e);
50  delay(400);
51  tone(buzzer, g);
52  delay(200);
53  tone(buzzer, f);
54  delay(1600);
55  noTone(buzzer);
56  delay(300);
57
58  // Letra de la canción
59  tone(buzzer, f);
60  delay(800);
61  tone(buzzer, ad2);
62  delay(800);
63  tone(buzzer, c2);
64  delay(800);
65  tone(buzzer, cd2);
66  delay(800);
67  tone(buzzer, a2);
68  delay(400);
69  tone(buzzer, c2);
70  delay(200);
71  tone(buzzer, ad2);
72  delay(1600);
73
74  // Letra de la canción
75  tone(buzzer, c2);
76  delay(200);
77  tone(buzzer, ad2);
78  delay(200);
79  tone(buzzer, c2);
80  delay(200);
81  tone(buzzer, g);
82  delay(400);
83  noTone(buzzer);
84  delay(100);
85  tone(buzzer, g);
86  delay(400);
87  tone(buzzer, ad);
88  delay(200);
89  tone(buzzer, gd);
90  delay(400);
91  tone(buzzer, e);
92  delay(200);
93  tone(buzzer, f);
94  delay(400);
95  tone(buzzer, g);
96  delay(200);
97  tone(buzzer, gd);
98  delay(400);
99  tone(buzzer, ad);
100  delay(200);
101  tone(buzzer, c2);
102  delay(400);
103  tone(buzzer, cd2);
104  delay(200);
105  tone(buzzer, dd2);
106  delay(400);
107  tone(buzzer, f2);
108  delay(200);
109  tone(buzzer, dd2);
110  delay(400);
111
112  // Letra de la canción
113  tone(buzzer, dd);
114  delay(200);
115  tone(buzzer, d);
116  delay(200);
117  tone(buzzer, dd);
118  delay(200);
119  tone(buzzer, c2);
120  delay(800);
121  tone(buzzer, ad);
122  delay(800);
123  tone(buzzer, gd);
124  delay(1600);
125
126  // Letra de la canción
127  tone(buzzer, c);
128  delay(200);
129  tone(buzzer, b);
130  delay(200);
131  tone(buzzer, c);
132  delay(200);
133  tone(buzzer, g);
134  delay(800);
135  tone(buzzer, c);
136  delay(800);
137  tone(buzzer, c2);
138  delay(800);
139  tone(buzzer, ad);
140  delay(200);
141  tone(buzzer, gd);
142  delay(200);
143  tone(buzzer, g);
144  delay(400);
145  tone(buzzer, gd);
146  delay(200);
147  tone(buzzer, f);
148  delay(800);
149
150  // "Dir, Lyrics
151  tone(buzzer, f2);
152  delay(800);
153  tone(buzzer, dd2);
154  delay(200);
155  tone(buzzer, cd2);
156  delay(400);
157  tone(buzzer, c2);
158  delay(200);
159  tone(buzzer, ad);
160  delay(400);
161  tone(buzzer, gd);
162  delay(200);
163  tone(buzzer, g);
164  delay(400);
165  tone(buzzer, f);
166  delay(200);
167  tone(buzzer, c2);
168  delay(400);
169  tone(buzzer, c);
170  delay(800);
171  tone(buzzer, f);
172  delay(1600);
173
174  // Estrofa 2
175  // Letra de la canción
176  tone(buzzer, c);
177  delay(800);
178  tone(buzzer, f);
179  delay(800);
180  tone(buzzer, g);
181  delay(800);
182  tone(buzzer, gd);
183  delay(800);
184  tone(buzzer, e);
185  delay(400);
186  tone(buzzer, g);
187  delay(200);
188  tone(buzzer, f);
189  delay(1600);
190  noTone(buzzer);
191  delay(300);
192
193  // Letra de la canción
194  tone(buzzer, f);
195  delay(800);
196  tone(buzzer, ad2);
197  delay(800);
198  tone(buzzer, c2);
199  delay(800);
200  tone(buzzer, cd2);
201  delay(400);
202  tone(buzzer, ad2);
203  delay(400);
204  tone(buzzer, a2);
205  delay(400);
206  tone(buzzer, c2);
207  delay(400);
208  tone(buzzer, ad2);
209  delay(800);
210
211  // Letra de la canción
212  tone(buzzer, c2);
213  delay(200);
214  tone(buzzer, ad2);
215  delay(200);
216  tone(buzzer, c2);
217  delay(200);
218  tone(buzzer, g);
219  delay(400);
220  noTone(buzzer);
221  delay(100);
222  tone(buzzer, g);
223  delay(400);
224  tone(buzzer, ad);
225  delay(200);
226  tone(buzzer, gd);
227  delay(400);
228  tone(buzzer, e);
229  delay(200);
230  tone(buzzer, f);
231  delay(400);
232  tone(buzzer, g);
233  delay(200);
234  tone(buzzer, gd);
235  delay(400);
236  tone(buzzer, ad);
237  delay(200);
238  tone(buzzer, c2);
239  delay(400);
240  tone(buzzer, cd2);
241  delay(200);
242  tone(buzzer, dd2);
243  delay(400);
244  tone(buzzer, f2);
245  delay(200);
246  tone(buzzer, dd2);
247  delay(400);
248
249  // Letra de la canción
250  tone(buzzer, dd);
251  delay(200);
252  tone(buzzer, d);
253  delay(200);
254  tone(buzzer, dd);
255  delay(200);
256  tone(buzzer, c2);
257  delay(800);
258  tone(buzzer, ad);
259  delay(800);
260  tone(buzzer, gd);
261  delay(1600);
262
263  // Letra de la canción
264  tone(buzzer, c);
265  delay(200);
266  tone(buzzer, b);
267  delay(200);
268  tone(buzzer, c);
269  delay(200);
270  tone(buzzer, g);
271  delay(800);
272  tone(buzzer, c);
273  delay(800);
274  tone(buzzer, c2);
275  delay(800);
276  tone(buzzer, ad);
277  delay(200);
278  tone(buzzer, gd);
279  delay(200);
280  tone(buzzer, g);
281  delay(400);
282  tone(buzzer, gd);
283  delay(200);
284  tone(buzzer, f);
285  delay(800);
286
287  // Letra de la canción
288  tone(buzzer, f2);
289  delay(800);
290  tone(buzzer, dd2);
291  delay(200);
292  tone(buzzer, cd2);
293  delay(400);
294  tone(buzzer, c2);
295  delay(200);
296  tone(buzzer, ad);
297  delay(400);
298  tone(buzzer, gd);
299  delay(200);
300  tone(buzzer, g);
301  delay(400);
302  tone(buzzer, f);
303  delay(200);
304  tone(buzzer, c2);
305  delay(400);
306  tone(buzzer, c);
307  delay(800);
308  tone(buzzer, f);
309  delay(1600);
310  noTone(buzzer);
311}
312

Preguntas frecuentes

¿Cómo se convierten las notas en frecuencias?▾

Cada nota corresponde a una frecuencia determinada; por ejemplo, en la cuarta octava, el Do es de aproximadamente 262 Hz y el La, de 440 Hz. En el código, las notas se almacenan en una secuencia según su frecuencia, mientras que las duraciones se guardan en otra secuencia, y se reproducen una tras otra mediante la función tone().

¿Cómo puedo cambiar la velocidad de la melodía?▾

Las duraciones de las notas se multiplican por un coeficiente de tempo. Si reduces el coeficiente, la melodía se acelera; si lo aumentas, se ralentiza. En el proyecto, el potenciómetro se puede utilizar para este tipo de ajustes.

Las notas se pegan entre sí, ¿cómo las separo?▾

Después de cada nota, deja un breve silencio equivalente aproximadamente al 10-30 % de su duración (noTone y delay). Esto permite que las notas se escuchen por separado.

¿Puedo añadir mi propia canción?▾

Sí. Basta con que busques las notas de la canción en la tabla de notas y frecuencias y las anotes en una secuencia, y que anotes sus duraciones en una segunda secuencia. En Internet se pueden encontrar secuencias de notas ya preparadas para Arduino de muchas canciones.

Himno nacional turco con zumbador | BlueGrays