• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN ALAT DAN PROGRAM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN ALAT DAN PROGRAM"

Copied!
28
0
0

Teks penuh

(1)

BAB III

PERANCANGAN ALAT DAN PROGRAM

3.1 Persiapan Perancangan Alat

Dalam bab ini membahas mengenai perancangan alat mulai dari perancangan perangkat keras ( Hardware ) hingga perancangan perangkat lunak ( Software ) Untuk mempermudah dalam perancangan maka diperlukan sebuah blok diagram yang terlihat seperti gambar di bawah ini.

Gambar 3.1 Diagram Blok Rangkaian Sistem Pengaman Ganda Kunci Elektronik Dari Blok Diagram dapat kita liat apa saja yang diperlukan dalam perancangan alat diantaranya :

1. Sensor PIR

Sebuah sensor yang di kemas dalam rangkaian integrasi sehingga perancang di mudahkan dalam mempergunakan. Sensor ini difungsikan untuk pendeteksi gerakan.

Arduino Sensor PIR Key Pad 3 x 4 Char LCD 16 x 2 Green Bright Buzzer Solenoid

(2)

2. Keypad 3 x 4

Berfungsi sebagai Input, dimana password sebagai kunci untuk membuka pintu di masukkan menggunakan keypad.

3. Arduino Deumilanove

Merupakan induk program dari perangkat lunak untuk di aplikasikan sesuai kebutuhan.

4. LCD 16 x 2

Merupakan indikator yang memberikan tapilan level air secara jelas sehingga lebih mudah dari segi pembacaan.

5. Alarm Buzzer

Sebagai tanda apabila salah memasukkan password atau sensor gerak ( PIR ) mendeteksi adanya suatu gerakan, buzzer ini sebenarnya hanya sebuah tranducer yang merubah sinyal listrik menjadi suara, seperti halnya pada load speaker

6. Solenoide 12 VDC

Merupakan alat yang di gunakan untuk mengunci pintu secara elektronik.dimana bila password dimasukan dan benar maka solenoid akan bekerja.

3.2 Proses Perancangan Alat

Setelah memahami dan mempersiapkan peralatan sesuai dengan blok diagram, langkah selanjutnya membuat rangkaian dari masing – masing blok.Rangkaian – rangkaian yang akan dibuat meliputi ;

(3)

a) Rangkaian sensor gerak ( PIR ) dengan Arduino b) Rangkaian Keypad dengan Arduino

c) Rangkaian LCD 16 x 2 dengan Arduino d) Rangkaian Buzzer

e) Rangkaian solenoid 12 V DC

3.2.1 Rangkaian Sensor Gerak ( PIR )

Sensor gerak PIR berfungsi sebagai input ( masukan ) sistem rangkaian Arduino deumilanove. Dimana kaki no 2 ( Data di hubungkan ke pin Arduino ( pin A0 sebagai input data ). Sensor ini akan bekerja jika ada seseorang yang berjalan melewati sensor , maka sensor akan menangkap pancaran sinar infra merah pasif yang dipancarkan oleh tubuh manusia yang memiliki suhu yang berbeda dari lingkungan sehingga menyebabkan material pyroelectric bereaksi menghasilkan arus listrik karena adanya energi panas yang dibawa oleh sinar infra merah pasif tersebut yang kemudian di bandingkan oleh sebuah rangkaian comparator sehingga menghasilkan output.

Gambar 3.2 Penampang PIR Spesifikasi Passive Infra Red :

Input Voltage : DC 4,5 – 20 V Static Current : 50 mikroAmpere

(4)

Output signal : 0,3 V or 5 V ( output ketika mendeteksi )

Sentry Angle : 110 degree

Sentry Distance : max 7 m

Shunt for setting override trigger : H – Yes , L - No

Gambar 3.3 Skema pin Sensor PIR

Gambar 3.4 Skema Rangkaian Sensor PIR dan Arduino

3.2.2 Rangkaian Keypad dengan Arduino

Keypad merupakan salah satu perangkat elektronik, dalam sistem embedded ( microcontroller ), keypad merupakan salah satu jenis perangkat antar muka yang digunakan sebagai input sinyal. Pada rangkaian ini keypad di gunakan

(5)

untuk memamasukan password ( kata kunci ) yang sudah di set dalam pemrograman arduino.

Gambar 3.5 Skema Rangkaian Sensor keypad dan Arduino

Set point merupakan bagian masukan dalam system.Pada penggunaan keypad ini perancang hanya menggunakan 6 digit dari 12 digit sebagai kode rahasia untuk untuk membuka atau mengamankan pintu kecuali “ * “ dan “ # “.

3.2.3 Rangkaian LCD 16 x 2 dengan Arduino

Untuk menampilkan keterangan system kerja alat seperti kode rahasia ( password key ), bila sensor gerak mendeteksi gerakan manusia, maka digunakan LCD 16 x 2 baris untuk menampilkan hasil dari instruksi. Pada rangkaian LCD sudah terdapat rangkaian driver sehingga bisa berfungsi dengan baik. Adapun skema rangkaian LCD dengan arduino sebagai berikut.:

(6)

Gambar 3.6 Skema Rangkaian LCD 16 x 2 dan arduino

Pada rangkaian LCD 16 x 2 port DB 4 s/d DB 7 dihubungkan dengan port digital arduino port 7 sampai dengan port 10, sedangkan untuk Vo LCD dihubungkan dengan potensio 10k – 20k Ohm untuk mengatur kecerahan dari LCD.

Masukan yang di perlukan untuk mengedalikan modul ini berupa bus data yang masih multiplek dengan alamat serta 4 bit sinyal kontrol. Sementara

(7)

pengendalian dotmatrik LCD dilakukan secara internal oleh controller yang sudah terpasang pada modul LCD.

(8)

Gambar 3.7 Proses pengawatan LCD 16 x 2

3.2.4 Rangkaian Buzzer dengan Arduino

Buzzer akan berbunyi saat instruksi tidak sesuai dengan prosedur, misalnya terjadi kesalahan dalam memasukan password atau bila sensor PIR mendeteksi adanya gerakan di dalam rumah.

(9)

3.3 Proses Perancangan Program ( Software )

Setelah proses rangkaian selesai dibuat langkah selanjutnya adalah membuat program pada apliaksi program arduino IDE (Integrated Development Environment). Pada proses pembuatan program arduino IDE perancang menggunakan Arduino versi 1.0.1. Buka program aplikasi arduino IDE kemudian buat program pada aplikasi arduino IDE Sketch.

Gambar 3.9 Program Arduino IDE (Integrated Development Environment)

(10)

3.3.1 Bahasa Program Arduino IDE yang digunakan

Void (Setup)

Fungsi setup ( ) hanya dipanggil satu kali ketika program pertama kali dijalankan. Ini digunakan untuk pendefinisian mode pin atau memulai komunikasi serial. Fungsi setup ( ) harus diikut sertakan dalam program walaupun tidak ada statement yang dijalankan.

Contoh :

Loop

Setelah melakukan fungsi setup ( ) maka secara langsung akan melakukan fungsi loop ( ) secara berurutan dan melakukan instruksi-instruksi yang ada dalam fungsi loop ( ).

void setup() {

pinMode(13,OUTPUT); // mengset ‘pin’ 13 sebagai output }

(11)

Contoh :

Serial begin ()

Statement ini digunakan untuk mengaktifkan komunikasi serial dan mengset baudrate.

Contoh :

DigitalWrite (pin, value)

Digunakan untuk mengset pin digital. Pin digital arduino mempunyai 14 (0 –13). void loop()

{

digitalWrite(13, HIGH); // nyalakan ‘pin’ 13

delay(1000); // pause selama 1 detik

digitalWrite(13, LOW); // matikan ‘pin’ 13

delay(1000); // pause selama 1 detik

}

void setup() {

Serial.begin(9600); //open serial port and set baudrate 9600 bps }

(12)

Contoh :

digitalRead (pin)

Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW

Analog Read ()

Papan Arduino memiliki 6 chanel, 10 bit analog ke digital, artinya kita dapat memasukkan tegangan antara 0 dan 5 volts pada nilai integer antara 0 sampai 1023. Kisaran input atau masukan dan resolusi dapat dirubah menggunakan analog reference. Untuk membaca analog input dibutuhkan dibutuhkan sekitar 100 microsecond (0.0001 s). Jadi rata – rata membacanya sekitar 10.000 kali dalam satu detik. Catatan : jika pin analog input tidak dapat terkoneksi dengan apapun nilainya akan kembali pada analogRead.

Syntax :

digitalWrite ( pin, HIGH ); // set pin to HIGH //DoSomething;

Value = digitalRead(pin); // mengset ‘value’ sama dengan pin //DoSomething;

(13)

Contoh :

Delay ( )

Menghentikan program untuk mengukur waktu (dalam millisecond ) yang terspesifikasi pada parameter (ada 1000 milisecond dalam setiap detik). Pada saat mudahnya membuat LED berkedip dengan fungsi delay, beberapa sketch atau lembar kerja mengalami delay. Membaca sensor, perhitungan Matematika, atau memanipulasi Pin dapat berkerja pada saat fungsi delay bekerja. Beberapa program berbasis pengetahuan biasanya menghindari penggunaan delay untuk kegiatan yang membutuhkan waktu lebih dari 10 miliseconds.

Int analogPin = 3 // potentiometer wiper middle terminal connected to analog pin 3 Void setup () { Serial.begin (9600); } Void loop () {

Val = analogRead(analogPin); // Read the input pin Serial.println(val); //debug value

(14)

Serial.Println (rate)

Mengirimkan data ke serial port.

Variable

Variable adalah sebuah penyimpan nilai yang dapat di gunakan dalam program. Variable dapat di rubah sesuai dengan instruksi yang kita buat. Ketika mendeklarisikan variable harus di ikut sertakan type variable serta nilai awal variable.

Contoh :

Delay(1000); // menunggu selama satu detik

Serial.println(100); // mengirimkan 100

Type variableName = 0;

Int inputVariable = 0; // mendefinisikan sebuah variable bernama inputVariable dengan nilai awal 0

inputVariable = analogRead(2); // menyimpan nilai yang ada di analog pin 2 ke inputVariable

(15)

Variable scope

Sebuah variable dapat dideklarasikan pada awal program sebelum void setup ( ), secara lokal di dalam sebuah function, dan terkadang di dalam sebuah block statement pengulangan. Sebuah variable global hanya satu dan dapat digunakan pada semua block function dan statement didalam program. Variable global dideklarasikan pada awal program sebelum fungsi setup ( ).

Contoh penggunaan:

int value; // ‘value’ adalah variable global dan dapat di gunakan pada semua block funtion

void setup() { // no setup needed } void loop() {

for (int i=0; i<20;) // 'i' hanya dapat di gunakan dalam pengulangan saja

{ i++; }

float f; // 'f' sebagai variable local }

(16)

 If…else

Operator if…else mengtest sebuah kondisi apabila tidak sesuai dengan kondisi yang pertama maka akan mengeksekusi baris program yang ada di else.

For

Operator for digunakan dalam blok pengulangan tertutup If ( inputPin == HIGH ) { //Laksanakan rencana A; } Else { //Laksanakan rencana B; }

For ( initialization; condition; expression ) {

//doSomethig; }

(17)

pinMode (pin, mode)

Digunakan dalam void setup ( ) untuk mengkonfigurasi pin apakah sebagai Input atau Output. Arduino digital pins secara default di konfigurasi sebagai input sehingga untuk merubahnya harus menggunakan operator pinMode ( pin, mode ).

Function

Function ( fungsi ) adalah blok pemrograman yang mempunyai nama dan mempunyai statement yang akan di eksekusi ketika function di panggil. Fungsi void setup ( ) dan void loop ( ) telah di bahas di atas dan pembuatan fungsi yang lain akan di bahas selanjutnya.

Cara pendeklarasian function :

pinMode (pin, OUTPUT); // mengset pin sebagai output digitalWrite(pin, HIGH); // pin sebagai source voltage

type functionName(parameters) {

// Statement; }

(18)

Contoh:

Pada contoh di atas fungsi tersebut memiliki nilai balik int (integer), karena kalau tidak menghendaki adanya nilai balik maka type function harus void.

Setelah mengetahui bahasa pemrograman yang di buat langkah selanjutnya menbuat program yang untuk masing masing alat seperti yang ditunjukkan pada diagram alur seperti di bawah ini :

int delayVal() {

int v; // membuat variable ‘v’ bertipe integer v = analogRead(pot); // baca harga potentiometer v /= 4; // konversi 0-1023 ke 0-255

return v; // return nilai v }

(19)
(20)

3.3.2 Program Pendeteksi gerakan

Sesuai dengan fungsinya PIR merupakan alat atau perangkat yang digunakan untuk mendeteksi gerakan manusia, alat ini akan bekerja jika ada gerakan manusia yang melintasi PIR. Sensor ini di kendalikan dengan menggunakan control arduino, setelah selasai merakit rangkaian sensor gerakan langkah selanjutnya membuat program IDE pada sketch arduino 1.0.1.

(21)

Program motion detection :

Electronik Key With Password by: Handoko Sukamto

date : Desember 2012

*/

// include the library code:

const int pir = 14; //Sensor PIR dikoneksikan ke pin 14 int pirstate = 0; //Mendeklarasikan nilai awal dari PIR

void setup() {

pinMode(pir,INPUT); }

//--- //sub program untuk mendeteksi gerakan //---

(22)

void motiondetection (){

pirstate = digitalRead(pir); //nilai dari pirstate diambil dari pembacaan sensor PIR

if (pirstate == HIGH) { //jika pirstate = 1, maka digitalWrite(Buzzer,HIGH); //nyalakan Buzzer lcd.setCursor(0,0);

lcd.print(" Ada orang "); lcd.setCursor(0,2); lcd.print( " Dalam Rumah " ); delay (1000); lcd.clear();

lcd.print(" Enter Password ");

digitalWrite(Buzzer,LOW); //Matikan Buzzer }

else { //jika pirstate = 0, maka

digitalWrite(Buzzer,LOW); //Matikan Buzzer }

}

void loop(){

motiondetection (); }

(23)

3.3.3 Program LCD 16 x 2

Pada bagian ini akan mengulas tentang pemrograman standar LCD 16 x 2 dengan arduino.Program ini di buat agar LCD ( Liquid Crystal Display ) bisa menampilkan apa yang dim au dari perencana seperti jika mendeteksi gerakan, atau saat memasukan kode rahasia ( password ) pembuka kunci.

Contoh program LCD ( Liquid Crystal Display ) :

// include the library code:

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); lcd.begin(16,2);

lcd.print(" Enter Password ");

void setup() {

// set up the LCD's number of columns and rows: lcd.begin(16, 2);

// Print a message to the LCD. lcd.print("hello, world!"); }

(24)

3.3.4 Program Buzzer

Untuk menghubungkan Buzzer/piezo elements ke salah satu pin digital Arduino. Sebuah Buzzer akan menghasilkan suara ketukan setiap kali dialiri gelombang arus listrik. Pada saat menempatkan buzzer, perhatikan polaritas-nya (tanda +) jangan terbalik. Kaki dengan tanda +dihubungkan dengan pin 13 Arduino.

void loop() {

// Turn off the cursor: lcd.noCursor(); delay(500);

// Turn on the cursor: lcd.cursor();

delay(500); }

(25)

Berikut contoh programnya :

/* Piezo

This example shows how to run a Piezo Buzzer on pin 13 using the analogWrite() function.

It beeps 3 times fast at startup, waits a second then beeps continuously at a slower pace

*/

void setup() {

// declare pin 13 to be an output: pinMode(13, OUTPUT); beep(50); beep(50); beep(50); delay(1000); }

(26)

3.3.5 Program Keypad

Keypad di gunakan untuk memasukan kode rahasia ( password ) yang di rancang oleh perancang, sehingga harus di set pada pemrograman dengan menggunakan sketch arduino 1.0.1,

void loop() { beep(200); }

void beep(unsigned char delayms){

analogWrite(13, 20); // Almost any value can be used except 0 and 255 // experiment to get the best tone

delay(delayms); // wait for a delayms ms analogWrite(13, 0); // 0 turns it off

delay(delayms); // wait for a delayms ms }

(27)

Berikut contoh program keypad :

*/

// include the library code: #include <Keypad.h>

const byte ROWS = 4; //four rows const byte COLS = 3; //four columns char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; char berita[16]={ ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' '}; char tampil[16]={ ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' ', ' ',' ',' ',' '};

(28)

byte rowPins[ROWS] = {

0,1,2,3}; //connect to the row pinouts of the keypad byte colPins[COLS] = {

4,5,6 }; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

byte k=3,n=0;

char PIN[6]={'1','2','3','4','5','6'}; // our secret (!) number char attempt[6]={

0,0,0,0,0,0}; // used for comparison int z=0;

void setup() { lcd.begin(16,2);

lcd.print(" Enter Password "); }

//---

//Bila PIN benar, akan dieksekusi sub program ini : //---

void correctPIN() // do this if correct PIN entered {

Gambar

Gambar 3.1 Diagram Blok Rangkaian Sistem Pengaman Ganda Kunci Elektronik  Dari  Blok  Diagram  dapat  kita  liat  apa  saja  yang  diperlukan  dalam  perancangan  alat diantaranya :
Gambar 3.2 Penampang PIR  Spesifikasi Passive Infra Red :
Gambar 3.4 Skema Rangkaian Sensor PIR dan Arduino
Gambar 3.5 Skema Rangkaian Sensor keypad dan Arduino
+7

Referensi

Dokumen terkait

Pemberdayaan, adalah segala upaya pemerintah daerah dalam melindungi pasar tradisional, usaha mikro, kecil, menengah, dan koperasi agar tetap eksis dan mampu berkembang

dari sisi internal untuk peluang dan tantangan di tahun 2018, melanjutkan kinerja yang relatif baik di tahun 2017, prospek perekonomian nasional ke depan diperkirakan semakin

Fisik motorik merupakan salah satu aspek perkembangan yang harus dikembangkan dalam pendidikan anak usia dini karena untuk mencapai kematangan motorik anak

Meskipun sebanyak 3 puskesmas tidak melakukan test HIV dalam pelaksanaan program PMTCT di puskesmas, namun menurut informasi bidan puskesmas, mereka tetap melaksanakan penyuluhan

Berdasarkan hasil penelitian yang dilakukan untuk yang tidak memiliki jamban berdasarkan tempat buang air besar wilayah pesisir danau limboto di Desa Tabumela

Penelitian bertujuan untuk memberikan gambaran mengenai tekanan darah pada pasien post hemodialisa berdasarkan umur, jenis kelamin dan berat badan di PKU

Pada saat bank syari’ah melakukan transaksi keuangan dengan nasabahnya, maka keduanya akan membuat suatu perjanjian atau akad yang bertujuan untuk mengikat

Sebagai tambahan, untuk mengetahui bahwa proses replikasi telah berhasil dengan baik—di mana server slave siap mengejar operasi penulisan pada server master,