Kontrol Kursi Relaksasi
Dalam era modern ini, gaya hidup yang penuh dengan aktivitas dan tekanan membuat tubuh manusia rentan mengalami kelelahan. Padatnya jadwal kerja dan tuntutan sehari-hari seringkali mengakibatkan stres dan ketegangan pada tubuh. Oleh karena itu, diperlukan suatu solusi inovatif untuk memberikan bentuk relaksasi yang efektif dan dapat diakses dengan mudah. Salah satu solusi yang menarik adalah pengembangan aplikasi alat kontrol kursi relaksasi.
Kontrol Kursi Relaksasi dengan implementasi motor servo menggunakan PWM, keypad, sensor detak jantung, sensor suhu LM35, dan sensor sentuhan merupakan inovasi yang membawa pengalaman duduk ke tingkat yang lebih tinggi. Dengan memadukan teknologi kontrol motor servo yang presisi melalui PWM, pengguna dapat menyesuaikan posisi duduk dan berbagai fitur kursi relaksasi dengan mudah melalui keypad. Sementara itu, sensor detak jantung memberikan dimensi kesehatan dengan memonitor tingkat detak jantung pengguna, sedangkan sensor suhu LM35 mengoptimalkan kenyamanan dengan menyesuaikan pemanas kursi berdasarkan suhu tubuh. Sensor sentuhan melengkapi pengalaman ini dengan memungkinkan pengguna berinteraksi secara intuitif dengan kursi.
TUJUAN [KEMBALI]- Memenuhi tugas Mikroprosesor dan Mikrokontroler
- Mempelajari Kontrol motor servo dengan PWM + keypad
- Mengetahui prinsip kerja dari motor servo dengan PWM + keypad
- Menjelaskan prinsip kerja Sensor Heart beat, sensor Touch dan sensor suhu.
- Mensimulasikan rangkaian Sensor Heart beat, sensor Touch dan sensor suhu.
- 12 tombol (dengan fungsi tergantung pada aplikasi).
- Konfigurasi 4 baris (input scanning) dan 3 kolom (output scanning).
- Kompatibel penuh dengan DT-51 Low Cost Series dan DT-AVR Low Cost Series. Mendukung DT-51 Minimum Systemver 3.0, DT-51 PetraFuz, DT-BASIC Series, dan sistem lain.
- Dilengkapi dengan contoh program.
- Dimensi : 9 cm (P) x 5,4 cm (L) x 1,8 cm (T)
- Perlengkapan : 1 buah DT-I/O 3 x 4 Keypad Module
8).Transistor NPN
1. Arduino Uno
Kontruksi
Arduino adalah platform perangkat keras (hardware) yang dirancang untuk memudahkan pengembangan dan prototyping proyek-proyek elektronik. Ini terdiri dari papan sirkuit cetak berukuran kecil yang dilengkapi dengan mikrokontroler dan sejumlah pin input/output yang dapat digunakan untuk menghubungkan sensor, aktuator, dan komponen elektronik lainnya.
Mikrokontroler pada papan Arduino adalah otak utama yang mengontrol berbagai komponen yang terhubung dengannya. Papan Arduino biasanya dilengkapi dengan berbagai macam varian mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology. Meskipun demikian, Arduino lebih sering dikaitkan dengan platform open-source yang dikelola oleh Arduino.cc.
Arduino memiliki beberapa komponen utama yang membentuk papan sirkuit mikrokontroler. Berikut adalah penjelasan tentang komponen-komponen utama Arduino:
- Mikrokontroler: Ini adalah otak utama dari Arduino yang melakukan semua operasi pengolahan data dan kontrol. Arduino menggunakan mikrokontroler sebagai pusat kendali, yang berfungsi untuk membaca input, menjalankan kode program, dan mengontrol output. Beberapa varian Arduino menggunakan mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology.
- Pin I/O: Arduino memiliki sejumlah pin input/output (I/O) yang digunakan untuk menghubungkan sensor, aktuator, dan komponen lainnya. Pin ini bisa berfungsi sebagai input untuk membaca data dari sensor atau output untuk mengontrol aktuator. Ada pin digital dan pin analog. Pin digital dapat berupa input atau output dengan nilai logika 0 (LOW) atau 1 (HIGH), sementara pin analog digunakan untuk membaca nilai analog seperti sensor suhu atau cahaya.
- Papan Sirkuit: Papan Arduino adalah substrat fisik tempat semua komponen terhubung. Papan ini biasanya terbuat dari bahan tahan lama dan dilengkapi dengan jalur tembaga yang menghubungkan komponen-komponen elektronik.
- Konektor USB: Banyak varian Arduino dilengkapi dengan konektor USB. Ini memungkinkan Anda untuk menghubungkan papan Arduino ke komputer, sehingga Anda dapat mengunggah kode program ke mikrokontroler dan berkomunikasi dengan papan melalui koneksi serial.
- Catu Daya: Arduino memerlukan catu daya untuk beroperasi. Ini bisa berasal dari komputer melalui kabel USB atau dari sumber daya eksternal seperti baterai atau adaptor listrik. Beberapa papan Arduino memiliki regulator tegangan yang memungkinkan papan menerima berbagai tingkat tegangan masukan.
- Konektor Listrik: Arduino umumnya memiliki pin header atau konektor yang memungkinkan Anda untuk menghubungkan kabel atau kawat ke pin I/O. Ini memudahkan Anda dalam menghubungkan sensor, aktuator, dan komponen lainnya ke papan Arduino.
- Kristal Osilator: Kristal osilator digunakan untuk menghasilkan sinyal osilasi yang diperlukan oleh mikrokontroler untuk menjalankan perhitungan waktu dan operasi lainnya.
- Tombol Reset: Tombol reset memungkinkan Anda untuk mengulang proses booting papan Arduino atau menghentikan eksekusi program yang sedang berjalan.
- Indikator LED: Beberapa varian Arduino memiliki indikator LED yang terhubung ke pin tertentu. LED ini dapat diatur dalam kode program untuk memberi tahu status atau kondisi papan, seperti aktif atau dalam mode tidur.
Semua komponen ini bekerja bersama-sama untuk menciptakan platform Arduino yang kuat dan serbaguna untuk mengembangkan berbagai proyek elektronik dan pemrograman.
2. Keypad
Modul keypad 3x4 merupakan suatu modul keypad berukuran 3 kolom x 4 baris. Modul ini dapat difungsikan sebagai input dalam aplikasi seperti pengaman digital, absensi, pengendali kecepatan motor, robotik, dan sebagainya. Penggunaan keypad dilakukan dengan cara menjadikan tiga buah kolom sebagai output scanning dan empat buah baris sebagai input scanning.
Cara kerja rangkaian Keypad 3x4:
- Apabila Kolom 1 diberi logika ‘0’, kolom kedua dan kolom ketiga diberi logika ‘1’ maka program akan mengecek tombol 1, 4, 7, dan *, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.
- Apabila Kolom 2 diberi logika ‘0’, kolom pertama dan kolom ketiga diberi logika ‘1’ maka program akan mengecek tombol 2, 5, 8, dan 0, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.
- Apabila Kolom 3 diberi logika ‘0’, kolom pertama dan kolom kedua diberi logika ‘1’ maka program akan mengecek tombol 3, 6, 9, dan #, sehingga apabila salah satu baris berlogika '0' maka ada tombol yang ditekan.
- Kemudian kembali ke semula, artinya program looping terus mendeteksi data kolom dan data baris, cara ini disebut scaning atau penyapuan keypad untuk mendapatkan saklar mana yang ditekan. (blog dari Furinkazen)
- Cahaya dan Penyerapan: Sensor PPG menggunakan cahaya untuk mengukur denyut jantung. Perangkat ini biasanya dilengkapi dengan dua lampu LED, satu cahaya merah dan satu cahaya inframerah. Kedua cahaya ini dipancarkan ke kulit pengguna.
- Penyerapan Cahaya oleh Hemoglobin: Ketika cahaya merah dan inframerah melewati kulit, sebagian dari cahaya tersebut diserap oleh hemoglobin dalam darah. Hemoglobin adalah protein pembawa oksigen dalam sel darah merah.
- Perubahan Volume Darah: Setiap kali jantung berkontraksi (sistole), volume darah di pembuluh darah meningkat, dan ketika jantung berelaksasi (diastole), volume darah berkurang. Ini menyebabkan perubahan pada jumlah cahaya yang diserap oleh hemoglobin.
- Refleksi Cahaya: Sebagian cahaya yang tidak diserap oleh hemoglobin akan dipantulkan kembali ke sensor. Sensor mengukur intensitas cahaya yang dipantulkan, dan perubahan-perubahan ini dicatat selama setiap siklus jantung.
- Sinyal PPG: Hasilnya adalah sinyal PPG yang merepresentasikan perubahan volume darah sepanjang waktu. Puncak-puncak pada sinyal PPG sesuai dengan setiap denyut jantung.
- Pemrosesan Sinyal: Sinyal PPG kemudian diproses oleh algoritma untuk mengidentifikasi puncak-puncak dan menghitung denyut jantung per menit (bpm).
Resistor merupakan komponen elektronika dasar yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian.Sesuai dengan namanya, resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Resistor memiliki simbol seperti gambar dibawah ini :
Resistor mempunyai nilai resistansi (tahanan) tertentu yang dapat memproduksi tegangan listrik di antara kedua pin dimana nilai tegangan terhadap resistansi tersebut berbanding lurus dengan arus yang mengalir, berdasarkan persamaan Hukum OHM :
Seri : Rtotal = R1 + R2 + R3 + ….. + Rn
Dimana :
Rtotal = Total Nilai Resistor
R1 = Resistor ke-1
R2 = Resistor ke-2
R3 = Resistor ke-3
Rn = Resistor ke-n
Paralel: 1/Rtotal = 1/R1 + 1/R2 + 1/R3 + ….. + 1/Rn
Dimana :
Rtotal = Total Nilai Resistor
R1 = Resistor ke-1
R2 = Resistor ke-2
R3 = Resistor ke-3
Rn = Resistor ke-n
Rumus dari Transitor adalah :
hFE = iC/iB
dimana, iC = perubahan arus kolektor
iB = perubahan arus basis
hFE = arus yang dicapai
Karakteristik Input
Transistor adalah komponen aktif yang menggunakan aliran electron sebagai prinsip kerjanya didalam bahan. Sebuah transistor memiliki tiga daerah doped yaitu daerah emitter, daerah basis dan daerah disebut kolektor. Transistor ada dua jenis yaitu NPN dan PNP. Transistor memiliki dua sambungan: satu antara emitter dan basis, dan yang lain antara kolektor dan basis. Karena itu, sebuah transistor seperti dua buah dioda yang saling bertolak belakang yaitu dioda emitter-basis, atau disingkat dengan emitter dioda dan dioda kolektor-basis, atau disingkat dengan dioda kolektor.
Bagian emitter-basis dari transistor merupakan dioda, maka apabila dioda emitter-basis dibias maju maka kita mengharapkan akan melihat grafik arus terhadap tegangan dioda biasa. Saat tegangan dioda emitter-basis lebih kecil dari potensial barriernya, maka arus basis (Ib) akan kecil. Ketika tegangan dioda melebihi potensial barriernya, arus basis (Ib) akan naik secara cepat.
Pemberian bias Ada beberapa macam rangkaian pemberian bias, yaitu: 1. Fixed bias yaitu, arus bias IB didapat dari VCC yang dihubungkan ke kaki B melewati tahanan R seperti gambar 58. Karakteristik Output.2.Self Bias adalah arus input didapatkan dari pemberian tegangan input VBB seperti gambar 60.
Sebuah transistor memiliki empat daerah operasi yang berbeda yaitu daerah aktif, daerah saturasi, daerah cutoff, dan daerah breakdown. Jika transistor digunakan sebagai penguat, transistor bekerja pada daerah aktif. Jika transistor digunakan pada rangkaian digital, transistor biasanya beroperasi pada daerah saturasi dan cutoff. Daerah breakdown biasanya dihindari karena resiko transistor menjadi hancur terlalu besar.
Gelombang I/O Transistor
Bagian emitter-basis dari transistor merupakan dioda, maka apabila dioda emitter-basis dibias maju maka kita mengharapkan akan melihat grafik arus terhadap tegangan dioda biasa. Saat tegangan dioda emitter-basis lebih kecil dari potensial barriernya, maka arus basis (Ib) akan kecil. Ketika tegangan dioda melebihi potensial barriernya, arus basis (Ib) akan naik secara cepat.
- 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.
#include <Keypad.h> #include <Servo.h> |
Memanggil library LCD yang digunakan untuk mengaktifkan |
#define sensorDetakJantung 13 #define sensorSentuh 11 #define sensorSuhu A0 #define pinServo1 9 // Servo 1 #define pinServo2 10 // Servo 2 #define pinKontrolSuhu 12 #define pinMotorDC 12 // Motor DC |
Mendefinisikan konstanta pada pin arduino |
Servo servo1; Servo servo2; const byte jumlahBaris = 4; // 4 baris const byte jumlahKolom = 3; // 3 kolom char tombol[jumlahBaris][jumlahKolom] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pinBaris[jumlahBaris] = {3, 2, 8, 7}; // pin baris keypad byte pinKolom[jumlahKolom] = {4, 5, 6}; // pin kolom keypad Keypad keypad = Keypad(makeKeymap(tombol), pinBaris, pinKolom,
jumlahBaris, jumlahKolom); |
Beberapa variabel global dideklarasikan, termasuk matriks
tombolKeypad yang merepresentasikan layout keypad, serta array pinBaris dan
pinKolom yang menentukan pin-pin keypad. |
int panjangPassword = 4; int indeksPassword = 0; char password[4]; bool safeDalamModePeringatan = true; bool motorOn = false; |
Mendeklarasikan variabel (bertipe integer) dan tipe data berupa bool
(bernilai benar/salah). |
void setup() { Serial.begin(9600); servo1.attach(pinServo1); servo2.attach(pinServo2); pinMode(sensorDetakJantung,
INPUT); pinMode(sensorSentuh, INPUT); pinMode(sensorSuhu, INPUT); pinMode(pinKontrolSuhu,
OUTPUT); pinMode(pinMotorDC, OUTPUT); } |
Mendeklarasikan LCD dan beberapa pin diatur menjadi inputan |
void loop() { int nilaiDetakJantung =
digitalRead(sensorDetakJantung); if (nilaiDetakJantung ==
HIGH) { char tombol =
keypad.getKey(); if (tombol) {
Serial.println("Tombol keypad ditekan: " + String(tombol)); if (tombol == '1') { servo1.write(-180); } else if (tombol == '2')
{ servo1.write(90); } } int nilaiSentuh =
digitalRead(sensorSentuh); if (nilaiSentuh == LOW) { servo2.write(90); } else { servo2.write(180); } // Baca suhu dari sensor
LM35 int nilaiSuhu =
analogRead(sensorSuhu); float suhuCelsius =
(nilaiSuhu / 1024.0) * 500; // Konversi nilai ADC ke suhu Celsius // Kontrol output
berdasarkan suhu if (suhuCelsius > 25) {
digitalWrite(pinKontrolSuhu, HIGH); } else {
digitalWrite(pinKontrolSuhu, LOW); } } else { Serial.println("Sensor
detak jantung tidak aktif. Mengatur output motor DC ke LOW."); digitalWrite(pinMotorDC,
LOW); } delay(100); } |
Loop utama program ini berfungsi untuk memantau sensor detak jantung
dan keypad. Jika sensor detak jantung aktif (nilai HIGH), program membaca
input dari keypad dan mengeksekusi aksi terkait. Jika tombol '1' ditekan,
servo1 diputar ke posisi -180 derajat, sedangkan jika tombol '2' ditekan,
servo1 diputar ke posisi 90 derajat. Selain itu, program juga memantau sensor
sentuh, di mana jika sensor sentuh terdeteksi (nilai LOW), servo2 diputar ke
posisi 90 derajat; jika tidak, servo2 diputar ke posisi 180 derajat. Program
juga membaca suhu dari sensor LM35, mengonversi nilai ADC ke suhu Celsius,
dan mengontrol output berdasarkan suhu. Jika suhu melebihi 25 derajat
Celsius, pin kontrol suhu diatur menjadi HIGH; sebaliknya, diatur menjadi
LOW. Jika sensor detak jantung tidak aktif, output motor DC (pinMotorDC)
diatur menjadi LOW. Terdapat delay 100 milidetik untuk mengatur frekuensi
pembacaan dan eksekusi perintah dalam loop. |
video simulasi rangkaian
- Video Teori Arduino
- Video Teori Sensor Heartbeat
- Video Sensor Touch
- Video Suhu LM35
g). Download File [KEMBALI]
Download rangkaian klik disiniDownload HTML klik disini
Download listing program klik disini
Download video simulasi rangkaian klik disini
- Download Library
- Download datasheet
Tidak ada komentar:
Posting Komentar