Sistem Otomatis Lampu Belajar dan Kipas Pendingin Berbasis Kehadiran dan Suara
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.
Berikut adalah beberapa tujuan yang mungkin menjadi alasan di balik desain lampu belajar otomatis ini:
- 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.
- 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.
- Efisiensi: Karena aktif dengan menggunakan sensor, pengguna
dapat menghemat waktu untuk mencari saklar dan menghidup matikan lampu
sehingga lampu ini lebih efisien.
- 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.
- 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.
- 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
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.
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:
- 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.
- clear()
Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak
ada tulisan yang ditapilkan pada LCD.
- 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.
- 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.
- Download library yang diperlukan pada bagian download dalam blog.
- Buka proteus yang sudah diinstal untuk membuat rangkaian.
- Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
- Buka Arduino IDE yang sudah diinstal.
- Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
- "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
- Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
- Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
- Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
- Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
- Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
- Jalankan simulasi di Proteus.
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.
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(); } |
video rangkaian demo
f) Download File [KEMBALI]
Download rangkaian klik disiniDownload HMTL klik disini
Download listing program klik disini
Download video simulasi rangkaian klik disini
- Download Library
Download library PIR klik disini
- Download datasheet
Download datasheet IR Sensor klik disini
Tidak ada komentar:
Posting Komentar