Kunci Pengaman Ultrasonik
Kamu hampir menyelesaikan semua latihan pada modul aplikasi ini, sekarang waktunya mengerjakan latihan terakhir membuat Arduino sebagai kunci pengaman Tidak seperti kunci pengaman pada umumnya yang sering kamu lihat seperti menggunakan sidik jari untuk membuka brankas, atau menggunakan sebuah kartu RFID untuk membuka pintu. Kali ini kamu menggunakan sensor yang cukup murah harganya menggunakan komponen yang ada pada kit ini sensor jarak ultrasonik HC-SR04, prinsip kerjanya adalah sensor mendeteksi kombinasi pengukuran jarak yang dimasukan pengguna dengan menggerak-gerakan tangan didepan sensor kemudian apabila sesuai akan mengaktifkan sebuah relay untuk menyalakan peralatan kunci elektronik sehingga pintu terbuka.Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Breadboard
— 1 x LCD 1602
— 1 x HC-SR04 Ultrasonik
— 1 x Potensiometer
— 1 x Modul Relay
— 1 x Resistor 330Ω
— 23 x Kabel Jumper
Perakitan:
Rangkaian:
Upload Sketch:
Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat menggunakan software Arduino IDE.Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth.
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
/*
20 - Kunci Pengaman Ultrasonik
Menggunakan sensor jarak ultrasonik untuk mendeteksi kombinasi pengukuran jarak,
kemudian dapat mengaktifkan sebuah relay untuk menyalakan peralatan kunci.
LCD digunakan sebagai antarmuka memasukan kombinasi pengukuran jarak
*/
#include //librarry liquid crystal kumpulan perintah untuk menampilakan karakter pada layar LCD
int pin[] = {20, 15, 20, 25}; //ini adalah kombinasi "PIN" (jarak dalam cm) yang digunakan untuk membuka kunci
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //memberitahu Arduino pin mana saja yang dihubungkan dengan LCD
int trigPin = 6; //hubungkan dengan pin trigger pada sensor jarak
int echoPin = 7; //hubungkan dengan pin echo pada sensor jarak
void setup() {
Serial.begin(115200); //memulai komunikasi serial
lcd.begin(16, 2); //memberitahu libarry LCD bahwa kita menggunakan layar LCD berukuran lebar 16 karakter dan tinggi 2 karakter
lcd.clear(); //membersihkan layar
pinMode(trigPin, OUTPUT); //pin trigger mengeluarkan pulsa listrik
pinMode(echoPin, INPUT); //pin echo akan mengukur durasi pulsa balik yang dikeluarkan dari sensor
}
void loop() {
if (getDistance()<10 10cm="" 1="" accept="0;" ada="" adel="" antara="" apakah="" attempt="" berada="" checkpin="" dapat="" delay="" detik="" dibawah="" digunakan="" et="" hasil="" int="" jeda="" jika="" kombinasi="" lamanya="" lcd.clear="" lcd.print="" lcd.setcursor="" maka="" masukan="" memasukan="" memeriksa="" mencoba="" mengetahui="" menyimpan="" mulai="" nilai="" one="" penghalang="" pengukuran="" pin="" position="" ready...="" ready="" setiap="" t="4;" tiap="" toleransi="" untuk="" user="" void="" ya="">>>>____");
attempt[0]=getDistance();
delay(adel);
lcd.setCursor(0,0);
lcd.print(" Position Two ");
lcd.setCursor(0,1);
lcd.print(">>>>>>>>____");
attempt[1]=getDistance();
delay(adel);
lcd.setCursor(0,0);
lcd.print("Position Three ");
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>__");
attempt[2]=getDistance();
delay(adel);
lcd.setCursor(0,0);
lcd.print(" Position Four ");
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>>>>>>>");
attempt[3]=getDistance();
delay(adel);
lcd.clear();
lcd.print("Checking ... "); //menampilkan tulisan sebagai efek visual
delay(2000);
lcd.clear();
//menampilkan kombinasi masukan user pada monitor serial untuk debugging
for (int z=0; z<4 attempt="" bandingkan="" dalam="" delay="" dengan="" ditetapkan="" if="" integer="" memberikan="" nilai="" sekarang="" serial.println="" sudah="" t="" toleransi="" yang="" z="">=(pin[0]-t) && attempt[0]<=(pin[0]+t)) { accept++; }
if (attempt[1]>=(pin[0]-t) && attempt[1]<=(pin[0]+t)) { accept++; }
if (attempt[2]>=(pin[0]-t) && attempt[2]<=(pin[0]+t)) { accept++; }
if (attempt[3]>=(pin[0]-t) && attempt[3]<=(pin[0]+t)) { accept++; }
if (accept==4) {
//kombinasi masukan PIN benar
lcd.setCursor(0,0);
lcd.print(" * Accepted * ");
//here you would enter code to run when the switch was successfully activated
delay(2000);
}
else if (accept!=4) {
//kombinasi masukan PIN salah
lcd.setCursor(0,0);
lcd.print(" * DENIED * ");
//here you would enter code to run when the switch was unsuccessfully activated
delay(2000);
}
}
//Menghasilkan nilai jarak yang terukur oleh sensor jarak HC-SR04
int getDistance() {
int echoTime; //variabel untuk menyimpan waktu yang diperlukan sebuah ping memantul dari sebuah objek
int calcualtedDistance; //variabel untuk menyimpan kalkulasi jarak dari echo time
//mengirim pulsa ultrasonic pulse yang lamanya 10ms
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
echoTime = pulseIn(echoPin, HIGH); //menggunakan perintah pulsein untuk melihat seberapa lama waktu yang dibutuhkan
//pulsa ubtuk memantul kembali ke sensor
calcualtedDistance = echoTime/58; //menghitung jarak dari objek yang telah memantulkan pulsa (setengah waktu pantul dikalikan dengan kecepatan suara)
return calcualtedDistance; //kirim hasil nilai jarak yang telah dihitung
}4>10>
0 comments:
Posting Komentar