#15Intermedio

Inno nazionale turco con cicalino

4.9(95)
153 completato
Inno nazionale turco con cicalino
Il progetto che riproduce le prime due strofe dell'Inno nazionale della Repubblica di Turchia nota per nota con il Buzzer. Insegna la relazione frequenza-nota e la programmazione della melodia.

Video

Schema circuito

Inno nazionale turco con cicalino - Circuit

Codice sorgente

Arduino (C++)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Inno nazionale turco con cicalino
4// ─────────────────────────────────────────
5// Premi il pulsante e il buzzer suona i primi due versi dell'Inno
6// nazionale turco nota per nota. Un potenziometro in serie al buzzer
7// regola il volume. Testo: Mehmet Akif Ersoy, musica: Osman Zeki Ungor.
8//
9// Pin:
10//   D7 -> Pulsante play, altro piedino a 5V
11//   D7 -> Resistenza da 10k a GND (pull-down)
12//   D8 -> Potenziometro (volume) al + del buzzer
13//   Buzzer - a GND
14
15int buttonPin = 7;   // Pulsante play
16int buzzer = 8;      // Pin di uscita del buzzer
17
18// Frequenze delle note (Hz). Una "d" finale indica il diesis (ad = La#), 2 e 3 sono ottave più alte
19int a = 440, ad = 466, b = 494, c = 523, cd = 554, d = 587, dd = 622, e = 659, f = 698;
20int fd = 740, g = 784, gd = 830, a2 = 880, ad2 = 932, b2 = 988, c2 = 1046, cd2 = 1108;
21int d2 = 1174, dd2 = 1244, e2 = 1318, f2 = 1396, fd2 = 1480, g2 = 1568, gd2 = 1660;
22int a3 = 1760;
23
24void setup() {
25  pinMode(buttonPin, INPUT);   // Ingresso del pulsante (pull-down)
26  pinMode(buzzer, OUTPUT);
27}
28
29void loop() {
30  if (digitalRead(buttonPin)) {   // Pulsante premuto?
31    playSong();                   // Riprodurre l'inno dall'inizio alla fine
32  }
33}
34
35// Ogni tone() avvia una nota e il delay() successivo è la durata della nota (ms). noTone() aggiunge
36// una breve pausa.
37void playSong() {
38  // Strofa 1
39  // Testo della canzone
40  tone(buzzer, c);
41  delay(800);
42  tone(buzzer, f);
43  delay(800);
44  tone(buzzer, g);
45  delay(800);
46  tone(buzzer, gd);
47  delay(800);
48  tone(buzzer, e);
49  delay(400);
50  tone(buzzer, g);
51  delay(200);
52  tone(buzzer, f);
53  delay(1600);
54  noTone(buzzer);
55  delay(300);
56
57  // Testo della canzone
58  tone(buzzer, f);
59  delay(800);
60  tone(buzzer, ad2);
61  delay(800);
62  tone(buzzer, c2);
63  delay(800);
64  tone(buzzer, cd2);
65  delay(800);
66  tone(buzzer, a2);
67  delay(400);
68  tone(buzzer, c2);
69  delay(200);
70  tone(buzzer, ad2);
71  delay(1600);
72
73  // Testo della canzone
74  tone(buzzer, c2);
75  delay(200);
76  tone(buzzer, ad2);
77  delay(200);
78  tone(buzzer, c2);
79  delay(200);
80  tone(buzzer, g);
81  delay(400);
82  noTone(buzzer);
83  delay(100);
84  tone(buzzer, g);
85  delay(400);
86  tone(buzzer, ad);
87  delay(200);
88  tone(buzzer, gd);
89  delay(400);
90  tone(buzzer, e);
91  delay(200);
92  tone(buzzer, f);
93  delay(400);
94  tone(buzzer, g);
95  delay(200);
96  tone(buzzer, gd);
97  delay(400);
98  tone(buzzer, ad);
99  delay(200);
100  tone(buzzer, c2);
101  delay(400);
102  tone(buzzer, cd2);
103  delay(200);
104  tone(buzzer, dd2);
105  delay(400);
106  tone(buzzer, f2);
107  delay(200);
108  tone(buzzer, dd2);
109  delay(400);
110
111  // Testo della canzone
112  tone(buzzer, dd);
113  delay(200);
114  tone(buzzer, d);
115  delay(200);
116  tone(buzzer, dd);
117  delay(200);
118  tone(buzzer, c2);
119  delay(800);
120  tone(buzzer, ad);
121  delay(800);
122  tone(buzzer, gd);
123  delay(1600);
124
125  // Testo della canzone
126  tone(buzzer, c);
127  delay(200);
128  tone(buzzer, b);
129  delay(200);
130  tone(buzzer, c);
131  delay(200);
132  tone(buzzer, g);
133  delay(800);
134  tone(buzzer, c);
135  delay(800);
136  tone(buzzer, c2);
137  delay(800);
138  tone(buzzer, ad);
139  delay(200);
140  tone(buzzer, gd);
141  delay(200);
142  tone(buzzer, g);
143  delay(400);
144  tone(buzzer, gd);
145  delay(200);
146  tone(buzzer, f);
147  delay(800);
148
149  // "Dir, Lyrics
150  tone(buzzer, f2);
151  delay(800);
152  tone(buzzer, dd2);
153  delay(200);
154  tone(buzzer, cd2);
155  delay(400);
156  tone(buzzer, c2);
157  delay(200);
158  tone(buzzer, ad);
159  delay(400);
160  tone(buzzer, gd);
161  delay(200);
162  tone(buzzer, g);
163  delay(400);
164  tone(buzzer, f);
165  delay(200);
166  tone(buzzer, c2);
167  delay(400);
168  tone(buzzer, c);
169  delay(800);
170  tone(buzzer, f);
171  delay(1600);
172
173  // Strofa 2
174  // Testo della canzone
175  tone(buzzer, c);
176  delay(800);
177  tone(buzzer, f);
178  delay(800);
179  tone(buzzer, g);
180  delay(800);
181  tone(buzzer, gd);
182  delay(800);
183  tone(buzzer, e);
184  delay(400);
185  tone(buzzer, g);
186  delay(200);
187  tone(buzzer, f);
188  delay(1600);
189  noTone(buzzer);
190  delay(300);
191
192  // Testo della canzone
193  tone(buzzer, f);
194  delay(800);
195  tone(buzzer, ad2);
196  delay(800);
197  tone(buzzer, c2);
198  delay(800);
199  tone(buzzer, cd2);
200  delay(400);
201  tone(buzzer, ad2);
202  delay(400);
203  tone(buzzer, a2);
204  delay(400);
205  tone(buzzer, c2);
206  delay(400);
207  tone(buzzer, ad2);
208  delay(800);
209
210  // Testo della canzone
211  tone(buzzer, c2);
212  delay(200);
213  tone(buzzer, ad2);
214  delay(200);
215  tone(buzzer, c2);
216  delay(200);
217  tone(buzzer, g);
218  delay(400);
219  noTone(buzzer);
220  delay(100);
221  tone(buzzer, g);
222  delay(400);
223  tone(buzzer, ad);
224  delay(200);
225  tone(buzzer, gd);
226  delay(400);
227  tone(buzzer, e);
228  delay(200);
229  tone(buzzer, f);
230  delay(400);
231  tone(buzzer, g);
232  delay(200);
233  tone(buzzer, gd);
234  delay(400);
235  tone(buzzer, ad);
236  delay(200);
237  tone(buzzer, c2);
238  delay(400);
239  tone(buzzer, cd2);
240  delay(200);
241  tone(buzzer, dd2);
242  delay(400);
243  tone(buzzer, f2);
244  delay(200);
245  tone(buzzer, dd2);
246  delay(400);
247
248  // Testo della canzone
249  tone(buzzer, dd);
250  delay(200);
251  tone(buzzer, d);
252  delay(200);
253  tone(buzzer, dd);
254  delay(200);
255  tone(buzzer, c2);
256  delay(800);
257  tone(buzzer, ad);
258  delay(800);
259  tone(buzzer, gd);
260  delay(1600);
261
262  // Testo della canzone
263  tone(buzzer, c);
264  delay(200);
265  tone(buzzer, b);
266  delay(200);
267  tone(buzzer, c);
268  delay(200);
269  tone(buzzer, g);
270  delay(800);
271  tone(buzzer, c);
272  delay(800);
273  tone(buzzer, c2);
274  delay(800);
275  tone(buzzer, ad);
276  delay(200);
277  tone(buzzer, gd);
278  delay(200);
279  tone(buzzer, g);
280  delay(400);
281  tone(buzzer, gd);
282  delay(200);
283  tone(buzzer, f);
284  delay(800);
285
286  // Testo della canzone
287  tone(buzzer, f2);
288  delay(800);
289  tone(buzzer, dd2);
290  delay(200);
291  tone(buzzer, cd2);
292  delay(400);
293  tone(buzzer, c2);
294  delay(200);
295  tone(buzzer, ad);
296  delay(400);
297  tone(buzzer, gd);
298  delay(200);
299  tone(buzzer, g);
300  delay(400);
301  tone(buzzer, f);
302  delay(200);
303  tone(buzzer, c2);
304  delay(400);
305  tone(buzzer, c);
306  delay(800);
307  tone(buzzer, f);
308  delay(1600);
309  noTone(buzzer);
310}
311

FAQ

Come si convertono le note in frequenza?▾

Ogni nota corrisponde a una determinata frequenza; ad esempio, nella quarta ottava il Do è di circa 262 Hz, mentre il La è di 440 Hz. Nel codice, le note sono memorizzate in una serie in base alla frequenza, mentre le durate sono memorizzate in una serie separata e vengono riprodotte in sequenza tramite la funzione tone().

Come faccio a modificare la velocità della melodia?▾

Le durate delle note vengono moltiplicate per un fattore di tempo. Se si riduce il fattore, la melodia accelera; se lo si aumenta, rallenta. Nel progetto è possibile utilizzare un potenziometro per questo tipo di regolazioni.

Le note si attaccano tra loro, come faccio a separarle?▾

Dopo ogni nota, lascia un breve silenzio pari a circa il 10–30% della sua durata (noTone e delay). Questo permette di distinguere le singole note.

Posso aggiungere una mia canzone?▾

Sì. Basta trovare le note della canzone nella tabella nota-frequenza e inserirle in una matrice, mentre le durate vanno inserite in una seconda matrice. Su Internet si trovano molte matrici di note già pronte per Arduino relative a numerose canzoni.

Inno nazionale turco con cicalino | BlueGrays