Laporan Akhir Modul IV
Kunci Kantor Menggunakan Password
1. Latar Belakang[KEMBALI]
Kunci
memegang peran penting dalam sebuah sistem keamanan. Sistem keamanan
pintu kantor yang ada sekarang ini sebagian besar masih menggunakan
kunci mekanik konvensional. Kunci mekanik konvensional terdiri dari
beberapa teknis kerja yaitu grendel, tuas, dan silinder. Kunci grendel
adalah model kunci pintu tradisional yang bekerja tanpa membutuhkan anak
kunci untuk membukanya, hanya cukup ditarik atau didorong secara manual
menggunakan tangan. Kunci tuas adalah model kunci yang memiliki bentuk
memanjang yang terdiri dari per dan lempengan bergerigi dengan jumlah
gerigi sedikit dan sederhana. Sedangkan kunci silinder prinsip kerjanya
hampir sama dengan kunci tuas hanya saja bentuk gerigi dibuat sedemikian
rupa dan rumit. Lekukan pada gerigi tersebut berfungsi untuk memutar
silinder pada slot sehingga bisa dibuka dan ditutup.
Saat
ini sudah ada beberapa model kunci pintu kantor modern yang cara
kerjanya secara digital yang diklaim lebih handal dan aman dibanding
kunci konvensional. Saat ini ada beberapa model kunci pintu digital yang
ada di pasar indonesia, yaitu model PIN, RFID, Sidik Jari, dan remote.
PIN (Personal Identification Number) adalah sistem pengamanan yang
menngunakan kombinasi angka untuk dapat mengakses keamanan terebut,
untuk jenis RFID (Radio Frequency Identification) atau Identifikasi
Frekuensi Radio adalah sebuah metode identifikasi dengan menggunakan
sarana yang disebut label RFID atau transponder untuk menyimpan dan
mengambil data jarak jauh. Pengguna harus memiliki kartu RFID yang sudah
tercatat pada sistem dan mendekatkan pada batang kunci, hingga model
kunci pintu dengan tingkat akurasi tinggi dengan identifikasi sidik jari
serta kontrol kunci pintu menggunakan remote. Model kunci pintu ini
memiliki berbagai mekanik kerja yang berbeda, diantaranya adalah model
selot magnetik, pneumatik dan elektromekanik dengan variasi berbagai
bentuk.
Berdasarkan
hal tersebut, dapat dibuat pengaman pintu menggunakan verifikasi
password menggunakan arduino dan selot kunci elektro-mekanik. Model ini
terinspirasi dari kunci PIN yang sudah ada dengan penambahan layar
penampil LCD dan menggunakan password yang terdiri dari kombinasi angka
dan huruf menggunakan keypad matrix 4x4.
a. Mengamankan ruangan kantor dengan password.
b. Mengamankan ruangan kantor dari orang yang terkena demam.
3.Landasan Teori[KEMBALI]
a. Arduino
Arduino
adalah kit elektronik atau papan rangkaian elektronik open source yang
di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler
dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam
praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P.
Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar
Arduino dapat berhubungan dengan komputer ataupun perangkat lain.
Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :
Microcontroller |
Atmega328P |
Operating Voltage |
5V |
Input Voltage (recommended) |
7-12V |
Input Voltage (limit) |
6-20V |
Digital I/O Pins |
14 (of which 6 provide PWM output) |
PWM Digital I/O Pins |
6 |
Analog Input Pins |
6 |
DC Current per I/O Pin |
20mA |
DC Current for 3.3V Pin |
50Ma |
Flash Memory |
32KB of which 0.5KB used by bootloader |
SRAM |
2KB |
EEPROM |
1KB |
Clock Speed |
16MHz |
Bagian-bagian Arduino UNO :
- Power USB : Digunakan untuk menghubungkan papan arduino dengan komputer lewat koneksi USB.
- Power Jack : Supply atau sumber listrik untuk arduino dengan tipe jack. Input DC 5-12V.
- Crystal Oscillator : Kristal ini digunakan sebagai layaknya detak jantung pada arduino. Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
- Reset : Digunakan unttuk mengulang program arduino dari awal atau reset.
- Digital Pins I/O : Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika (0 atau 1). Pin berlabel “~” adalah pin-pin PWM (Pulse Width Modulation) yang dapat digunakan untuk menghasilkan PWM.
- Analog Pins : Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak jauh, suhu dsb, dan mengubahnya menjadi nilai digital.
- LED Power Indicator : Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.
b. 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 * 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.
c. 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 dengan
tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang
diawali dengan kode A( A0- A5 padaArduino Uno). Fungsi untuk mengambil
data sinyal input analog menggunakan analogRead(pin);
d. Komunikasi
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 di transfer secara parallel ke data bus penerima.
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 yaituMOSI, MISO, dan SCK. Melalui
komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller
maupun antara mikrokontroller 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.
Inter Integrated Circuit (I2C)
Inter
Integrated Circuit atau sering disebut I2C adalah standar komunikasi
serial dua arahmenggunakan 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.
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 telahditerima receiver.
e. Sensor PIR
Pancaran
infra merah masuk melalui lensa Fresnel dan mengenai sensor
pyroelektrik, karena sinar infra merah mengandung energi panas maka
sensor pyroelektrik akan menghasilkan arus listrik. Arus listrik inilah
yang akan menimbulkan tegangan dan dibaca secara analog oleh sensor.
Kemudian sinyal ini akan dikuatkan oleh penguat dan dibandingkan oleh
komparator dengan tegangan referensi tertentu Untuk manusia sendiri
memiliki suhu badan yang dapat menghasilkan pancaran infra merah dengan
panjang gelombang antara 9-10 mikrometer (nilai standar 9,4 mikrometer),
panjang gelombang tersebut dapat terdeteksi oleh sensor PIR. (Secara
umum sensor PIR memang dirancang untuk mendeteksi manusia) dimana sensor
ini membutuhkan tegangan masukan sebesar 5V DC.
PIR
sensor sendiri memiliki dua slot di dalamnya, setiap slot terbuat dari
bahan khusus. PIR (Passive Infrared Receiver) merupakan sebuah sensor
berbasiskan infrared. Di dalam sensor PIR ini terdapat bagian-bagian
yang mempunyai perannya masing-masing, yaitu Fresnel Lens, IR Filter,
Pyroelectric sensor, amplifier, dan comparator.
(1) deteksi sudut 120 derajat.
(2) kisaran deteksi 7m.
(3) ukuran: 32x24mm.
(4) output sinyal switch TTL output sinyal tinggi (3.3 V), output sinyal rendah (0.4 V).
(5) waktu pemicu dapat disesuaikan 0,3 detik hingga 10 menit.
(6) umum digunakan dalam perangkat anti-pencurian dan peralatan lainnya.
(7) modul telah dipaksa untuk mengatur bekerja memicu dapat digunakan kembali.
(8) tegangan kerja 4,5 untuk 20V.
f. Sensor Sentuh
Sensor
sentuh merupakan sebuah saklar yang cara penggunaanya dengan cara
disentuh menggunakan jari. Ketika sensor ini disentuh maka sensor akan
bernilai HIGH, mengapa? karena tubuh manusia terdapat aliran listrik
sehingga sensor ini dapat bekerja. Sensor ini dapat kita gunakan untuk
menyalakan lampu, motor, membuka pintu dan masih banyak lainnya. Sensor
ini mempunya 3 buah pin yaitu pin SIG (signal/data), GND dan VCC.
Berdasarkan
fungsinya, Sensor Sentuh dapat dibedakan menjadi dua jenis utama yaitu
Sensor Kapasitif dan Sensor Resistif. Sensor Kapasitif atau Capacitive
Sensor bekerja dengan mengukur kapasitansi sedangkan sensor Resistif
bekerja dengan mengukur tekanan yang diberikan pada permukaannya.
g. Sensor 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. Meskipun tegangan sensor ini dapat mencapai 30
volt akan tetapi yang diberikan kesensor adalah sebesar 5 volt, sehingga
dapat digunakan dengan catu daya tunggal dengan ketentuan bahwa LM35
hanya membutuhkan arus sebesar 60 µA hal ini berarti LM35 mempunyai
kemampuan menghasilkan panas self-heating dari sensor yang dapat
menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC
pada suhu 25 ºC .
Sensor suhu memiliki beberapa karakteristik, diantaranya:
- 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.
h. Motor Servo
Motor
Servo merupakan motor listrik dengan menggunakan sistem closed loop.
Sistem tersebut digunakan untuk mengendalikan akselerasi dan kecepatan
pada sebuah motor listrik dengan keakuratan yang tinggi. Selain itu,
motor servo biasa digunakan untuk mengubah energi listrik menjadi
mekanik melalui interaksi dari kedua medan magnet permanent.
Pada umumnya, motor servo terdiri dari tiga komponen utama yaitu :
• Motor
• Sistem Kontrol
• Potensiometer atau encoder
Motor berfungsi sebagai penggerak roda gigi agar dapat memutar potensiometer dan poros output-nya secara bersamaan.
Jenis Motor Servo Berdasarkan Arusnya :
- Motor Servo AC
Motor
Servo AC merupakan jenis yang dapat menangani tegangan arus listrik
yang tinggi atau beban berat. Motor servo AC sangat cocok diaplikasikan
pada mesin-mesin industri yang bertujuan untuk dapat mengendalikannya.
- Motor Servo DC
Motor
servo DC merupakan jenis yang hanya dapat menangani tegangan arus dan
beban yang lebih kecil. Sehingga motor servo DC cocok diaplikasikan pada
mesin-mesin kecil seperti mobil dan pesawat remote control.
i. Liquid Crystal Display (LCD)
Liquid
Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi
untuk menampilkan output sebuah sistem dengan cara membentuk suatu
citra atau gambaran pada sebuah layar. Secara garis besar komponen
penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh
2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing
filter).
Gambar Penampang komponen penyusun LCD
Keterangan:
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.
Sebuah
citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari
pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual
di pasaran sudah memiliki integrated circuit tersendiri sehingga para
pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan
mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah
tersedia.
Kaki-kaki yang terdapat di LCD
j. Light Emitting Diode (LED)
LED
adalah suatu semikonduktor yang memancarkan cahaya, LED mempunyai
kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n)
dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED
terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus
listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED
diberikan arus terbalik, hanya akan ada sedikit arus yang melewati LED.
Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.
k. Resistor
Resistor
merupakan komponen pasif yang memiliki nilai resistansi tertentu dan
berfungsi untuk menghambat jumlah arus listrik yang mengalir dalam suatu
rangkaian. Resistor dapat diklasifikasikan menjadi beberapa jenis,
diantaranya resistor nilai tetap (fixed resistor), resistor variabel
(variabel resistor), thermistor, dan LDR.
Cara membaca nilai resistor :
Cara menghitung nilai resistansi resistor dengan gelang warna :
1. Masukan angka langsung dari kode warna gelang pertama.
2. Masukan angka langsung dari kode warna gelang kedua.
3. Masukan angka langsung dari kode warna gelang ketiga.
4. Masukkan jumlah nol dari kode warna gelang ke-4 atau pangkatkan angka tersebut dengan 10 (10^n).
5. Gelang terakhir merupakan nilai toleransi dari resistor.
l. Potensiometer
Potensiometer
adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur
sesuai dengan kebutuhan Rangkaian Elektronika ataupun kebutuhan
pemakainya. Potensiometer merupakan Keluarga Resistor yang tergolong
dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri
dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi
sebagai pengaturnya. Gambar dibawah ini menunjukan Struktur Internal
Potensiometer beserta bentuk dan Simbolnya.
Pada dasarnya bagian-bagian penting dalam Komponen Potensiometer adalah:
- Penyapu atau disebut juga dengan Wiper
- Element Resistif
- Terminal
Berdasarkan bentuknya, Potensiometer dapat dibagi menjadi 3 macam, yaitu:
•
Potensiometer Slider, yaitu Potensiometer yang nilai resistansinya
dapat diatur dengan cara menggeserkan Wiper-nya dari kiri ke kanan atau
dari bawah ke atas sesuai dengan pemasangannya. Biasanya menggunakan Ibu
Jari untuk menggeser wiper-nya
• Potensiometer
Rotary, yaitu Potensiometer yang nilai resistansinya dapat diatur
dengan cara memutarkan Wiper-nya sepanjang lintasan yang melingkar.
Biasanya menggunakan Ibu Jari untuk memutar wiper tersebut. Oleh karena
itu, Potensiometer Rotary sering disebut juga dengan Thumbwheel
Potentiometer.
• Potensiometer
Trimmer, yaitu Potensiometer yang bentuknya kecil dan harus menggunakan
alat khusus seperti Obeng (screwdriver) untuk memutarnya. Potensiometer
Trimmer ini biasanya dipasangkan di PCB dan jarang dilakukan
pengaturannya.
Sebuah
Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk
jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal
lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang
dipergunakan untuk menentukan pergerakan pada jalur elemen resistif
(Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif
inilah yang mengatur naik-turunnya Nilai Resistansi sebuah
Potensiometer.
Elemen Resistif pada
Potensiometer umumnya terbuat dari bahan campuran Metal (logam) dan
Keramik ataupun Bahan Karbon (Carbon). Berdasarkan Track (jalur) elemen
resistif-nya, Potensiometer dapat digolongkan menjadi 2 jenis yaitu
Potensiometer Linear (Linear Potentiometer) dan Potensiometer Logaritmik
(Logarithmic Potentiometer).
Dengan
kemampuan yang dapat mengubah resistansi atau hambatan, Potensiometer
sering digunakan dalam rangkaian atau peralatan Elektronika dengan
fungsi-fungsi sebagai berikut:
• Sebagai pengatur Volume pada berbagai peralatan Audio/Video seperti Amplifier, Tape Mobil, DVD Player.
• Sebagai Pengatur Tegangan pada Rangkaian Power Supply
• Sebagai Pembagi Tegangan Aplikasi Switch TRIAC
• Digunakan sebagai Joystick pada Tranduser
• Sebagai Pengendali Level Sinyal
m. Keypad
Keypad
adalah bagian penting dari suatu perangkat elektronika yang membutuhkan
interaksi manusia. Keypad berfungsi sebagai interface antara perangkat
(mesin) elektronik dengan manusia atau dikenal dengan istilah HMI (Human
Machine Interface). Matrix keypad 4×4 merupakan salah satu contoh
keypad yang dapat digunakan untuk berkomunikasi antara manusia dengan
mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini
bertujuan untuk penghematan port mikrokontroler karena jumlah key
(tombol) yang dibutuhkan banyak pada suatu sistem dengan mikrokontroler.
Konstruksi matrix keypad 4×4 untuk mikrokontroler dapat dibuat seperti
pada gambar berikut:
Proses
scaning untuk membaca penekanan tombol pada matrix keypad 4×4 untuk
mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari
kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4.
Misal kita asumsikan keypad aktif LOW (semua line kolom dan baris
dipasang resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan
jalur kolom adalah jalur input dan jalur baris adalah jalur output maka
proses scaning matrix keypad 4×4 diatas dapat dituliskan sebagai
berikut.
-
Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka
data baris pertama (Row1) akan LOW sehingga data baris yang dibaca
adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke
2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang
ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan
maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom
pertama yang di tekan maka data pembacaan baris akan 1111.
-
Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka
data baris pertama (Row1) akan LOW sehingga data baris yang dibaca
adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke
2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang
ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan
maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom
pertama yang di tekan maka data pembacaan baris akan 1111.
-
Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka
data baris pertama (Row1) akan LOW sehingga data baris yang dibaca
adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke
2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang
ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan
maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom
pertama yang di tekan maka data pembacaan baris akan 1111.
-
Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka
data baris pertama (Row1) akan LOW sehingga data baris yang dibaca
adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke
2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang
ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan
maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom
pertama yang di tekan maka data pembacaan baris akan 1111.
n. Push Button
Push
button switch (saklar tombol tekan) adalah perangkat / saklar sederhana
yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik
dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja unlock
disini berarti saklar akan bekerja sebagai device penghubung atau
pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak
ditekan (dilepas), maka saklar akan kembali pada kondisi normal.
Sebagai
device penghubung atau pemutus, push button switch hanya memiliki 2
kondisi, yaitu On dan Off (1 dan 0). Istilah On dan Off ini menjadi
sangat penting karena semua perangkat listrik yang memerlukan sumber
energi listrik pasti membutuhkan kondisi On dan Off.
Karena
sistem kerjanya yang unlock dan langsung berhubungan dengan operator,
push button switch menjadi device paling utama yang biasa digunakan
untuk memulai dan mengakhiri kerja mesin di industri. Secanggih apapun
sebuah mesin bisa dipastikan sistem kerjanya tidak terlepas dari
keberadaan sebuah saklar seperti push button switch atau perangkat lain
yang sejenis yang bekerja mengatur pengkondisian On dan Off.
Berdasarkan
fungsi kerjanya yang menghubungkan dan memutuskan, push button switch
mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO (Normally
Open).
- NO (Normally
Open), merupakan kontak terminal dimana kondisi normalnya terbuka
(aliran arus listrik tidak mengalir). Dan ketika tombol saklar ditekan,
kontak yang NO ini akan menjadi menutup (Close) dan mengalirkan atau
menghubungkan arus listrik. Kontak NO digunakan sebagai penghubung atau
menyalakan sistem circuit (Push Button ON).
-
NC (Normally Close), merupakan kontak terminal dimana kondisi normalnya
tertutup (mengalirkan arus litrik). Dan ketika tombol saklar push
button ditekan, kontak NC ini akan menjadi membuka (Open), sehingga
memutus aliran arus listrik. Kontak NC digunakan sebagai pemutus atau
mematikan sistem circuit (Push Button Off).
4. Langkah Kerja[KEMBALI]
Alat ini merupakan alat untuk mengamankan ruangan
kantor dengan password serta mengamankan dari orang yang terkena demam. Dalam alat
ini terdapat beberapa tahapan untuk mendapatkan hasil dari input yang
dimasukkan, yaitu:
a. Sistem keamanan
pintu aktif, dimana sensor PIR aktif dan mendeteksi adanya pergerakan.
b. Setelah sensor
PIR aktif maka LCD dan sensor suhu aktif.
c. Ketika suhu
diatas
, maka program
tidak berjalan melainkan pada LCD menampilkan “Anda Sakit, Silahkan Pulang”.
d. Namun, jika suhu dibawah
, pada LCD menyatakan “Anda Sehat, Masukkan
Password”, dimana jika benar maka sensor sentuh aktif menandakan pintu terbuka,
sedangkan jika tidak atau salah memasukkan password maka akan terjadi error dan
diminta untuk memasukkan password kembali.
5. Gambar Rangkaian[KEMBALI]
Gambar Rangkaian Asli
Gambar Rangkaian Proteus
6. Video Percobaan[KEMBALI]
7. Prinsip Kerja Alat[KEMBALI]
Alat ini akan mulai bekerja saat sensor PIR mendeteksi adanya cahaya infrared dari tubuh manusia (pergerakan manusia),
maka LCD dan komponen lain akan aktif. Lalu jika sensor LM35 mendeteksi
suhu tubuh dibawah 37.0°C ( suhu normal ) maka tampilan LCD menampilkan
“Anda Sehat“ dan diminta memasukkan password. Ketika password benar maka
LED indikator hijau hidup dan LCD menampilkan “Password Benar”. Setelah
memasukkan password maka touch sensor akan menggerakkan motor servo
berputar menandakan pintu dibuka. Sedangkan jika suhu tubuh lebih dari
37.0°C maka LCD menampilkan “Anda Sakit, Silahkan Pulang” dan LED
indikator merah hidup. Jika berada dalam ruangan dan ingin keluar dapat
dilakukan dengan cara menekan push button sehingga pintu dapat terbuka.
8. Flow Chart[KEMBALI]
9. Listing Program[KEMBALI]
• Master
//MASTER
#include <Keypad.h>
#include <Password.h>
#include <LiquidCrystal.h>
// #include <SoftwareSerial.h>
// SoftwareSerial pengganti(2,13);
LiquidCrystal lcd(10, A1, A2, A3, A4, A5);
//PIR
int pir = 13;
int nilai_pir;
// int LED = 6;
//inisialisasi pin lm35
byte lm35 = A0;
int nilai;
int LED = 11;
int LEDm = 12;
Password password = Password( "1" ); // ubah password di sini
const byte baris = 4; // jumlah baris
const byte kolom = 4; // jumlah kolom
char keys[baris][kolom] =
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// inialisasi pin untuk keypad
byte kolomPin[kolom] = {5, 4, 3, 2};
byte barisPin[baris] = {9, 8, 7, 6};
// membuat objek untuk pembacaan keypad
Keypad keypad = Keypad( makeKeymap(keys), barisPin, kolomPin, baris, kolom );
// ****************** PROGRAM DEFAUT/SETTING AWAL ******************* //
void setup()
{
// inialisasi baud rate serial monitor
Serial.begin(19200);
// pengganti.begin(9600);
// deklarasi jumlah baris & kolom LCD
lcd.begin(16, 2);
// inialisasi status I/O pin
pinMode(LED, OUTPUT);
pinMode(lm35, INPUT);
pinMode(pir, INPUT);
// deklarasi awal status relay
digitalWrite(LED, LOW); // kondisi awal selenoid menutup
// deklarasi variabel keypad event
keypad.addEventListener(keypadEvent);
// menulis pada lcd
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SMART DOOR");
lcd.setCursor(0, 1);
lcd.print("GRUP 6 Up&Uc");
delay(1500);
}
// *************************** PROGRAM PERULANGAN TERUS MENERUS ************************** //
void loop()
{
digitalWrite(LED, LOW);
nilai_pir= digitalRead(pir);
if(nilai_pir = 1){
nilai = analogRead(lm35);
nilai = nilai/2.0479;
// Serial.println(nilai);
if(nilai>=20 && nilai<=36){
// menulis pada lcd
lcd.setCursor(0, 0);
lcd.print(nilai);
lcd.println(" C Anda Sehat");
lcd.setCursor(0, 1);
lcd.print("Masukkan Password");
// membaca keypad
keypad.getKey();
delay(10);
lcd.clear();
}
if(nilai>37){
digitalWrite(LEDm, HIGH);
lcd.setCursor(0, 0);
lcd.println(nilai);
lcd.print(" C Anda sakit");
lcd.setCursor(0, 1);
lcd.print("silahkan pulang");
delay(5000);
lcd.clear();
}
}
else{
// menulis pada lcd
lcd.setCursor(0, 0);
lcd.print("Sepi");
lcd.println(nilai);
lcd.setCursor(0, 1);
lcd.print("mana orang?");
delay(5000);
lcd.clear();
}
}
// ********************* PROGRAM TOMBOL UNTUK ENTER DAN RESET ******************* //
void keypadEvent(KeypadEvent eKey)
{
switch (keypad.getState())
{
case PRESSED:
Serial.print("Enter: ");
Serial.println(eKey);
delay(1);
// Serial.write(254);
switch (eKey) {
case '#': Login(); delay(1); break; // tombol A untuk login
case '*': password.reset(); delay(10); break; // tombol B untuk reset
default: password.append(eKey); delay(10);
}
}
}
// ********************** PROGRAM LOGIN ************************* //
void Login()
{
// jika password benar
if (password.evaluate())
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Password Benar");
digitalWrite(LED, HIGH);
Serial.println('1');
delay(500);
Serial.println('9');
}
// jika password tidak benar atau salah
else
{
// menulis pada lcd
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Password Salah");
// relay tidak aktif, solenoid tetap menutup
digitalWrite(LED, LOW);
Serial.println("0");
delay(200);
}
}
• Slave
//SLAVE
#include <Servo.h>
#define sensor 5 // Pin Di gunakan untuk capactitive touch sensor
Servo myservo;
int pos;
int data = 0;
int LED = 6;
//BUTTON
const int buttonPin = 2; // deklarasi konstanta untuk button pada pin 2
int buttonState = 1; // deklarasi variabel untuk status button(ditekan atau tidak)
void setup()
{
Serial.begin(19200);
pinMode(LED, OUTPUT);
pinMode(sensor, INPUT_PULLUP);
pinMode(buttonPin,INPUT);
myservo.attach(9);
myservo.write(90);
;
}
void loop(){
digitalWrite(LED, LOW);
if (digitalRead(sensor) == HIGH) {
while(digitalRead(sensor) == HIGH){}
kunci();
}
if(digitalRead(buttonPin)==LOW){
Serial.println("Berhasil Buka Dari Dalam");
digitalWrite(LED, HIGH);
for (pos = 90; pos >= 0; pos -= 1) { // goes from 0 degrees to 180 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(10); // waits 15 ms for the servo to reach the position
}
delay(5000);
for (pos = 0; pos <= 90; pos += 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
}
if(digitalRead(buttonPin)==HIGH){
Serial.println(buttonPin);
}
else{
digitalWrite(LED, LOW);
}
}
void kunci()
{
if(Serial.available()>0){
data = Serial.read();
if(data=='1'){
Serial.println("Berhasil Buka Dari Luar");
digitalWrite(LED, HIGH);
for (pos = 90; pos >= 0; pos -= 1) { // goes from 0 degrees to 180 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
delay(5000);
for (pos = 0; pos <= 90; pos += 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
}
}
else{
Serial.println('tidak ada password');
delay(1);
}
}
Tidak ada komentar:
Posting Komentar