Contents
Sensor suara adalah suatu perangkat yang dapat mengubah besaran suara menjadi besaran listrik dengan nilai output sesuai dengan besarnya gelombang suara yang masuk. Pada tutorial kali ini sensor suara digunakan untuk mengendalikan nyala lampu. Sensor suara yang digunakan telah tersedia dalam bentuk modul dengan seri FC04. Modul sensor suara FC04 seperti terlihat pada gambar di bawah ini
PRINSIP KERJA SENSOR SUARA
Sensor suara bekerja berdasarkan gelombang suara yang masuk. Jika gelombang suara tersebut mengenai membran sensor, akan berefek pada bergetarnya membran sensor. Membran tersebut yang akan mengubah gelombang suara menjadi besaran listrik yang nantinya dapat digunakan sebagai parameter untuk mengendalikan perangkat output. Modul sensor FC04 terdapat 3 pin yaitu VCC, GND, dan Out. Jika ada suara terdeteksi, pin Out akan bernilai ‘1’ (5V) dan jika tidak ada suara pin Out akan bernilai ‘0’ (0V).
Percobaan Sensor Suara dan Arduino Uno
Untuk lebih memahami tutorial kali ini marilah kita buat percobaan sederhana, namun sebelum itu persiapkan
- Arduino Uno
- Sensor Suara FC04
- Resistor 150 Ω
- LED hijau
- Jumper male-female secukupnya
- Protoboard
WIRING
Buatlah rangkaian seperti pada gambar di bawah ini dengan konfigurasi pin:
- VCC dihubungkan dengan 5v Arduino Uno.
- GND dihubungkan dengan GND Arduino Uno.
- Out dihubungkan dengan pin A0 Arduino Uno.
LED hijau terhubung dengan pin A1 Arduino Uno
GAMBAR RANGKAIAN
Source Code
Selanjutnya buka IDE Arduino Anda kemudian salin contoh program sebagai berikut :
#define Sensor A0 //Deklarasi sensor ke pin A0 #define LEDh A1 //Deklarasi LED Merah ke pin A1 int clap = 0; //jumlah tepukan saat kondisi awal long detection_range_start = 0; long detection_range = 0; boolean status_lights = false; void setup() { Serial.begin(9600); //Menggunakan baudrate 9600 pinMode(Sensor, INPUT); //Deklarasi variabel Sensor sebagai input pinMode(LEDh,OUTPUT); //Deklarasi variabel LED merah sebagai output } void loop() { int status_sensor = digitalRead(Sensor); //Instruksi untuk membaca nilai digital sensor Serial.print("Tepukan: "); Serial.print(clap); delay(1); if (status_sensor == 0) { if (clap == 0) { detection_range_start = detection_range = millis(); clap++; } else if (clap > 0 && millis()-detection_range >= 50) { detection_range = millis(); clap++; } } if (millis()-detection_range_start >= 400) { if (clap == 1) //Instruksi untuk mengaktifkan LED saat sensor mendeteksi suara { if (!status_lights) { status_lights = true; digitalWrite(LEDh, HIGH); } else if (status_lights) { status_lights = false; //Instruksi untuk mematikan LED saat suara kembali terdeteksi digitalWrite(LEDh, LOW); } } clap = 0; } }
HASIL PERCOBAAN
Upload sketch di atas dengan menekan tombol upload (bisa juga melalui tombol CTRL+U), dan pastikan pengaturan board pada ‘Arduino Uno’ dan COM port sudah benar. Kemudian aktifkan tools ‘Serial Monitor’ di Arduino IDE melalui menu tools | Serial Monitor. Pastikan kabel USB antara laptop dan Arduino tetap terpasang agar data terbaca di jendela Serial Monitor. Setelah program selesai diunggah perhatikan kondisi LED ketika sensor mendeteksi ada atau tidaknya suara (disimulasikan dengan tepukan tangan)
Program di atas mengendalikan LED berdasarkan parameter suara, saat sensor mendeteksi adanya suara maka LED akan aktif, namun jika sensor tidak mendeteksi adanya suara maka LED akan padam. Untuk menguji rangkaian percobaan pada tutorial kali ini Anda dapat menepukkan tangan yang mana suara hasil tepukan tersebut akan dideteksi oleh sensor suara FC04. Ketika Anda menepuk sekali maka LED akan aktif, untuk mematikan LED tersebut Anda perlu menepuk tangan sekali lagi, suara tepukan ke dua akan dideteksi oleh sensor dan digunakan sebagai parameter untuk mematikan LED. Jika misal ingin menghubungkan ke lampu, Anda tinggal memasang relay modul pin LED, kemudian terminal relay dapat Anda hubungkan ke lampu 220V AC.
Demikian sedikit tutorial cara mengendalikan lampu berdasarkan sensor suara dan Arduino Uno. Semoga dapat bermanfaat untuk Anda. Jika ada saran atau pertanyaan silahkan tulis di kolom komentar ya…
jika lampu tetap akan menyala selagi ada suara, misalnya suara mesin gerinda, dan lamu akan padam jika tidak ada suara mesin gerinda. Untuk yang seperti ini, apanya yang diubah.? terima kasih
pada intinya tinggal deteksi output modul sensor aja mas. Jika tidak suara, pin out akan bernilai 0 sedangkan jika ada suara pin out bernilai 1 (5V). Cuma nanti perlu coba dulu didefinisikan yg membedakan suara gerinda dengan suara yang lain (jika diperlukan). Jika hanya sekedar mendeteksi ada suara keras atau tidak bisa langsung digunakan