Projek Arduino Melodi Sederhana
Projek kali ini kita akan mencoba membuat melodi dengan menggunakan arduino dan piezo electric buzzer.
Komponen yang diperlukan :
1. Arduino board
2. Piezo Buzzer
Melodi Arduino menggunakan buzzer piezo untuk membuat frekuensi yang menyerupai nada yang dapat dikenali. Anda menggunakan Arduino IDE untuk memberikan urutan, kecepatan, dan durasi not untuk memainkan nada tertentu.
Piezo adalah buzzer murah yang sering digunakan dalam mainan kecil. Elemen piezo tanpa rumah plastiknya terlihat seperti cakram logam emas dengan kabel positif (biasanya merah) dan negatif (biasanya hitam) yang terhubung. Sebuah piezo hanya mampu membuat suara klik, yang kita buat dengan menerapkan tegangan. Kita dapat membuat nada yang dapat dikenali dengan membuat piezo mengklik ratusan kali per detik pada frekuensi tertentu, jadi pertama-tama kita perlu mengetahui frekuensi nada berbeda yang kita inginkan. Tabel menunjukkan not dan frekuensi yang sesuai. Periode adalah durasi waktu, dalam mikrodetik, di mana frekuensi dibuat. Kami membagi dua angka ini untuk mendapatkan nilai timeHigh, yang digunakan dalam kode untuk membuat catatan.
Cara membuat rangkaian projek :
1. Hubungkan kabel hitam piezo langsung ke GND di Arduino, dan kabel merah ke pin Arduino 9.
2. Periksa apakah pengaturan Anda cocok dengan Gambar, lalu unggah kode yang ditunjukkan berikutnya di "Sketsa".
Sketch program arduino :
Kami akan mulai dengan nada sederhana. Di , kami memberi tahu IDE bahwa nada terdiri dari 15 nada. Kemudian kita menyimpan not-not melodi dalam array karakter sebagai string teks dalam urutan yang harus dimainkan, dan panjang setiap not yang akan dimainkan disimpan dalam array lain sebagai bilangan bulat. Jika Anda ingin mengubah nada, Anda dapat mengubah nada dalam larik di, dan jumlah ketukan yang dimainkan oleh setiap nada terkait . Akhirnya pada kami mengatur tempo di mana lagu akan dimainkan. Gabungkan semuanya, dan apa yang dimainkannya?
int speakerPin = 9; // Pin connected to the piezo
int length = 15; // Number of notes
char notes[] = "ccggaagffeeddc "; // A space represents a rest
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}
// Set timeHigh value to specific notes
void playNote(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
for (int i = 0; i < 8; i++) { // Play tone that corresponds
// to note name
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
void setup() {
pinMode(speakerPin, OUTPUT); // Set speakerPin as output
}
// Play the tune
void loop() {
for (int i = 0; i < length; i++) {
if (notes[i] == ' ') {
delay(beats[i] * tempo); // Rest
}
else {
playNote(notes[i], beats[i] * tempo);
}
delay(tempo / 2); // Pause between notes
}
}







0 Comments