11. Pembelajaran Mengenai Penanganan Suara dan Getaran dengan Arduino
Materi:
Pembelajaran pada Bab ini membahas berbagai Topik yang berhubungan suara dan getaran yang mencakup :
Fungsi tone ();
Piezo disk ;
Buzzer;
Speaker;
Alarm Ultrasonik
Ketukan
Sensor suara
Perekam sura
Getaran
11.1 Fungsi tone() untuk Menghasilkan Suara
Arduino menyediakan fungsi bernama tone ( ) yang berguna untuk menghasilkan suara pada tertentu. Fungsi ini dapat menerima dua atau tiga argumen.
Argumen pertama menentukan pin yang digunakan untuk menghasilkan nada. Pin ini dihubungkan ke speaker atau peranti semacam itu.
Argumen kedua menentukan frekuensi nada.
Argumen ketiga (yang bersifat opsional) berguna untuk menentukan lama nada diperdengarkam
Contoh:
tone(8, 3000) ;
akan membuat nada berfrekuensi 3000 hertz (Hz) dihasilkan di pin 8. Pada keadaan seperti itu, suara diperdengarkan terus-menerus sampai ada pemanggilan tone ( ) lain atau terdapat perintah noTone ().
(Contoh berikut menunjukkan cara memainkan nada 3000Hz selama 200 milidetik:
tone (8, 3000) ; delay (200) ; noTone (8) ;
Dalam hal ini, delay ( ) untuk selama 200 milidetik sehingga selama itulah nada terdengar. Setelah dihentikan melalui noTone (8) , yang menghentikan suara di pin 8.
Untuk kepentingan mempermudah penanganan nada, Arduino menyediakan file bernama
Isinya adalah sejumlah konstanta yang mendefinisikan nama-nama untuk frekuensi. Isi file tersebut seperti berikut:
Sketch: pitches.h
/*****************
*Public Constants
*****************/
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 13
#define NOTE_D2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_D2 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_ E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_ A7 3520
#define NOTE_ AS7 3729
#define NOTE_ B7 3951
#define NOTE_C8 4186
#define NOTE_ CS8 4435
#define NOTE_D8 4699
#define NOTE_ DS8 4978
Contoh berikut menunjukkan penggunaan tone ( ) dengan tiga argumen:
tone (8, NOTE G7, durasi) ; delay (durasi) ;
Pada contoh di atas, durasi (misalnya berupa 200) diperlukan di tone ( ) dan delay ( ) , Pertama, durasidi tone ( ) menentukan lama nada dimainkan. Kedua, durasi di delay ( ) digunakan untuk menunggu sampai suara berakhir sebelum beralih untuk membuat pernyataan di berikutnya dijalankan. Tentu saja, untuk menggunakan konstanta NOTE G7, perintah berikut diperlukan untuk menyertakan file pitches . h:
#include “pitches”
11.2 Membuat Suara dengan Piezo Disk
salah satu komponen yang dapat digunakan untuk mengeluarkan suara adalah piezo disk atau piezoelectric disk (Gambar 11.1). Piezo disk merupakan sensor yang mengubah tekanan menjadi isyarat listrik dan menimbulkan getaran atau suara.
Catatan
Jika Anda bermaksud menggunakan pitches . h, salinlah sekali saja file tersebut yang berada di folder C : \ Program Files (x86) \ Arduino\examples \ 02 . Digital \ toneMe10dy ke folder tempat Anda menaruh sketch.
Gambar 11.1 Piezo disk
sebagai contoh, piezo disk dapat digunakan sebagai alat untuk mendeteksi ketukan ataupun sebagai pengganti buzzer. Contoh penggunaan piezo disk untuk mendeteksi ketukan dibahas di Subbab 11.6. Adapun penggunaannya sebagai buzzer dapat dipraktikkan dengan menggunakan rangkaian seperti terlihat di Gambar 11.2. Dalam hal ini, kabel yang terhubung ke bagian tepi dihubungkan ke GND milik Arduino, sedangkan kabel yang terhubung di tengah piezo disk dihubungkan ke pin 8 melalui perantaraan R = 200Q.
Gambar Il .2 Rangkaian untuk membuat piezo disk sebagai buzzer
Pengujian piezo disk sebagai buzzer dilakukan dengan menggunakan Sketch berikut
Sketch: piezzo
// ——————————————–
// Contoh penggunaan piezo disk
// untuk menghasilkan suara
// ——————————————–
const int PIN PIEZO=8;
void setup()
{
}
void loop()
{
tone(PIN_PIEZO, 3000, 200);
delay(200);
tone(PIN_PIEZO, 2000, 400);
delay(400);
}
Dengan cara seperti suara dengan frekuensi 3000Hz dan 2000Hz akan diperdengarkan secara bergantian.
11.3 Menggunakan Buzzer
Buzzer atau kadang dinamakan piezo buzzer ataupun piezo speaker adalah jenis speaker dengan diameter sekitar 1 cm (Gambar 11.3). Suara yang dikeluarkan sekitar 95dB.
Gambar 11.3 Buzzer
Untuk menguji rangkaian dengan buzzer, Sketch piezo yang digunakan untuk menguji piezo disk bisa digunakan
11.4 Menggunakan Speaker
Untuk mendapatkan kualitas suara yang baik, speaker perlu digunakan. Contoh speaker diperlihatkan di Gambar 11.5. Contoh rangkaian yang menggunakan speaker diperlihatkan di Gambar 11.6. Dalam hal ini, speaker dipasang seri dengan potensiometer 10K yang berguna untuk mengatur suara di speaker.
Gambar 11.5 Contoh speaker
Untuk menguji rangkaian di deparı, Anda bisa menggunakan contoh yang disediakan di Arduino. Caranya sebagai berikut.
Di Arduino İDE, klik pada menu File.
Sorot pada Examples dan kemudian pada 02.Digital. Anda akan menjumpai tampilan seperti terlihat di Gambar 11.7.
Klik pada toneMelody.
Unggahkan sketch ke papan Arduino.
Untuk mengulang nada-nada diperdengarkan kembali, tekan pada tombol Reset yang berada di papan Arduino.
11.5 Alarm Menggunakan Sensor Ultrasonik
Contoh aplikasi yang melibatkan buzzer diperlihatkan di Gambar 11.8 dan Gambar 11.9. Rangkaian melibatkan sensor ultrasonik, yang akan digunakan untuk mengendalikan buzzer. Jika sensor terhalangi oleh suatu benda (misalnya ada orang berdiri di depan sensor) dalam jarak satu meter atau kurang, buzzer aka dibunyikan. Untuk keadaan sebaliknya, buzzer akan dimatikan.
200 ohm
Gambar 11.8 Rangkaian buzzer dan sensor ultrasonic
Gambar 11.9 Sensor ultrasonik untuk mengendalikan buzzer
Untuk mengujinya, silakan gunakan sketch berikut :
Sketch: buzzer
// ——————————————–
//contoh penggunaan sensor ultrasonik
// untuk membuat alarm
// ——————————————–
const int PIN_PIEZO=8;
const int PIN_TRIG=13;
const int PIN_ECHO = 12;
void setup()
{
pinMode(PIN_PIEZO,OUTPUT);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
Serial.begin(9600);
}
void loop()
{
// Berikan isyarat HIGH pada PIN_trig 10 mikrodetik
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10); // Tunda 10 mikrodetik
digitalWrite(PIN_TRIG,LOW);
// Baca hasilnya di PIN_echo
d0uble selang =pulseIn(PIN_ECHO,HIGH);
// Hitung jarak yang diperoleh
d0uble jarak=0.0343 *(selang /2);
// Kirim info ke port serial
Serial.println(jarak);
// Bunyikan buzzer kalau pada jarak hingga 1 meter
// di depan ada halangan
if (jarak>0&& jarak <=100)
{
tone(PIN_PIEZO,300, 200);
delay(500);
}
delay(500);
}
Dasar perhitungan jarak pada penggunaan sensor ultrasonik telah dibahas di Bab 7. Setelah jarak antara sensor dan objek diperoleh, dua pernyataan berikut akan dijalankan sekiranya jarak kurang dari atau sama 0 dengan 100 cm:
tone (PIN PIEZOI 300/ 200)
delay (500) ;
1.6 Piezo Disk untuk Mendeteksi Ketukan
Selain sebagai keluaran, piezo disk juga dapat bertindak sebagai sensor untuk mendeteksi ketukan (misalnya di pintu). Untuk keperluan ini, Anda bisa menyusun rangkaian seperti terlihat di Gambar 11.10.1 Perhatikan, piezo disk dihubungkan ke pin analog A0.
Untuk mengujinya, silakan gunakan sketch berikut :
Sketch: buzzer
// ——————————————–
// Contoh penggunaan piezo disk
// sebagai sensor ketukan
// ——————————————–
const int PIN LED=12;
const int PIN PIEZO=0;
Boleh diatur untuk mendapatkan Nilai yang tepat
const int AMBANG =100;
void setup()
{
Serial.begin(9600); pinMode(PIN_LED, OUTPUT);
}
void loop()
{
// Baca nilai dari sensor ketukan int nilai = analogRead(PIN PIEZO);
// Kirim ke port serial
Serial.print1n(nilai);
// Periksa nilai sensor terhadap ambang if (nilai>=AMBANG)
{
digitalWrite(PIN_LED, HIGH);
delay (2000);
digitalWrite(PIN_LED, LOW);
}
delay (100);
}
Sketch di atas membaca nilai yang dihasilkan oleh piezo disk melalui:
int ni lai — analogRead(PIN PIEZO) ;
Nilai yang terbaca diperiksa. Sekiranya, nilainya lebih besar atau sama dengan nilai AMBANG, pernyataanpernyataan berikut dijalankan:
digitałwrite (PIN LED, HIGH) ;
delay (2000) ;
digitalWrite (PIN LED, LOW) ;
Hal iłu akan membuat LED dinyalakan selama 2 detik.
Untuk mengujinya, tempelkan piezo disk pada papan tripleks. Kemudian, ketuk-ketuk pada papan tersebut. Pantaulah nilai sensor di PC. Semestinya, ketika ketukan keras terjadi, LED akan menyala. Contoh hasil pengujian diperlihatkan di Gambar 11.11.
11.7 Sensor Suara
Sensor suara berguna untuk mendeteksi keberadaan suara. Salah satu modul berikut:sensor suara diperlihatkan di Gambar 11.12. Modul ini mengandung empat pin dengan rincian seperti
A0: pin yang mengeluarkan nilai analog dan perlu dihubungkan ke pin analog Arduino;
GND pin ini perlu dihubungkan ke ground Arduino;
Vcc: pin ini perlu dihubungkan ke pin 5V pada Arduino;
D0 pin yang mengeluarkan nilai digital dan perlu dihubungkan ke pin digital Arduino.
Modul tersebut mengandung mikrofon dan penguat suara untuk mendeteksi keberadaan suara .
Gambar 11.12 Modul sensor suara
Contoh rangkaian untuk menguji sensor suara diperlihatkan di Gambar 11.13. Untuk mengujinya, Anda bisa menggunakan sketch suara.
Gambar 11.13 Rangkaian yang menghubungkan sensor suara dan Arduino
Gambar 11.14 Rangkaian aktual yang menghubungkan sensor suara dan Arduino
Sketch: suara
// ——————————————–
// Contoh untuk memantau suara dengan sensor suara
// ——————————————–
const int PIN ANALOG=0;
const int PIN DIGITAL =12;
void setup()
{
Serial.begin(9600);
pinMode(PIN DIGITAL, INPUT);
}
void loop()
{
int A0= analogRead(PIN_ANALOG);
int d0 = digitalRead(PIN_DIGITAL);
Serial.print(d0);
Serial.print(“-“);
Serial.println(A0);
delay(500);
}
Sketch suara sekadar membaca data digital dan analog dari sensor suara dan kemudian mengirimkan ke port Serial. COntoh hasil pengujian diperlihatkan di Gambar 11.15.
Gambar 11.15 Hasil pengujian sensor suara
11.8 Tepuk Tangan Sebagai Perintah
Dengan menggunakan sensor şuara dimungkinkan untuk membuat şuara tepuk tangan sebagai perintah. Sebagai contoh, tepuk tangan dapat digunakan untuk menyalakan LED beberapa detik. Untuk mempraktikkannya, Anda bisa menyusun rangkaian seperti terlihat di Gambar 11.16 terlebih dahulu.
Gambar 11.16 Rangkaian untuk mencoba tepuk tangan untuk menyalakan LED
Selanjutnya,Anda bisa mengujinya dengan menggunakan sketch berikut: Sketch: tepuk
// ——————————————–
// contoh untuk menyalakan LED beberapa detik
// kalau ada tepukan atau suara keras
// ——————————————–
const int PIN_LED=13; //PIN_untuk LED
const int NILAI_TENGAH=512; // Nilai tengah untuk port analog
const int JUMLAH_SAMPEL=128; //Cacah pembacaan isyarat
const int AMBANG =25; //Nilai ambang untuk menyalakan LED
const int INTERVAL =3000; // Lama LED menyala dalam milidetik
long waktuAwal = 0;
void setup()
{
pinMode(PIN_LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
int nilaiAnalog,isyarat;
long reratalsyarat;
long totalIsyarat = 0;
for (int j = 1; j <= JUMIAH_SAMPEL;j++)
nilaiAnalog = analogRead(0);
isyarat = abs(nilaiAnalog -NILAI_TENGAH);
totalIsyarat += isyarat;
rerataIsyarat = totalIsyarat/ JUMLAH_SAMPEL;
int waktuSekarang = millis();
if (rerataIsyarat > AMBANG)
digitalWrite(PIN_LED, HIGH); // LED menyala waktuAwal = waktuSekarang;
else
if (Abs(waktuSekarang -waktuAwal) > INTERVAL)
digitalWrite(PIN_LED, LOW); // LED mati
Serial.println(rerataIsnyarat); // Kirim ke port serial
Beberapa konstanta didefinisikan di sketch tepuk.
PIN LED menyatakan pin untuk LED, yaitu pin 13.
NILAI TENGAH menyatakan nilai tengah untuk suara (yaitu di pertengahan 0 dan 1023). Nilai di konstanta ini menyatakan nilai 0 untuk gelombang suara.
JUMLAH_SAMPEL menyatakan cacah suara dari sensor yang akan dihitung untuk rata-rata amplitud0 suara yang dicuplik. Memperoleh
AMBANG menyatakan nilai rata-rata amplitud0 yang dijadikan sebagai ambang dalam pengambilan keputusan untuk menyalakan LED.
INTERVAL menyatakan lama waktu dalam milidetik untuk menyalakan LED.
Di setup ( ) , pernyataan berikut digunakan untuk menyatakan bahwa nilai pin bisa diubah:
pinMode (PIN LED, OUTPUT) ;
Nilai HIGH atau LOW digunakan untuk mengendalikan LED yang terpasang di pin tersebut. Adapun
Serial.begin (9600) ;
dimaksudkan agar nilai rata-rata dari sensor suara dapat dipantau di Serial Monitor.
Pernyataan berikut digunakan untuk memperoleh jumlah nilai dari sensor sebanyak JUMLAH_SAMPQ
long totallsyarat 0;
for (int j – 1; j <= JUMLAH SAMPEL; j++)
nil a i Analog — analogRead (0) ; isyarat – abs (nil alAnalog – NILAI TENGAH) ; totallsyarat += isyarat;
Variabel waktuAwal akan diisi dengan waktuSekarang untuk kepentingan penghitungan lama penyalaan LED. WaktuSekarang diperoleh melalui:
int waktuSekarang = millis ( ) ;
Jika kondisi reratalsyarat > AMBANG bernilaifalse, bagian else akan dijalankan. Pada bagian else ini, keputusan untuk mematikan LED ditangani oleh:
if (Abs(waktuSekarang -waktuAwal) > INTERVAL)
digitalWrite(PIN_LED, LOW); // LED mati
Hal itu dilakukan jika selisih antara waktuSekarang dan waktuAwal melebihi INTERVAL.
Gambar 11.17 memperlihatkan contoh pemantauan hasil sketch tepuk saat tidak ada tepuk tangan.
11.9 Perekam Suara
Untuk kepentingan merekam suara dan kemudian memainkan kembali rekaman suara, modul perekam suara ISD1820 dapat digunakan. Namun, suara yang dapat direkam terbatas hanya sekitar 10 detik. Modul telah dilengkapi dengan speaker 0,5 Watt 8 ohm. Bentuknya dapat dilihat di Gambar 11.18.
Pin SPI dihubungkan ke speaker. Adapun enam pin di kiri mempunyai fungsi seperti berikut:
VCC : tegangan 3V-5V DC;
GND: ground;
FT: Feed through (jika HIGH, speaker akan memperdengarkan dari suara luar, yang ditangkap mikrofon, atau jika LOW );
P-L : jika bernilai HIGH, suara akan dimainkan sampai akhir; P-E: Suara hanya diperdengarkan ketik pin bernilai HIGH; v/ REC: suara direkam ketika pin bernilai HIGH saja.
Pengujian Perekam Suara Tanpa Arduino
Modul perekam suara IS1820 dapat diuji tanpa menggunakan Arduino. Caranya, hubungkan pin VCC ke sumber tegangan +5V dan pin GND ke ground. Selanjutnya, tekanlah tombol REC dan jangan dilepaskan. Saat itulah Anda bisa berbicara di depan mikrofon. Jika sudah selesai, lepaskan penekanan pada tombol REC. Untuk memainkan suara, tekan tombol PLAYE (tanpa perlu menekan terus). Suara akan dimainkan sampai akhir suara dijumpai. Kalau hanya ingin memainkan suara sesaat (hanya ketika tombol ditekan), tekanlah tombol PLAYL.
Pengujian Perekam Suara dengan Arduino
Untuk menguji perekam suara dengan Arduino, susunlah rangkaian seperti terlihat di Gambar 11.19. Setelah itu, ujilah dengan menggunakan sketch recplay.
Sketch: recplay
// ——————————————–
// Contoh penggunaan modul perekam suara ISD1820
// untuk merekam dan memainkan suara
// ——————————————–
Contoh penggunaan modul perekam suara ISD1820
untuk merekam dan memainkan suara
const int PIN_REC=2;
const int PIN_PLAYE=3;
const int PIN_PLAYL=4;
const int PIN_FT=5;
void setup () {
serial.begin(9600);
pinMode(PIN_REC,OUTPUT);
pinMode(PIN_PLAYE,OUTPUT);
pinMode (PIN_PLAYL, OUTPUT);
pinMode (PIN_FT, OUTPUT);
rekam suara();
play_e();
play 1();
ft();.
void rekam suara(){
Serial.println(“Siap-siap untuk berbicara di depan mikrofon”);;
Serial.println(“Sampai ada perintah dari saya untuk memulai.”);
Serial.println(“Tunggu·····”)
Serial.println();
delay(10000);
serial.println(“Yak! Silakan berbicara selama 10 detik!”);
// Rekam
digitalWrite(PIN_REC,HIGH);
delay(10000);
// Selesai
digitalWrite(PIN_REC, LOW);
}
void loop()
{
// Tak ada instruksi
void play_e()
{
Serial.print1n(“Dengarkan suara sampai berakhir…”);
digitalWrite(PIN_PLAYE, HIGH);
delay(500);
digitalWrite (PIN_PLAYE, LOW);
}
void play 1()
{
Serial.println(“Dengarkan suara dalam lima detik..”);
digitalWrite(PIN_PLAYL,HIGH);
delay(5000);
digitalWrite(PIN_PLAYL,LOW);
}
void ft()
Serial.println(“Mikrofon menangkap isyarat dari luar selama 10 detik”);
Serial.println(“Suara tidak direkam”);
digitalWrite(PIN_FT, HIGH);
delay(10000);
digitalWrite(PIN_FT, LOW); //Hentikan menangkap isyarat luar
Contoh pengujian sketch recplay diperlihatkan di Gambar 11.20
Catatan
Jangan meletakkan perintah record di loop ( ) . Hal ini disebabkan perekaman mempunyai batas usia, yaitu sekitar 100.000 kali.
Pengembangan Alarm Ultrasonik
contoh berikut adalah pengembangan alarm ultrasonik yang dibahas di depan. Dalam hal ini, suara akan diambil dari perekam suara. Anda bisa merekam suara, misalnya diisi dengan “Assalamualaikum”. rangkaian seperti terlihat di Gambar 11.21 perlu disusun terlebih dahulu.
Selanjutnya ,sketch berikut dapat digunakan untuk menguji rangkaian di atas: Sketch: ultraplay
// ——————————————–
// Contoh penggunaan sensor ultrasonik
// untuk memainkan suara di modul perekam suara ISD1820
// ——————————————–
const int PIN_PLAYE =3;
const int PIN_TRIG =13;
const int PIN_ECHO=12;
const int INTERVAL=5000; // selang dalam milidetik
int waktuAwal=0;
void setup(){
Serial.begin(9600);
pinMode(PIN_TRIG,OUTPUT);
pinMode(PIN_ECHO,INPUT);
pinMode(PIN_PLAYE, OUTPUT);
void loop()
{
// Berikan isyarat HIGH pada pin trig 10 mikrodetik
digitalWrite(PIN TRIG, HIGH); // Tunda 10 mikrodetik
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Baca hasilnya di pin echo
d0uble selang = pulseIn(PIN_ECHO,HIGH);
// Hitung jarak yang diperoleh
d0uble jarak=0.0343 *(selang / 2);
// Kirim info ke port serial
Serial.println(jarak);
// Bunyikan suara dari modul perekam suara
if (jarak> 0&& jarak <=1() && abs(waktuAwal – millis()) > INTERVAL)
{
Serial.println(“Play”);
digitalWrite(PIN_PLAYE, HIGH);
delay(500);
digitalWrite(PIN PLAYE, LOW);
waktuAwal = millis();
}
}
Kode yang membedakan dengan sketch buzzer di depan terletak pada penanganan untuk membunyikan speaker yang terhubung ke modul perekam suara, yakni:
if (jarak > 0 && jarak <= 100 &&
{
abs (waktuAwa1 — milliÅ ( ) ) > INTERVAL)
Serial . print In (“Play”) ;
digitalWrite (PIN PLAYE, HIGH) ;
delay (500) ;
digitalWrite (PIN PLAYE, LOW) ;
waktuAwa1 = millis ( ) ;
}
Kode di atas hanya akan membuat suara di perekam suara dimainkan di speaker hanya kalau waktu selama INTERVAL terpenuhi. Artinya, kalau seseorang berdiri terus di depan sensor, hanya per suara akan terdengar setelah waktu INTERVAL terlampaui.
Penanganan Getaran dengan Sensor Vibrasi
deteksi getaran bertindak seperti saklar. Nilai vang dihasilkan HIGH kalau ada tekanan vang luar biasa sensornya atau ada perubahan kecepatan yang mencapai kekuatan sentrifuga’nya. Modul mengandung getaran vang terbuat dari pipa logam dan plastik dan mempunyai sensitivitas tinggi tanpa terpengaruh suara eksternal. Hal yang terjadi sesungguhnya, hambatan berubah ketika ada getaran. Dalam keadaan statis, isyarat yang diberikan oleh modul berupa LOW. Contoh modul deteksi getaran diperlihătkan di Gambar 11,22. Dengan menggunakan analogRead ( ) , nilai analog bisa diperoleh. Untuk jenis vang tain, harap perhatikan informasi spesifik penggunaannya.
Gambar 11.22 Modul deteksi getaran keluaran Meeeno
Cara menghubungkan modul seperti Yang terlihat di Gambar 11.2 dengan Arduino sebagai berikut:
G dihubungkan ke ground;
V dihubungkan ke sumber tegangan SV;
S dihubungkan misalnya ke pin D3.
Sketch: vibrasi
// ——————————————–
//Contoh penggunaan sensor vibrasi
// ——————————————–
const int PIN_SINYAL = 3;
void setup()
{
Serial.begin(9600);
pinMode(PIN_SINYAL, INPUT);
}
void loop()
{
// Baca sensor
int dataSensor =analogRead(PIN_SINYAL);
Serial.println(dataSensor);
delay(100);
}
Contoh hasil pengujian ditunjukkan di Gambar 11.23. Pada contoh tersebut, nilai menaik karena ada guncangan yang semakin mengeras.