Kamis, 13 Juni 2024

Sistem Otomatis Lampu Belajar dan Kipas Pendingin Berbasis Kehadiran dan Suara



 Sistem Otomatis Lampu Belajar dan Kipas Pendingin Berbasis Kehadiran dan Suara

Pendahuluan [KEMBALI]

Latar belakang di balik desain lampu belajar otomatis berbasis kehadiran dapat dilihat dari beberapa aspek, yaitu:

1. Ketidakpraktisan lampu belajar manual:

  • Lampu belajar manual sering kali dibiarkan menyala saat tidak digunakan, sehingga memboroskan energi dan meningkatkan tagihan listrik.
  • Pengguna harus repot-repot menyalakan dan mematikan lampu secara manual, yang dapat mengganggu fokus dan konsentrasi.

2. Kebutuhan akan solusi yang efisien dan hemat energi:

  • Meningkatnya kesadaran akan pentingnya hemat energi mendorong terciptanya solusi yang lebih efisien dalam penggunaan energi.
  • Lampu belajar otomatis hadir sebagai solusi yang dapat membantu menghemat energi dan mengurangi tagihan listrik.

3. Peningkatan fokus dan konsentrasi saat belajar:

  • Cahaya lampu yang tepat dapat membantu meningkatkan fokus dan konsentrasi pengguna saat belajar.
  • Lampu belajar otomatis dapat membantu pengguna mendapatkan cahaya yang tepat dengan cara yang mudah dan praktis.
TUJUAN [KEMBALI]
  • Berikut adalah beberapa tujuan yang mungkin menjadi alasan di balik desain lampu belajar otomatis ini:

    1. Menghemat energi: Lampu belajar otomatis menggunakan sensor kehadiran, seperti sensor IR yang akan mendeteksi keberadaan seseorang, apabila seseorang dalam range jarak yang di atur maka lampu akan menyala sensor. Dengan menggunakan sensor ini, lampu hanya akan menyala ketika ada orang di dekatnya, dan akan mati secara otomatis ketika tidak ada kehadiran. Hal ini membantu menghemat energi dengan menghindari penggunaan lampu yang tidak perlu saat tidak ada orang di ruangan.
    2. Kenyamanan: Dengan menggunakan sensor kehadiran, lampu belajar otomatis dapat memberikan kenyamanan bagi pengguna. Lampu akan menyala secara otomatis ketika ada orang di ruangan, sehingga pengguna tidak perlu mencari saklar atau menyalakan lampu secara manual. Ini membuat penggunaan lampu menjadi lebih praktis dan nyaman.
    3. Efisiensi: Karena aktif dengan menggunakan sensor, pengguna dapat menghemat waktu untuk mencari saklar dan menghidup matikan lampu sehingga lampu ini lebih efisien.
    4. Pengendalian suhu: Selain lampu, desain ini juga mencakup kipas pendingin yang dapat dihidupkan menggunakan sound sensor. Dengan menggunakan sound sensor, orang yang sedang belajar di meja ini tidak perlu bangkit dari tempat duduk untuk menyalakan kipas, karena dapat diaktifkan dengan lentikan jari melalui deteksi dari sound sensor.

ALAT DAN BAHAN [KEMBALI]

1. Alat
1). Solder


2. Bahan 
1). Arduino uno

               
     Spesifikasi 


2). LCD 

         Spesifikasi :
  • Tegangan operasi LCD ini adalah 4.7V-5.3V
  • Ini mencakup dua baris di mana setiap baris dapat menghasilkan 16 karakter.
  • Pemanfaatan arus adalah 1mA tanpa lampu latar
  • Setiap karakter dapat dibangun dengan kotak 5×8 piksel
  • Alfanumerik LCD alfabet & angka
  • Apakah tampilan dapat bekerja pada dua mode seperti 4-bit & 8-bit
  • Ini dapat diperoleh dalam Lampu Latar Biru & Hijau
  • Ini menampilkan beberapa karakter yang dibuat khusus

            spesifikasi : 




        Sensor PIR (Passive Infra Red) adalah sensor yang dapat mendeteksi pancaran sinar infra merah secara pasif (menangkap radiasi infra merah dari objek bergerak tanpa perlu memancarkan sinar infra merah sendiri secara aktif.



        Sensor LM35
  
        Spesifikasi 

      • Sensitivitas suhu linier sebesar 10mV/C
      • Jangkauan maksimal suhu yang diukur antara -55 hingga 150 C.
      • Daerah kerja tegangan 4 hingga 30volt.
      • Arus kurang dari 60uA.
      • Ketidak linier-an kurang lebih 1/4 C.
        
       

Infrared Sensor

Sensor Infrared merupakan komponen elektronika yang dapat mendeteksi benda ketika cahaya infra merah terhalangi oleh benda. Sensor infared terdiri dari led infrared sebagai pemancar sedangkan pada bagian penerima biasanya terdapat foto transistor, fotodioda, atau inframerah modul yang berfungsi untuk menerima sinar inframerah yang dikirimkan oleh pemancar.




        Sensor Sound 



        Spesifikasi 
-         Sensitivitas dapat diatur (pengaturan manual pada potensiometer)
-         Condeser yang digunakan memiliki sensitivitas yang tinggi
-         Tegangan kerja antara 3.3V – 5V
-         Terdapat 2 pin keluaran yaitu tegangan analog dan Digital output
-         Sudah terdapat lubang baut untuk instalasi
-         Sudah terdapat indikator led


Sensor Touch 

Spesifikasi 


DASAR TEORI [KEMBALI]

1.     PWM (Pulse Width Modulation)

 

PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).


·       Duty Cycle = tON / ttotal

·       tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)

·       tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0)

·       ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang”

Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite();.

 

PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 x 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.


2.     ADC (Analog to Digital Converter)

 

ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.

Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A (A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);.

3.     Mikrokontroler

 


Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, serta tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang ke adaptor DC atau baterai untuk menjalankannya.


Setiap 14 pin digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Fungsi fungsi tersebut beroperasi di tegangan 5 volt. Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm.


4.     Komunikasi

4.1.  Universal Asynchronous Receiver Transmitter (UART)

 

UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.

 



 

Cara Kerja Komunikasi UART :

 

Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudian ditransfer secara parallel ke data bus penerima.

4.2.  Serial Peripheral Interface (SPI)

 

Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroler maupun antara mikrokontroler dengan peripheral lain di luar mikrokontroler.

·       MOSI : Master Output Slave Input artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.

·       MISO : Master Input Slave Output artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.

·       SCLK : Clock jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.

·       SS/CS : Slave Select / Chip Select adalah jalur master memilih slave mana yang akan dikirimkan data.

 


 

Cara Kerja Komunikasi SPI :

 

Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.

4.3.  Inter Integrated Circuit (I2C)

 

Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.




Cara Kerja Komunikasi I2C :

 

Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop.

·       Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.

·       Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL.

·       R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave)

·       ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver.

 

5. LCD



        LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. Adapun fitur yang disajikan dalam LCD ini adalah terdiri dari 16 karakter dan 2 baris, mempunyai 192 karakter tersimpan, terdapat karakter generator terprogram, dapat dialamati dengan mode 4 bit dan 8 bit, dilengkapi dengan back light.

        Proses inisialisasi pin arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal (2, 3, 4, 5, 6, 7), dimana LCD merupakan variabel yang dipanggil setiap kali intruksi terkait LCD akan digunakan. 

       Pada Proyek Akhir ini LCD dapat menampilkan karakternya dengan menggunakan library yang bernama LiquidCrystal. Berikut ada beberapa fungsifungsi dari library LCD: 

  1. begin() Untuk begin() digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran kolom dan baris LCD. Pemanggilan begin() harus dilakukan terlebih dahulu sebelum memanggil instruksi lain dalam library LCD. Untuk syntax penulisan instruksi begin() ialah sebagai berikut. lcd.begin(cols,rows) dengan lcd ialah nama variable, cols jumlah kolom LCD, dan rows jumlah baris LCD. 
  2. clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.
  3. setCursor() 19 Instruksi ini digunakan untuk memposisikan cursor awal pesan text di LCD. Penulisan syntax setCursor() ialah sebagai berikut. lcd.setCursor(col,row) dengan lcd ialah nama variable, col kolom LCD, dan row baris LCD. 
  4. print() Sesuai dengan namanya, instruksi print() ini digunakan untuk mencetak, menampilkan pesan text di LCD. Penulisan syntax print() ialah sebagai berikut.lcd.print(data) dengan lcd ialah nama variable, data ialah pesan yang ingin ditampilkan.

 

6. Motor DC

 


 

    Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalah Yoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), ArmatureWinding (Kumparan Jangkar), Commutator (Komutator)dan Brushes (kuas/sikat arang).

 

    Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.

 




 

    Untuk menggerakannya lagi, tepat pada saat kutub kumparan berhadapan dengan kutub magnet, arah arus pada kumparan dibalik. Dengan demikian, kutub utara kumparan akan berubah menjadi kutub selatan dan kutub selatannya akan berubah menjadi kutub utara. Pada saat perubahan kutub tersebut terjadi, kutub selatan kumparan akan berhadap dengan kutub selatan magnet dan kutub utara kumparan akan berhadapan dengan kutub utara magnet. Karena kutubnya sama, maka akan terjadi tolak menolak sehingga kumparan bergerak memutar hingga utara kumparan berhadapan dengan selatan magnet dan selatan kumparan berhadapan dengan utara magnet. Pada saat ini, arus yang mengalir ke kumparan dibalik lagi dan kumparan akan berputar lagi karena adanya perubahan kutub. Siklus ini akan berulang-ulang hingga arus listrik pada kumparan diputuskan.

7. Motor Servo 



Motor servo adalah jenis motor listrik yang dirancang untuk memberikan output yang presisi dalam menyelesaikan pergerakan tertentu. Motor ini dilengkapi dengan kontroler yang memungkinkan presisi tinggi dalam mengatur posisi atau sudut rotor. Prinsip kerja motor servo didasarkan pada umpan balik atau feedback yang terus-menerus dari posisi rotor.

Prinsip kerja motor servo:

1. Umpan Balik (Feedback): Motor servo menggunakan sensor umpan balik, seperti potensiometer, enkoder, atau resolver, untuk terus memonitor posisi atau sudut rotor.

2. Kontroler:

·       Kontroler servo menerima sinyal perintah untuk mencapai posisi tertentu.

·       Kontroler membandingkan posisi aktual (yang diberikan oleh sensor umpan balik) dengan posisi yang diminta.

3. Error Signal:

·       Jika terdapat perbedaan antara posisi aktual dan yang diminta, tercipta sinyal kesalahan (error signal).

4. Sinyal Penggerak (Drive Signal):

·       Kontroler menghasilkan sinyal penggerak yang disesuaikan berdasarkan error signal.

·       Sinyal penggerak mengontrol daya yang disuplai ke motor untuk mengoreksi perbedaan posisi.

5. Pergerakan Presisi:

·       Motor servo merespons dengan mengubah posisi rotor untuk mengurangi error posisi.

·       Proses ini berlanjut sampai posisi yang diminta tercapai.

Motor servo sering digunakan dalam aplikasi yang membutuhkan presisi tinggi, seperti robotika, peralatan CNC (Computer Numerical Control), peralatan audio profesional, dan banyak lagi. Keunggulan motor servo meliputi kemampuan untuk mengontrol kecepatan, torsi, dan posisi dengan sangat presisi, membuatnya ideal untuk aplikasi yang memerlukan akurasi dan kontrol yang tinggi.

 

8. Sensor PIR




PIR (Passive Infrared Receiver) merupakan sebuah sensor berbasiskan infrared. Akan tetapi, tidak seperti sensor infrared kebanyakan yang terdiri dari IR LED dan fototransistor. PIR tidak memancarkan apapun seperti IR LED. Sesuai dengan namanya ‘Passive’, sensor ini hanya merespon energi dari pancaran sinar inframerah pasif yang dimiliki oleh setiap benda yang terdeteksi olehnya. Benda yang bisa dideteksi oleh sensor ini biasanya adalah tubuh manusia

Diagram sensor PIR:




PIR (Passive Infrared Receiver) merupakan sebuah sensor berbasiskan infrared. Akan tetapi, tidak seperti sensor infrared kebanyakan yang terdiri dari IR LED dan fototransistor. PIR tidak memancarkan apapun seperti IR LED. Sesuai dengan namanya ‘Passive’, sensor ini hanya merespon energi dari pancaran sinar inframerah pasif yang dimiliki oleh setiap benda yang terdeteksi olehnya. Benda yang bisa dideteksi oleh sensor ini biasanya adalah tubuh manusia.

Sensor PIR ini bekerja dengan menangkap energi panas yang dihasilkan dari pancaran sinar inframerah pasif yang dimiliki setiap benda dengan suhu benda diatas nol mutlak. Seperti tubuh manusia yang memiliki suhu tubuh kira-kira 32 derajat celcius, yang merupakan suhu panas yang khas yang terdapat pada lingkungan. Pancaran sinar inframerah inilah yang kemudian ditangkap oleh Pyroelectric sensor yang merupakan inti dari sensor PIR ini sehingga menyebabkan Pyroelectic sensor yang terdiri dari galium nitrida, caesium nitrat dan litium tantalate menghasilkan arus listrik. Mengapa bisa menghasilkan arus listrik? Karena pancaran sinar inframerah pasif ini membawa energi panas. Prosesnya hampir sama seperti arus listrik yangterbentuk ketika sinar matahari mengenai solar cell.

Grafik Respon Pir terhadap suhu

 





Grafik sensor pir terhadap jarak, kecepatan,arah objek

 


 

9. Sensor Suhu LM35


 

Karakteristik dari Sensor LM35:

  • Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
  • Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC
  •  Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
  •  Bekerja pada tegangan 4 sampai 30 volt.
  •  Memiliki arus rendah yaitu kurang dari 60 µA.
  •  Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
  •  Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
  •  Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.

 


10. Infrared Sensor

Sensor Infrared adalah komponen elektronika yang dapat mendeteksi benda ketika cahaya infra merah terhalangi oleh benda. Sensor infared terdiri dari led infrared sebagai pemancar sedangkan pada bagian penerima biasanya terdapat foto transistor, fotodioda, atau inframerah modul yang berfungsi untuk menerima sinar inframerah yang dikirimkan oleh pemancar.

Grafik respon:

Grafik menunjukkan hubungan antara resistansi dan jarak potensial untuk sensitivitas rentang antara pemancar dan penerima inframerah. Resistor yang digunakan pada sensor mempengaruhi intensitas cahaya inframerah keluar dari pemancar. Semakin tinggi resistansi yang digunakan, semakin pendek jarak IR Receiver yang mampu mendeteksi sinar IR yang dipancarkan dari IR Transmitter karena intensitas cahaya yang lebih rendah dari IR Transmitter. Sementara semakin rendah resistansi yang digunakan, semakin jauh jarak IR Receiver mampu mendeteksi sinar IR yang dipancarkan dari IR Transmitter karena intensitas cahaya yang lebih tinggi dari IR Transmitter.

 

11. Sensor Sound





Sensor suara adalah sebuah alat yang mampu mengubah gelombang Sinusioda suara menjadi gelombang sinus energi listrik (Alternating Sinusioda Electric Current). Sensor suara berkerja berdasarkan besar/kecilnya kekuatan gelombang suara yang mengenai membran sensor yang menyebabkan bergeraknya membran sensor yang juga terdapat sebuah kumparan kecil di balik membran tadi naik & turun. Oleh karena kumparan tersebut sebenarnya adalah ibarat sebuah pisau berlubang-lubang, maka pada saat ia bergerak naik-turun, ia juga telah membuat gelombng magnet yang mengalir melewatinya terpotong-potong. Kecepatan gerak kumparan menentukan kuat-lemahnya gelombang listrik yang dihasilkannya. Sensor suara adalah sensor yang cara kerjanya merubah besaran suara menjadi besaran listrik, dan dipasaran sudah begitu luas penggunaannya. Komponen yang termasuk dalam Sensor suara yaitu electric condenser microphone atau mic kondenser.

Prinsip kerja : 

Sensor suara adalah sensor yang cara kerjanya yaitu merubah besaran suara menjadi besaran listrik. Sinyal yang masuk akan di olah sehingga akan menghasilkan satu kondisi yaitu kondisi 1 atau 0. Sensor suara banyak digunakan dalam kehidupan sehari-hari, Contoh Pengaplikasian sensor ini adalah yang bekerja pada system robot. Suara yang diterima oleh microfon akan di transfer ke pre amp mic, fungsi pre amp mic ini adalah untuk memperkuat sinyal suara yang masuk kedalam komponen.

Setelah sinyal suara diterima oleh preamp mic, kemudian di kirim lagi ke rangkaian pengkonfersi yang mana rangkaian ini berfungsi untuk merubah sinyal suara yang berbentuk sinyal digital menjadi sinya analog agar bisa dibaca oleh mikrokontroler. Jika sinyal tersebut diterima oleh mikro kontroler maka akan diolah sesuai dengan program yang dibuat, apakah robot akan berjalan atau berhenti.

Suara yang masuk direkam oleh komponen kemudian akan disimpan oleh memory. Sebagai contoh jika kita bertepuk tangan 1 kali maka akan dikenali sebagai kondisi 1 atau on sehingga robot dapat berjalan. Jika bertepuk tangan 2 kali maka robot akan mati atau mendapat sinyal kondisi 0. Penggunaan sinyal tergantung dari user bagaimana dia menggunakannya.

Kesensitifan  sensor suara dapat diatur, semakin banyak condensator yang digunakan pada pre amp maka akan semakin baik daya sensitive dari sensor suara tersebut. Begitu juga pada saat penggunaan suara harus dalam kondisi tertentu, karena jika terdapat suara lain yang masuk maka akan tidak dikenali oleh sensor, begitu pula frekuensi yang digunakan harus sesuai pada saat kita menginput suara awal dan input suara pada saat menjalankan program.

Grafik respon sensor:

 



12. Sensor Touch



         Digital Touch Sensor inilah salah satu saklar modern. Digital Touch Sensor merupakan sebuah modul sensor yang berfungsi seperti tombol/saklar, namun cara penggunaanya hanya perlu dengan menyentuhnya menggunakan jari kita. Pada saat disentuh oleh jari, sensor akan mendeteksi aliran arus listrik pada tubuh manusia karena tubuh manusia dapat mengalirkan listrik. Data akan berlogika 1 (HIGH) saat disentuh oleh jari dan akan berlogika 0 (LOW) saat tidak disentuh.

     Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.

    Grafik respon sensor :



Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.


a) Prosedur

  1. Download library yang diperlukan pada bagian download dalam blog.     
  2. Buka proteus yang sudah diinstal untuk membuat rangkaian.
  3. Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
  4. Buka Arduino IDE yang sudah diinstal.
  5. Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
  6. "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
  7. Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
  8. Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
  9. Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
  10. Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
  11. Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
  12. Jalankan simulasi di Proteus.
b) Hardware
    1. Laptop





c) Rangkaian Simulasi dan Prinsip kerja

Rangkaian saat mati Master
    Slave





Rangkaian Saat hidup
    Master

    Slave

Prinsip Kerja

Pada rangkaian master terdapat arduino master, baterai, relay, sensor sound, sensor LM35,sensor PIR, motor servo dan kipas sebagai output. Apabila sensor PIR mendeteksi adanya gerakan maka ia akan berlogika satu dan mengaktifkan atau menghidupkan kipas.Kemudian motor servo diletakkan dibawah kipas sebagai penggerak arah kipas, apabila sensor sound mendeteksi adanya suara maka ia akan menggerakkan motor servo yang akan memutar kipas sebesar 45 derajat. Sensor LM35 akan mendeteksi suhu dan menampilkannya pada LCD yang terhubung pada arduino slave.

Pada rangkaian arduino slave terdapat arduino slave, lampu LED, baterai, relay,sensor infrared,sensor touch dan LCD. Lampu LED akan aktif apabila sensor infrared mendeteksi adanya orang di meja belajar, dan berlogika and bersama sensor touch, jadi apabila sensor IR dan touch sama sama berlogika 1 maka,lapu LED baru akan menyala, namun apabila hanya satu saya yang berlogika 1 maka lampu tidak menyala.


d) Flowchart dan Program

Flowchart Master
Flowchart Slave





Program 
                   

A.    Master

#include <Servo.h>

 

// Infrared sensor and output variables

const int pinSensorPIR = 2;

const int pinOutput = 13;

 

// Temperature sensor variables

const int temperatureSensorPin = A2; // Pin untuk sensor suhu

 

// Sound sensor and servo variables

const int soundSensorPin = 3;  // pin untuk sensor suara

const int servoPin = 9;  // pin untuk servo

 

Servo myservo;  // membuat objek servo

bool isRunning = false;  // untuk mengetahui status servo (berputar atau berhenti)

unsigned long previousMillis = 0;  // untuk menghitung waktu

const long interval = 1000;  // interval waktu untuk gerakan servo (1 detik)

int pos = 0;  // posisi servo

bool increasing = true;  // untuk melacak arah gerakan servo

 

void setup() {

  // PIR sensor setup

  pinMode(pinSensorPIR, INPUT);

  pinMode(pinOutput, OUTPUT);

 

  // Temperature sensor setup

  Serial.begin(9600); // Initialize Serial communication

  pinMode(temperatureSensorPin, INPUT);

 

  // Sound sensor and servo setup

  pinMode(soundSensorPin, INPUT);

  myservo.attach(servoPin);

}

 

void loop() {

  // PIR sensor and output control

  int sensorValuePIR = digitalRead(pinSensorPIR);

  if (sensorValuePIR == HIGH) {

    digitalWrite(pinOutput, HIGH);

  } else {

    digitalWrite(pinOutput, LOW);

  }

 

  // Temperature sensor reading

  float temperature = readTemperature();

 

  // Send temperature data via UART

  Serial.print("Temperature: ");

  Serial.print(temperature);

  Serial.println("C");

 

  // Sound sensor and servo control

  int sensorValueSound = digitalRead(soundSensorPin);

 

  if (sensorValueSound == HIGH) {

    delay(50);  // debounce delay

    sensorValueSound = digitalRead(soundSensorPin);

    if (sensorValueSound == HIGH) {

      isRunning = !isRunning;

      while (digitalRead(soundSensorPin) == HIGH) {

        // tunggu sampai tepukan selesai

      }

      delay(50);  // debounce delay

    }

  }

 

  if (isRunning) {

    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis >= interval) {

      previousMillis = currentMillis;

      if (increasing) {

        pos += 45;

        if (pos >= 180) {

          pos = 180;

          increasing = false;

        }

      } else {

        pos -= 45;

        if (pos <= 0) {

          pos = 0;

          increasing = true;

        }

      }

      myservo.write(pos);

    }

  }

}

 

float readTemperature() {

  // Read the analog value from temperature sensor

  int sensorValue = analogRead(temperatureSensorPin);

 

  // Convert analog value to temperature in Celsius

  float temperature = (sensorValue / 1023.0) * 5.0 * 100.0;

 

  return temperature;

}

 

B.    Slave

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

 

// Define LCD address and dimensions

#define LCD_ADDR 0x27

#define LCD_COLS 16

#define LCD_ROWS 2

 

LiquidCrystal_I2C lcd(LCD_ADDR, LCD_COLS, LCD_ROWS);

 

const int touchSensorPin = 2;  // Pin untuk sensor touch

const int irSensorPin = 3;    // Pin untuk sensor PIR

const int outputPin = 13;      // Pin output

 

void lcdSetup() {

  // Initialize LCD

  lcd.init();

  lcd.backlight();

}

 

void arduinoSetup() {

  pinMode(touchSensorPin, INPUT);  // Set pin sensor touch sebagai input

  pinMode(irSensorPin, INPUT);    // Set pin sensor IR sebagai input

  pinMode(outputPin, OUTPUT);      // Set pin output sebagai output

 

  // Initialize Serial communication

  Serial.begin(9600);

}

 

void lcdLoop() {

  if (Serial.available() > 0) {

    // Read incoming data from Arduino master

    String data = Serial.readStringUntil('\n');

 

    // Check if data starts with "Temperature: " (assuming this format)

    if (data.startsWith("Temperature: ")) {

      // Extract temperature value

      String temperatureString = data.substring(13);

      float temperature = temperatureString.toFloat();

 

      // Display temperature on LCD

      lcd.clear();

      lcd.setCursor(0, 0);

      lcd.print("Temperature:");

      lcd.setCursor(0, 1);

      lcd.print(temperature);

      lcd.print("C");

    }

  }

}

 

void arduinoLoop() {

  int touchState = digitalRead(touchSensorPin);  // Membaca nilai sensor touch

  int irState = digitalRead(irSensorPin);      // Membaca nilai sensor IR

 

  if (touchState == HIGH && irState == HIGH) {

    digitalWrite(outputPin, HIGH);  // Menyalakan pin output jika kedua sensor HIGH

  } else {

    digitalWrite(outputPin, LOW);   // Mematikan pin output jika salah satu atau kedua sensor LOW

  }

}

 

void setup() {

  lcdSetup();

  arduinoSetup();

}

 

void loop() {

  lcdLoop();

  arduinoLoop();

}



e) Video Demo [KEMBALI]

video rangkaian demo





f) Download File [KEMBALI]

Download rangkaian klik disini
Download HMTL klik disini
Download listing program klik disini
Download video simulasi rangkaian klik disini
Download Flowchart klik disini
  • Download Library
Download library Arduino klik disini
Download library PIR
 klik disini
Download library IR sensor klik disini
Download Library LM35 Klik Disini
Download Library Sound klik disini
Download Library Touch klik disini
Download library LCD klik disini
  • Download datasheet 
Download datasheet Arduino UNO klik disini
Download datasheet PIR Sensor klik disini
Download datasheet IR Sensor klik disini
Download datasheet LM35 Sensor Klik disini
Download datasheet Sound Sensor klik disini
Download datasheet Touch Sensor klik disini
Download datasheet LCD klik disini






Sistem Otomatis Lampu Belajar dan Kipas Pendingin Berbasis Kehadiran dan Suara

[menuju akhir] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percob...