Kendali Lampu dengan Sensor Suara dan Arduino Uno

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.

Percobaan Sensor Suara dan Arduino Uno

Untuk lebih memahami tutorial kali ini marilah kita buat percobaan sederhana, namun sebelum itu persiapkan

  1. Arduino Uno
  2. Sensor Suara FC04
  3. Resistor 150 Ω
  4. LED hijau
  5. Jumper male-female secukupnya
  6. 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…

Leave a Reply