Senin, 15 Januari 2024

Modul 2



 Kontrol Kursi Relaksasi

Pendahuluan [KEMBALI]

        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.

ALAT DAN BAHAN [KEMBALI]

1. Alat
1. Power Supply


2. Bahan 
1). Arduino uno

               
     Spesifikasi 

2). Keypad

          Spesifikasi  :     
  • 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

3). Sensor Heart Beat


spesifikasi :

4). Sensor Touch

Spesifikasi :
Tegangan kerja: 2~5.5v DC
Ukuran: 15x11mm
Warna: Merah
Pin: 3 (Gnd, I/O, Vcc)
Arus kerja (no load) Pin Panjang Sampling = 1 (HIGH):
- Low Power Mode: 1.5 uA (typical), max 3.0 uA
- Fast Mode: 3.5 uA (typical), max 7.0 uA
Arus kerja (no load), Pin Panjang Sampling = 0 (LOW):
- Low Power Mode: 2.0 uA (typical), max 4.0 uA
- Fast Mode: 6.5 uA (typical), max 13.0 uA
Response Time:
- Fast Mode: 60 ms
- Low Power Mode: 220 ms

5). Sensor Suhu LM35


Spesifikasi :


6).  Motor Servo PWM


7). Resistor
Spesifikasi :

8).Transistor NPN

Spesifikasi :

 

DASAR TEORI [KEMBALI]

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Kristal Osilator: Kristal osilator digunakan untuk menghasilkan sinyal osilasi yang diperlukan oleh mikrokontroler untuk menjalankan perhitungan waktu dan operasi lainnya.
  8. Tombol Reset: Tombol reset memungkinkan Anda untuk mengulang proses booting papan Arduino atau menghentikan eksekusi program yang sedang berjalan.
  9. 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:

  1. 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.
  2. 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.
  3. 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. 
  4. 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)


3. Sensor Heart Beat


    Sensor detak jantung adalah perangkat yang digunakan untuk mengukur denyut jantung seseorang. Prinsip kerja umumnya didasarkan pada deteksi perubahan dalam aliran darah yang dihasilkan oleh kontraksi dan relaksasi jantung. Salah satu sensor detak jantung yang umum digunakan adalah sensor photoplethysmogram (PPG).
Prinsip Kerja Sensor Infrared

Prinsip Kerja Sensor Heartbeat (Sensor PPG):
  • 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).

Grafik Respon Sensor Heartbeat

4. Motor Servo PWM

        Motor servo menggunakan dengan sistem umpan balik tertutup, di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Karena motor DC servo merupakan alat untuk mengubah energi listrik menjadi energy mekanik, maka magnit permanent motor DC servolah yang mengubah energi listrik ke dalam energi mekanik melalui interaksi dari dua medan magnit. Salah satu medan dihasilkan oleh magnit permanent dan yang satunya dihasilkan oleh arus yang mengalir dalam kumparan motor. Resultan dari dua medan magnit tersebut menghasilkan torsi yang membangkitkan putaran motor tersebut. Saat motor berputar, arus pada kumparan motor menghasilkan torsi yang nilainya konstan.

    Untuk dapat mengontrol motor servo kita perlu memberikan pulsa high dan pulsa low dengan lebar tertentu. Frekuensi yang diperlukan adalah 50 Hz. Pulsa ini dapat dihasilkan dengan port I/O biasa pada mikrokontroler. Namun terkadang dengan cara ini pergerakan servo menjadi kurang akurat. Oleh karena itu digunakan metode Pulse Width Modulation (PWM). Dengan metode PWM dapat dihasilkan gerakan servo yang cukup akurat dengan resolusi yang kita sesuaikan dengan keinginan kita

Berikut ini adalah salah satu contoh pulsa yang dihasilkan untuk menggerakan servo dengan sudut 0o,90o, dan 180o


        Pulsa ini dapat dihasilkan dari pin OCR pada mikrokontroler. Perlu pengaturan register timer pada mikrokontroler agar dapat dihasilkan pulsa dengan lebar yang sesuai kita inginkan. Hal yang sangat penting adalah pengaturan frekuensi dan lebar pulsa on dan pulsa off. Oleh karena itu perlu dihitung berapa konstanta-konstanta timer yang di atur pada mikrokontroler.

5. Sensor Touch
1. Pengertian sensor sentuh
    Sensor sentuh pada dasarnya adalah saklar dengan berbagai macam variasi bentuknya, penggunaan sensor sentuh disini digunakan untuk menutup garasi.

2. Cara Kerja Sensor Sentuh :
    Cara kerja sensor sentuh adalah active low, karena rangkaian ini mengggunakan resistor, resistor pulp up dan pulp down, rangkaian pulp up berisfat active low mengeluarkan sinyal 1 kecuali saat saklar aktif, namun sebaliknya resistor pulp down akan akrif jika mengeluarkan sinyal 0 kecuali saat saklar tidak aktif.
Jika rangkaian mengeluarkan sinyal 1 saat tombol tidak ditekan, namun jika sungut tertekan maka sinyal output akan menjadi 0 karena dihubungkan dengan ground.

3. Jenis sensor sentuh 
    sensor sentuh pada dasarnya adalah saklar limit switch dan microswitch( saklar spdt) dengan berbagai macam bentuk variasinya, sensor sentuh biasanya digunakan yaitu transistor pulp up bersifat active low yang berarti rangkaian mengeluarkan sinyal 1 kecuali saklar aktif, saklar down yaitu bersifat kebalikan dari saklar pulp up yaitu bersifat active low yaitu rangkaian mengeluarkan sinyal 0 kecuali saat saklar aktif, nilai resistor pada pulp down bekisar antara 1-10kq

4. Grafik Respon Sensor Sentuh

Grafik respon:

6.  Sensor Suhu LM35


        Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.

        Prinsip kerja sensor LM35 akan melakukan penginderaan pada saat perubahan suhu setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Sinyal suhu di sekitar ruangan akan di deteksi oleh sensor LM35 dimana sensor LM35 mendeteksi sinyal dalam bentuk tegangan.

Grafik Respon Sensor Suhu Lm35



7. Resistor

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 :


Simbol Resistor

      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 :


Dimana V adalah tegangan,  I adalah kuat arus, dan R adalah Hambatan.

Di dalam resistor, terdapat ketentuan untuk membaca nilai resistor yang diwakili dengan kode warna dengan ketentuan di bawah ini :



Sebagian besar resistor yang kita lihat memiliki empat pita berwarna . Oleh karena itu ada cara membacanya seperti ketentuan dibawah ini :
1. Dua pita pertama dan kedua menentukan nilai dari resistansi
2. Pita ketiga menentukan faktor pengali, yang akan memberikan nilai resistansi.
3. Dan terakhir, pita keempat menentukan nilai toleransi.

Rumus Resistor:

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

8. Transistor NPN

Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung arus (switching), stabilisasi tegangan, dan modulasi sinyal. Transistor dapat berfungsi semacam kran listrik, di mana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaliran listrik yang sangat akurat dari sirkuit sumber listriknya. Kapasitor NPN memiliki simbol seperti gambar di bawah ini:
Simbol Transistor NPN BC547


Terdapat rumus rumus dalam mencari transistor seperti rumus di bawah ini:

Rumus dari Transitor adalah :

hFE = iC/iB

dimana, iC = perubahan arus kolektor 

iB = perubahan arus basis 

hFE = arus yang dicapai


Rumus dari Transitor adalah :

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
                    

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) Diagram Blok


c) Rangkaian Simulasi dan Prinsip kerja

Rangkaian Sebelum disimulasikan

Pada Rangkaian Kontrol Kursi Relaksasi ini terdapat sensor heart beat, sensor Touch, sensor suhu LM35, Keypad, Arduino, dan 2 buah motor servo. Aplikasi Kontrol Kursi Relaksasi ini outputnya berupa pijit punggung dan kipas untuk memberika kenyamanan kepada pengguna. 

Untuk Sensor Heartbeat menandakan bahwa jika heartbeat ini hidup atau berlogika 1 maka semua input output dalam rangkaian sistem ini di akuisisi oleh kontrol untuk diolah oleh data input maupun outputnya, yang artinya apapun masukan dari Sensor Touch, Keypad maupun LM35 tidak akan masuk ke kontrol apabila sensor heartbeat tidak hidup. Ini menandakan ketika pengguna telah duduk ke kursinya. Dimana sensor ini akan diletakkan pada bagian tangan kursi relaksasi yang akan bersentuhan langsung dengan kulit pengguna.  

Touch Sensor berfungsi mengatur motor servo yang merupakan simbol untuk apakah kursi relaksasi itu penggunanya ingin sandarannya berupa rebah atau tegap. 

kondisi dalam keadaan sandaran kursi relaksasi rebah. Kondisi ini terjadi ketika sensor Touch hidup atau berlogika 1, maka motor servo akan berubah menampilkan angka -180 derajat sehingga pengguna dapat tidur pada kursi tersebut. Sensor touch ini diletakkan pada bagian tanggan kursi relaksasi. 



Kondisi dalam keadaan sandaran kursi relaksasi tegap. Kondisi ini terjadi dikarenakan sensor touch mati atau berlogika 0, maka motor servo akan berubah menampilkan angka 0 derajat sehingga pengguna duduk seperti biasa.


Untuk Keypad pada rangkaian ini berfungsi sebagai pengarah kursi relaksasinya. Dimana untuk rangkaian ini keadaan stabilnya adalah 0 derajat. 

kondisi saat kursi relaksasi berbalik 180. Dimana ini terjadi ketika dimasukkan angka 1 pada keypad sehingga kursi akan berputar kebelakang sebesar 180 derajat


kondisi saat kursi relaksasi menghadap kedepan. Apabila dimasukkan pada keypadnya angka 2 maka kondisinya kembali kedepan 180 derajat ini berarti hadapan kursinya kedepan atau kebelakang yang mana ditentukan oleh tombol keypad ini.


Lalu, untuk sensor LM35 yang mana sensor ini merupakan sensor analog untuk  suhu. Sensor ini diatur 25 derajat yang merupakan suhu normal.
kondisi saat suhu ruangan di bawah 25 derajat, maka motor akan mati yang berarti kipas tidak menyala.



kondisi saat suhu ruangan di atas 25 derajat yang berarti suhu dalam keadaan panas akan menghidupkan motor, dimana sebagai simbol yang membuktikan bahwa kipasnya hidup sehingga pengguna tidak akan kepanasan. Kipas diletakkan diatas sandaran bagian kepala pada kursi relaksasi ini.



d) Flowchart dan Listing Program

Flowchart

Listing code

#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.

e) Kondisi

Ketika Sensor Heartbeat berlogika 1 menandakan pengguna telah duduk di kursi relaksasi
Ketika Sensor Touch berlogika 1, kondisi dalam keadaan sandaran kursi relaksasi rebah
Ketika Sensor Touch berlogika 0, kondisi dalam keadaan sandaran kursi relaksasi tegap
Ketika dimasukkan angka 1 pada keypad, kondisi saat kursi relaksasi berputar kebelakang
Ketika dimasukkan angka 2 pada keypad, kondisi saat kursi relaksasi kembali ke depan
Ketika suhu ruangan di bawah 25 derajat, maka motor akan mati yang berarti kipas tidak menyala.
Ketika suhu ruangan di atas 25 derajat, maka motor akan bergerak yang berarti kipas menyala.

f) Video Simulasi

VIDEO [KEMBALI]

video simulasi rangkaian



Video Teori

  • Video Teori Arduino

  • Video Teori Sensor Heartbeat

  • Video Sensor Touch

  • Video Suhu LM35



g). Download File [KEMBALI]

Download rangkaian klik disini
Download HTML 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 Sensor Heart Beat klik disini
Download library Sensor Touch klik disini
  • Download datasheet 
Download datasheet Arduino UNO klik disini
Download datasheet Sensor Heart Beat klik disini
Download datasheet Sensor Touch klik disini
Download datasheet Sensor suhu LM35 klik disini

Tidak ada komentar:

Posting Komentar

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...