Lompat ke konten Lompat ke sidebar Lompat ke footer

Arduino Part 26. Saklar Tepuk Tangan dengan Sensor Suara

Saklar tepuk tangan ini merupakan saklar otomatis untuk menghidupkan dan mematikan lampu atau peralatan listrik lainnya dengan cara tepuk tangan. Saklar tepuk tangan ini menggunakan modul sensor suara dan bersifat toggle. Jadi saat tepuk tangan sekali maka lampu akan menyala dan saat tepuk tangan sekali lagi maka lampu akan mati, begitu seterusnya.

Modul Sensor suara

Modul sensor suara inilah yang akan menangkap suara. Modul sensor ini dilengkapi microphone jenis condensor. Ukuran mic condesor ini cukup kecil dan memiliki sensitifitas yang baik. Microphone ini akan mengubah sinyal suara menjadi sinyal  listrik. Mic ini dilengkapi membran yang dapat bergetar saat ada suara, sehingga gerakan membran ini tergantung besar kecilnya intensitas suara. Semakin besar suara yang masuk ke mic maka semakin besar juga sinyal listrik yang dihasilkan dari gerakan membran tersebut.

Sinyal listrik yang dihasilkan langsung dari mic condensor masih terbilang sangat kecil jadi belum dapat langsung diproses, sehingga butuh penguat awal. Penguat awal mic (preamp mic) bisa menggunakan 1 buah transistor atau bisa juga menggunakan IC  Op-amp. 

Ada banyak jenis modul sensor suara yang ada dipasaran, tetapi penulis akan menampilkan 2 jenis modul sensor suara seperti gambar dibawah ini.

Pada modul sensor diatas terdiri dari 3 buah pin yaitu :

  • Vcc yang akan terhubung ke +5V
  • GND yang terhubung ke Ground
  • Out yang berupa nilai digital HIGH (1) dan LOW (0)

Pada modul sensor suara ini ouputnya cuma besaran digital saja, tidak ada besaran analognya. Modul tersebut dilengkapi dengan 2 buah lampu LED sebagai indikator power suplly dan indikator suara.

Ada lagi bentuk modul sensor suara yang terdiri dari 4 pin, seperti gambar berikut ini :

Susunan pinnya adalah sbb:

  • A0 terhubung ke input analog pada arduino
  • G yang terhubung ke Ground
  • + yang terhubung ke +5 V
  • D0 terhubung ke input digital arduino

Jadi pada modul model ini selain memiliki ouput digital 1 dan 0, modul ini juga memiliki output analog (A0) berupa tegangan, sehingga besar kecilnya suara akan mempengaruhi besar kecilnya nilai output analog. Nilai output analog dari modul sensor suara ini, akan bisa dimasukkan ke input analog arduino. Sehingga nilainya bisa kita lihat pada serial monitor.

Pada modul sensor suara ini telah dilengkapi dengan trimpot yang fungsinya adalah untuk mengatur sensitifitas suaranya. Pada modul ini juga telah dilengkapi dengan IC Op-Amp LM393 sebagai penguat dan sekaligus sebagai comparator. Proses comparator adalah membandingkan sinyal input dengan tegangan referensi yang berasal dari setingan tegangan pada trimpot sensitifitas. Hasil comparator ini bisa mengeluarkan output berupa nilai digital ataupun analog.

Praktik ke-1 Mode Digital

Pada praktik ujicoba yang pertama ini kita akan ujicoba output digital dari modul sensor suara. Kita tidak perlu menambahkan LED karena kita manfaatkan saja LED builtin yang sudah ada didalam board arduino uno yaitu di pin 13. Kita cukup menggunakan sensor suara saja, dan ouput yang digunakan adalah ouput digital sensor yaitu pin D0.

Pada saat tidak ada suara yang terdeteksi maka output modul sensor suara akan mengeluarkan nilai digital  LOW (0), kondisi ini juga bisa dilihat pada lampu indikator yang mati dan begitu juga pada lampu LED arduino uno (pin 13) akan mati juga.

Jika terdeteksi ada suara maka mengakibatkan output modul sensor suara ini mengeluarkan nilai digital HIGH (1). Kondisi HIGH ini juga dapat diamati pada lampu indikator sensor suara yang hidup. Output sensor suara ini akan dideteksi oleh Arduino uno sehingga output LED builtin board arduino uno (pin 13) akan ikut hidup juga.

Gambar rangkaiannya adalah seperti berikut ini :

Sketch program mode digital bisa dilihat dibawah ini:

//Sensor suara mode digital
//www.elektronikahendry.com
 
int SENSOR = 8;
int LED = 13; //LED builtin pd arduino uno
int NILAI_SENSOR;
 
void setup()
{
 pinMode(SENSOR, INPUT);
 pinMode(LED, OUTPUT);
}
 
void loop()
{
 NILAI_SENSOR = digitalRead(SENSOR);
 if(NILAI_SENSOR==HIGH)
  {
  //Jika berlogika 1 maka LED akan menyala
  digitalWrite(LED,HIGH);
  }
  else
  {
  //jika berlogika 0 maka LED akan mati
  digitalWrite(LED,LOW);
  }
}

Praktik ke-2 Mode Analog

Pada praktik ujicoba yang kedua ini kita akan ujicoba output analog (A0) dari modul sensor suara. Kita akan mengamati nilai analognya menggunakan serial monitor. Gambar rangkaiannya bisa dilihat pada gambar dibawah ini :

Setelah selesai maka silahkan ketik sketch program dibawah ini :

//Sensor suara mode digital
//www.elektronikahendry.com
 
int NILAI_ANALOG;
void setup()
{
Serial.begin (9600);
}
 
void loop()
{
NILAI_ANALOG = analogRead (A5);
Serial.println(NILAI_ANALOG);
delay(100);
}
Silahkan buka serial monitor, lalu amati nilai analog yang muncul dengan membuat berbagai macam bunyi suara. Semakin besar suaranya maka akan membuat semakin besar nilai analognya. Nilai ini bisa dimanfaatkan untuk aplikasi tingkat intensiatas suara di suatu ruangan.

Praktik ke-3 Membuat saklar tepuk tangan

Saklar tepuk tangan ini kita gunakan untuk mengandalikan lampu atau peralatan listrik lainnya dengan cara tepuk tangan di dekat mic pada modul sensor suara. Karena yang diharapkan kondisi ON dan OFF maka kita bisa menggunakan data digital pada modul sensor suara. Saat ada bunyi tepuk tangan maka lampu menyala dan saat tepuk tangan lagi lampu akan mati, proses ini berulang-ulang seperti kondisi toggle pada sistem digital.

Agar alat ini bisa mensaklar tegangan 220 V AC yang akan digunakan pada beban lampu atau peralatan lainnnya maka kita perlu tambahan modul driver relay. Modul driver relay ini yang kita gunakan adalah aktif HIGH dengan tegangan catudaya 5 volt. Untuk membuat aktif HIGH pada modul driver relay maka cukup pindahkan jumper kuning pada posisi “H”. Sehingga jika input modul driver relay mendapat nilai digital HIGH maka relay akan aktif dan jLOW maka relay akan mati. Ciri-ciri relay yang aktif bisa didengan bunyi klik pada relay.

Output relay ada 3 buah yaitu COM (Common), NC (Normaly Close) dan NO (Normaly Open). Pada praktik ujicoba kali ini kita memanfaatkan pin NO dan COM sebagai saklar yang kita hubungkan ke fasa listrik 220 V AC.

Secara lengkap gambar rangkaian saklar tepuk tangan bisa dilihat pada gambar dibawah ini :


Lalu silahkan ketik sketch program dibawah ini:

//Saklar tepuk tangan
//www.elektronikahendry.com
 
const int RELAY = 13; 
const int SENSOR = 7;
 
boolean relayAktif = false;
int keadaansebelumnya = LOW;
 
void setup()
{
 pinMode(RELAY, OUTPUT);
 pinMode(SENSOR, INPUT);
}
 
void loop()
{
 int keadaansekarang = digitalRead (SENSOR);
 if ((keadaansekarang == HIGH) and
     (keadaansekarang != keadaansebelumnya))
 {
  // Membalik keadaan relay aktif
  relayAktif = not relayAktif;
 
  //Atur RELAY berdasarkan nilai relayAktif
  if(relayAktif)
    {
    digitalWrite(RELAY, HIGH);
    delay(100);   //tunda sesaat
    }
  else
    digitalWrite(RELAY, LOW);
    delay(100);   //tunda sesaat
  }
 
  // perbaharui keadaan sebelumnya
  keadaansebelumnya = keadaansekarang;
}

Setelah selesai silahkan di verify dan upload ke dalam board arduino uno. Untuk hasilnya bisa dilihat pada video berikut ini:

Demikianlah pembahasan tentang sensor suara yang kita aplikasikan untuk saklar tepuk tangan. Silahkan tuliskan di kolom komentar jika ada saran, pendapat atau hal yang perlu di-diskusikan. Semoga bermanfaat.

8 komentar untuk "Arduino Part 26. Saklar Tepuk Tangan dengan Sensor Suara"

  1. Mau nanya dong, kalo arduinonya diganti dengan arduino nano bisa atau nggak yaa? Untuk kodingan tetep sama aja kan?

    BalasHapus
  2. Sebelumnya terima kasih sudah membuat tutorial ini karena membantu projek saya, tetapi saya kurang paham pada pemasangan kabel jumper di bread board, bisa bantu penjelasannya?

    BalasHapus
  3. jika akan menyalakan dengan dua kali tepukan apa bisa....mohon skema dan tutorialnya...
    mohon maaf skema rangkaiannya ga bisa di buka gambarnya...?
    jadi saya kurang bisamemahami...
    terimakasih

    BalasHapus
  4. Koding bagian relay low bermasalah

    BalasHapus
  5. codingan bermasalah min

    BalasHapus
  6. koding nya ga jelas

    BalasHapus
  7. ada link download codingnya?

    BalasHapus