Nah, bila sudah mulai fasih bermain led, kita coba ke projek selanjutnya, kita coba bermain sound. Kita menggunakan piezo sounder sebagai latihan awal. Aplikasi dari suara bisa banyak, alarm, warning beeps atau alert notification. Code yang digunakan adalah tone(). Pada project 11 ini kita akan mencoba membuat alarm sederhana, seperti alarm mobil.
Komponen yang digunakan
Saat memilih piezo sounder, pastikan jangan membeli tipe active buzzer, yang digunakan pada proyek ini adalah piezo sounder pasif AC.
Skema
Sketch
// Project 11 - Piezo Sounder Alarm
float sinVal;
int toneVal;
void setup() {
pinMode(8, OUTPUT);
}
void loop() {
for (int x=0; x<180; x++) {
// convert degrees to radians then obtain sin value
sinVal = (sin(x*(3.1412/180)));
// generate a frequency from the sin value
toneVal = 2000+(int(sinVal*1000));
tone(8, toneVal);
delay(2);
}
}
Program diatas mirip dengan projek led dimmer, hanya saja output pada projek ini menggunakan piezo sounder.
Pertama kita siapkan 2 variables
float sinVal;
int toneVal;
variable sinVal float digunakan untuk menyimpang nilai sin, yang menghasilkan suara naik turun sesuai nilai sin. Variabel toneVal untuk menyimpan nilai sinVal yang telah kita konversi ke frekuensi yang dibutuhkan.
Pada fungsi setup, kita assign pin 8 sebagai output.
void setup() {
pinMode(8, OUTPUT);
}
Pada fungsi main loop, kita akan melakukan loop dari 0 - 179.
for (int x=0; x<180; x++)
lalu nilai x akan kita convert ke radian dan ditampung dalam variable sinVal. Setelah nilai sinVal kita peroleh, kita convert ke frequency dan ditampung dalam variable toneVal.
sinVal = (sin(x*(3.1412/180)));
// generate a frequency from the sin value
toneVal = 2000+(int(sinVal*1000));
Berikutnya kita menggunakan perintah tone() untuk menghasilkan suara pada piezo sounder.
tone(8, toneVal);
Perintah tone() membutuhkan 2 atau 3 parameters.
tone(pin, frequency)
tone(pin, frequency, duration)
Parameter pin adalah digital pin yang digunakan sebagai output ke piezo dan frequency adalah frequency dari tone dalam hertz. Parameter duration adalah optional, dalam satuan milisekon. Jika tidak diisi, maka tone akan terus dibunyikan hingga kita memainkan nada lainnya, atau hingga kita memberikan perintah berhenti dengan perintah noTone(pin).
Pada akhir sketch, kita memberikan perintah delay selama 2 milliseconds untuk memberikan jeda antara bunyi.
delay(2);
Mungkin timbul pertanyaan, kenapa gak pake perintah seperti ini saja tone(8, toneVal, 2); Karena loop yang kita gunakan sangat pendek, akan menyebabkan perubahan frequency kurang dari millisecond, jadi bila menggunakan perintah diatas, maka perubahan suara tidak akan terdengar. Dengan perintah delay 2 millisecond, kita memastikan piezo akan berbunyi di frekuensi yang kita assign selama 2 milliseconds.
Projek ini dapat dikembangkan sesuai kebutuhan dan kreatifitas Anda, bisa digunakan sebagai alert bila suhu mencapai derajat tertentu, atau bila ada orang mendekat atau apa saja.. silakan berimajinasi.. :)
Nilai 2000 dan 1000 pada perhitungan toneVal dan waktu delay dapat Anda mainkan juga, silakan bereksperimen untuk mendapatkan suara yang Anda inginkan.
Related Article
Apa itu piezo sounder / disc
Referensi Perintah tone()
Proyek Sebelumnya RGB Mood Lamp
Proyek Selanjut Piezo Sounder Melody Player
Komponen yang digunakan
- Piezo Sounder
- 2 way screw terminal
Saat memilih piezo sounder, pastikan jangan membeli tipe active buzzer, yang digunakan pada proyek ini adalah piezo sounder pasif AC.
Skema
Sketch
// Project 11 - Piezo Sounder Alarm
float sinVal;
int toneVal;
void setup() {
pinMode(8, OUTPUT);
}
void loop() {
for (int x=0; x<180; x++) {
// convert degrees to radians then obtain sin value
sinVal = (sin(x*(3.1412/180)));
// generate a frequency from the sin value
toneVal = 2000+(int(sinVal*1000));
tone(8, toneVal);
delay(2);
}
}
Program diatas mirip dengan projek led dimmer, hanya saja output pada projek ini menggunakan piezo sounder.
Pertama kita siapkan 2 variables
float sinVal;
int toneVal;
variable sinVal float digunakan untuk menyimpang nilai sin, yang menghasilkan suara naik turun sesuai nilai sin. Variabel toneVal untuk menyimpan nilai sinVal yang telah kita konversi ke frekuensi yang dibutuhkan.
Pada fungsi setup, kita assign pin 8 sebagai output.
void setup() {
pinMode(8, OUTPUT);
}
Pada fungsi main loop, kita akan melakukan loop dari 0 - 179.
for (int x=0; x<180; x++)
lalu nilai x akan kita convert ke radian dan ditampung dalam variable sinVal. Setelah nilai sinVal kita peroleh, kita convert ke frequency dan ditampung dalam variable toneVal.
sinVal = (sin(x*(3.1412/180)));
// generate a frequency from the sin value
toneVal = 2000+(int(sinVal*1000));
Berikutnya kita menggunakan perintah tone() untuk menghasilkan suara pada piezo sounder.
tone(8, toneVal);
Perintah tone() membutuhkan 2 atau 3 parameters.
tone(pin, frequency)
tone(pin, frequency, duration)
Parameter pin adalah digital pin yang digunakan sebagai output ke piezo dan frequency adalah frequency dari tone dalam hertz. Parameter duration adalah optional, dalam satuan milisekon. Jika tidak diisi, maka tone akan terus dibunyikan hingga kita memainkan nada lainnya, atau hingga kita memberikan perintah berhenti dengan perintah noTone(pin).
Pada akhir sketch, kita memberikan perintah delay selama 2 milliseconds untuk memberikan jeda antara bunyi.
delay(2);
Mungkin timbul pertanyaan, kenapa gak pake perintah seperti ini saja tone(8, toneVal, 2); Karena loop yang kita gunakan sangat pendek, akan menyebabkan perubahan frequency kurang dari millisecond, jadi bila menggunakan perintah diatas, maka perubahan suara tidak akan terdengar. Dengan perintah delay 2 millisecond, kita memastikan piezo akan berbunyi di frekuensi yang kita assign selama 2 milliseconds.
Projek ini dapat dikembangkan sesuai kebutuhan dan kreatifitas Anda, bisa digunakan sebagai alert bila suhu mencapai derajat tertentu, atau bila ada orang mendekat atau apa saja.. silakan berimajinasi.. :)
Nilai 2000 dan 1000 pada perhitungan toneVal dan waktu delay dapat Anda mainkan juga, silakan bereksperimen untuk mendapatkan suara yang Anda inginkan.
Related Article
Apa itu piezo sounder / disc
Referensi Perintah tone()
Proyek Sebelumnya RGB Mood Lamp
Proyek Selanjut Piezo Sounder Melody Player
13 - Piezo Sounder Alarm
Reviewed by MCH
on
January 22, 2014
Rating:
No comments: