
Video
Schaltplan

Quellcode
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Türkische Nationalhymne mit Summer
4// ─────────────────────────────────────────
5// Drücke die Taste, und der Buzzer spielt die ersten beiden Strophen der
6// türkischen Nationalhymne Note für Note. Ein Potentiometer in Reihe mit
7// dem Buzzer stellt die Lautstärke ein. Text: Mehmet Akif Ersoy, Musik:
8// Osman Zeki Ungor.
9//
10// Pins:
11// D7 -> Play-Taste, anderes Beinchen an 5V
12// D7 -> 10k-Widerstand an GND (Pull-down)
13// D8 -> Potentiometer (Lautstärke) an Buzzer +
14// Buzzer - an GND
15
16int buttonPin = 7; // Play-Taste
17int buzzer = 8; // Buzzer-Ausgangspin
18
19// Notenfrequenzen (Hz). Ein angehängtes "d" bedeutet Kreuz (ad = A#), 2 und 3 sind höhere Oktaven
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); // Tasteneingang (Pull-down)
27 pinMode(buzzer, OUTPUT);
28}
29
30void loop() {
31 if (digitalRead(buttonPin)) { // Taste gedrückt?
32 playSong(); // Die Hymne von Anfang bis Ende abspielen
33 }
34}
35
36// Jedes tone() startet eine Note, und das delay() danach ist die Notenlänge (ms). noTone() fügt
37// eine kurze Pause ein.
38void playSong() {
39 // Strophe 1
40 // Liedtext
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 // Liedtext
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 // Liedtext
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 // Liedtext
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 // Liedtext
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 // Strophe 2
175 // Liedtext
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 // Liedtext
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 // Liedtext
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 // Liedtext
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 // Liedtext
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 // Liedtext
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}
312FAQ
Wie werden Noten in Frequenzen umgerechnet?▾
Jede Note entspricht einer bestimmten Frequenz; beispielsweise liegt C in der 4. Oktave bei etwa 262 Hz, A bei 440 Hz. Im Code werden die Noten in einer Reihe nach ihrer Frequenz und die Dauer in einer separaten Reihe gespeichert und mit „tone()“ nacheinander abgespielt.
Wie kann ich die Geschwindigkeit der Melodie ändern?▾
Die Notenwerte werden mit einem Tempofaktor multipliziert. Verringert man den Faktor, wird die Melodie schneller; erhöht man ihn, wird sie langsamer. Im Projekt kann ein Potentiometer für solche Einstellungen verwendet werden.
Die Noten kleben aneinander – wie kann ich sie voneinander trennen?▾
Lasse nach jeder Note eine kurze Pause von etwa 10–30 % ihrer Dauer (noTone und delay). Dadurch werden die einzelnen Noten deutlich voneinander abgesetzt.
Kann ich mein eigenes Lied hinzufügen?▾
Ja. Es reicht aus, wenn du die Noten des Liedes anhand der Noten-Frequenz-Tabelle in einem Array und die Dauer in einem zweiten Array speicherst. Im Internet findest du für viele Lieder fertige Noten-Arrays für Arduino.
