
Video
Skema rangkaian

Kode sumber
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Lagu Kebangsaan Turki dengan Buzzer
4// ─────────────────────────────────────────
5// Tekan tombol dan buzzer memainkan dua bait pertama Lagu Kebangsaan Turki
6// nada demi nada. Potensiometer yang diseri dengan buzzer mengatur volume.
7// Lirik: Mehmet Akif Ersoy, musik: Osman Zeki Ungor.
8//
9// Pin:
10// D7 -> Tombol putar, kaki lainnya ke 5V
11// D7 -> Resistor 10k ke GND (pull-down)
12// D8 -> Potensiometer (volume) ke Buzzer +
13// Buzzer - ke GND
14
15int buttonPin = 7; // Tombol putar
16int buzzer = 8; // Pin output buzzer
17
18// Frekuensi nada (Hz). Akhiran "d" berarti kres (ad = A#), 2 dan 3 adalah oktaf lebih tinggi
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); // Input tombol (pull-down)
26 pinMode(buzzer, OUTPUT);
27}
28
29void loop() {
30 if (digitalRead(buttonPin)) { // Tombol ditekan?
31 playSong(); // Mainkan lagu kebangsaan dari awal sampai akhir
32 }
33}
34
35// Setiap tone() memulai satu nada dan delay() sesudahnya adalah panjang nada (ms). noTone()
36// menambah jeda singkat.
37void playSong() {
38 // Bait 1
39 // Lirik
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 // Lirik
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 // Lirik
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 // Lirik
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 // Lirik
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, Lirik
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 // Bait 2
174 // Lirik
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 // Lirik
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 // Lirik
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 // Lirik
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 // Lirik
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 // Lirik
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}
311FAQ
Bagaimana nada musik diubah menjadi frekuensi?
Setiap nada sesuai dengan frekuensi tertentu; misalnya, C di oktaf ke-4 sekitar 262 Hz, dan A adalah 440 Hz. Di kode ini, frekuensinya disimpan di variabel terpisah. Panggilan `tone()` di playSong() memulai nada, dan panggilan `delay()` setelahnya menentukan durasinya.
Bagaimana cara mengubah tempo melodi?
Di kode ini, durasi nada ditentukan oleh nilai tetap di delay(). Untuk mempercepat melodi, kurangi durasi nada dan jeda dengan proporsi yang sama; untuk memperlambatnya, tambah durasinya. Untuk mengatur tempo dengan potensiometer, kamu perlu menambahkan pembacaan analog dan mengatur durasi-durasi ini dengan faktor yang dihitung dari bacaan itu.
Nada-nadanya menempel satu sama lain, bagaimana memisahkannya?
Setelah setiap nada, beri jeda hening singkat sekitar 10–30% dari durasi nada (noTone dan delay). Dengan begitu nada-nadanya terdengar terpisah.
Bisakah aku menambahkan laguku sendiri?
Bisa. Untuk menambahkan lagumu sendiri, kamu bisa mengubah frekuensi dan durasi nada di playSong(). Jika kamu lebih suka menyimpan nada dan durasinya di array, kamu juga harus menulis loop yang membaca array itu secara berurutan dan memanggil tone() serta delay(). Kamu bisa menemukan array nada siap pakai untuk banyak lagu di internet yang kompatibel dengan Arduino.
