MODUL 4 ( PROJECT DEMO )
1. Judul [kembali]
-
Arduino uno
-
Sensor ultrasonic
-
Sensor infrared
-
Motor servo
-
LCD 16 x 2
-
LED red
-
LED green
-
Buzzer
-
Baterai 12v
-
Relay
-
Transistor
-
Diode
-
Resistor
-
Lampu
-
Sumber AC
-
Potensiometer
-
Logicstate
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, kemudia di transfer secara parallel ke data bus penerima.
Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :
Microcontroller
ATmega328P |
Operating Voltage 5 V |
Input Voltage (recommended) 7 – 12 V |
Input Voltage (limit) 6 – 20 V |
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 20 mA |
DC Current for 3.3V Pin 50 mA |
Flash Memory
32 KB of which 0.5 KB used by bootloader |
SRAM
2 KB |
EEPROM
1 KB |
Clock Speed
16 MHz |
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
- 12 V.
Crystal Oscillator
Kristal ini digunakan sebagai layaknya detak jantung pada Arduino.
Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
Reset
Digunakan untuk 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, suhu dsb, dan
mengubahnya menjadi nilai digital.
LED Power Indicator
Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik
dengan baik.
BAGIAN-BAGIAN PENDUKUNG
RAM
RAM (Random Access Memory)
adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses
dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori
atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory)
dan DRAM (Dynamic Random Acces Memory)
ROM
ROM
(Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan
data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM
terdiri dari Mask ROM, PROM, EPROM, EEPROM.
Sensor ini merupakan sensor ultrasonik siap
pakai, satu alat yang berfungsi sebagai pengirim, penerima, dan pengontrol
gelombang ultrasonik. Alat ini bisa digunakan untuk mengukur jarak benda dari
2cm - 4m dengan akurasi 3mm. Alat ini memiliki 4 pin, pin Vcc, Gnd, Trigger,
dan Echo. Pin Vcc untuk listrik positif dan Gnd untuk ground-nya. Pin Trigger
untuk trigger keluarnya sinyal dari sensor dan pin Echo untuk menangkap sinyal
pantul dari benda.
Cara menggunakan alat ini yaitu: ketika
kita memberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan
mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Selanjutnya,
sinyal akan diterima pada pin Echo. Untuk mengukur jarak benda yang memantulkan
sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal
digunakan untuk menentukan jarak benda tersebut.
Nilai jarak dapat diperoleh melalui rumus
berikut ini:
Jarak (cm) = Lama Waktu Pantul (uS) /
29.034 / 2
Rumus jarak didapat dari pembagian lama
waktu pantul dengan kecepatan gelombang ultrasonik dan dibagi 2 karena pada
saat pemantulan terjadi dua kali jarak tempuh antara sensor dengan objek. Yaitu
pada saat gelombang dipancarkan dari transmitter ke objek dan pada saat
gelombang memantul ke receiver ultrasonik.
Grafik Respon Sensor:
Sensor IR (Infrared) adalah sebuah sensor
yang dapat mendeteksi rintangan menggunakan cahaya inframerah yang dipantulkan.
Sensor ini mempunyai dua bagian utama yaitu IR emitter dan IR receiver. Emitter
bertugas memantulkan inframerah ke rintangan atau objek kemudian akan
dipantulkan dan diterima oleh receiver. Ketika inframerah mengenai sebuah
objek, kondisinya akan LOW dan begitu juga sebaliknya.
Dalam komponen tersebut terdapat 2 sensor
infrared yang masing-masing berfungsi sebagai pemancar dan penerima, bentuknya
seperti LED kecil, dari gambar diatas dapat dilihat Infrared yang berwarna biru
berfungsi sebagai pemancar cahaya, dan yang berwarna hitam berfungsi sebagai
penerima cahayanya
Dari gambar diatas dapat kita pahami bahwa
ketika sensor dihadapkan dengan benda yang dapat merefleksikan cahaya maka
cahaya, maka cahaya akan diteruskan kepada sensor receiver. Jika sensor
dihadapkan dengan benda yang tidak dapat merefleksikan cahaya, maka cahaya
InfraRed tidak akan diteruskan.
Dari hasil percobaan yang dilakukan, keluaran dari sensor akan bernilai high ketika dihadapkan dengan warna yang tidak dapat merefleksikan cahaya, misalnya dengan warna hitam. kemudian pada saat dihadapkan dengan benda/warna yang tidak dapat merefleksikan cahaya keluaran dari sensor bernilai LOW.
Grafik Respon Infrared:
Motor servo adalah sebuah perangkat atau
aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop
tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan
memastikan posisi sudut dari poros output motor. motor servo merupakan
perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan
potensiometer. Serangkaian gear yang melekat pada poros motor DC akan
memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan
potensiometer dengan perubahan resistansinya saat motor berputar berfungsi
sebagai penentu batas posisi putaran poros motor servo.
Penggunaan sistem kontrol loop tertutup
pada motor servo berguna untuk mengontrol gerakan dan posisi akhir dari poros
motor servo. Penjelasan sederhananya begini, posisi poros output akan di sensor
untuk mengetahui posisi poros sudah tepat seperti yang di inginkan atau belum,
dan jika belum, maka kontrol input akan mengirim sinyal kendali untuk membuat
posisi poros tersebut tepat pada posisi yang diinginkan. Untuk lebih jelasnya
mengenai sistem kontrol loop tertutup, perhatikan contoh sederhana beberapa
aplikasi lain dari sistem kontrol loop tertutup, seperti penyetelan suhu pada
AC, kulkas, setrika dan lain sebagainya.
Motor servo biasa digunakan dalam
aplikasi-aplikasi di industri, selain itu juga digunakan dalam berbagai
aplikasi lain seperti pada mobil mainan radio kontrol, robot, pesawat, dan lain
sebagainya.
Ada dua jenis motor servo, yaitu motor
servo AC dan DC. Motor servo AC lebih dapat menangani arus yang tinggi atau
beban berat, sehingga sering diaplikasikan pada mesin-mesin industri. Sedangkan
motor servo DC biasanya lebih cocok untuk digunakan pada aplikasi-aplikasi yang
lebih kecil. Dan bila dibedakan menurut rotasinya, umumnya terdapat dua jenis
motor servo yang dan terdapat di pasaran, yaitu motor servo rotation
180⁰ dan servo rotation continuous.
Motor servo standard (servo rotation 180⁰)
adalah jenis yang paling umum dari motor servo, dimana putaran poros
outputnya terbatas hanya 90⁰ kearah kanan dan 90⁰ kearah kiri. Dengan
kata lain total putarannya hanya setengah lingkaran atau 180⁰.
Motor servo rotation continuous merupakan
jenis motor servo yang sebenarnya sama dengan jenis servo standard, hanya saja
perputaran porosnya tanpa batasan atau dengan kata lain dapat berputar terus,
baik ke arah kanan maupun kiri.
Prinsip Kerja
Ketika lebar pulsa kendali telah diberikan,
maka poros motor servo akan bergerak atau berputar ke posisi yang telah
diperintahkan, dan berhenti pada posisi tersebut dan akan tetap bertahan pada
posisi tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau mengubah
posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan
besarnya kekuatan torsi yang dimilikinya (rating torsi servo). Namun motor
servo tidak akan mempertahankan posisinya untuk selamanya, sinyal lebar pulsa
kendali harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar
posisi poros motor servo tetap bertahan pada posisinya.
6. LCD 16x2
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).
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.
LED (Light Emitting Diode) atau sering
disingkat dengan LED adalah komponen elektronika yang dapat memancarkan cahaya
monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang
terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED
tergantung pada jenis bahan semikonduktor yang dipergunakannya. Pada praktikum
ini digunakan LED berwarna hijau yang terbuat dari bahan semikonduktor Aluminium
Gallium Phosphide (AlGaP) dengan wavelength 550-570 nm dan LED merah dengan
panjang gelombang 620-740 nm.
Bentuk LED mirip dengan sebuah bohlam (bola
lampu) yang kecil dan dapat dipasangkan dengan mudah ke dalam berbagai
perangkat elektronika. Berbeda dengan Lampu Pijar, LED tidak memerlukan
pembakaran filamen sehingga tidak menimbulkan panas dalam menghasilkan cahaya.
Cara kerja dari LED, seperti dikatakan
sebelumnya, LED merupakan keluarga dari Dioda yang terbuat dari Semikonduktor.
Cara kerjanya pun hampir sama dengan Dioda yang memiliki dua kutub yaitu kutub
Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan cahaya apabila
dialiri tegangan maju (bias forward) dari Anoda menuju ke Katoda.
LED terdiri dari sebuah chip semikonduktor
yang di doping sehingga menciptakan junction P dan N. Yang dimaksud dengan
proses doping dalam semikonduktor adalah proses untuk menambahkan
ketidakmurnian (impurity) pada semikonduktor yang murni sehingga menghasilkan
karakteristik kelistrikan yang diinginkan. Ketika LED dialiri tegangan maju
atau bias forward yaitu dari Anoda (P) menuju ke Katoda (K), Kelebihan Elektron
pada N-Type material akan berpindah ke wilayah yang kelebihan Hole (lubang)
yaitu wilayah yang bermuatan positif (P-Type material). Saat Elektron berjumpa
dengan Hole akan melepaskan photon dan memancarkan cahaya monokromatik (satu
warna).
Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi.
11. Transistor
Transistor adalah alat semikonduktor yang
dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung arus
(switching), stabilisasi tegangan, dan modulasi sinyal.
12. Dioda
Dioda (Diode) adalah Komponen terbuat dari
bahan semikonduktor dan mempunyai fungsi untuk menghantarkan arus listrik ke
satu arah tetapi menghambat arus listrik dari arah sebaliknya. Karena sifatnya
yang dapat menghantarkan arus listrik ke satu arah (forward bias) dan
menghambat arus listrik dari arah sebaliknya (reverse bias), dioda sering
digunakan sebagai penyearah atau catu daya.
13. Resistor
Resistor merupakan salah satu komponen yang paling sering ditemukan dalam Rangkaian Elektronika. Hampir setiap peralatan Elektronika menggunakannya. Pada dasarnya Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam suatu rangkaian Elektronika. Resistor atau dalam bahasa Indonesia sering disebut dengan Hambatan atau Tahanan dan biasanya disingkat dengan Huruf “R”. Satuan Hambatan atau Resistansi Resistor adalah OHM (Ω).
Cara menghitung nilai resistor :
Nilai Resistor yang berbentuk Axial adalah
diwakili oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri
dalam bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh Resistor, tetapi ada
juga yang 5 Gelang.
Gelang warna Emas dan Perak biasanya
terletak agak jauh dari gelang warna lainnya sebagai tanda gelang terakhir.
Gelang Terakhirnya ini juga merupakan nilai toleransi pada nilai Resistor yang
bersangkutan.
Tabel dibawah ini adalah warna-warna yang
terdapat di Tubuh Resistor :
Sumber arus listrik AC kependekan dari
Alternating Current, dikenal dengan arus bolak-balik karena merupakan sumber
arus yang dihasilkan oleh generator dan PLN. Arus AC ini dikatakan bolak-balik
karena arus yang mengalir tidak tetap yaitu dari positif ke negatif dan dari
negatif ke positif. Arus listrik AC akan membentuk suatu gelombang yang
dinamakan dengan gelombang sinus atau lebih lengkapnya sinusoida. Di Indonesia
sendiri listrik bolak-balik (AC) dipelihara dan berada dibawah naungan PLN,
Indonesia menerapkan listrik bolak-balik dengan frekuensi 50Hz. Tegangan
standar yang diterapkan di Indonesia untuk listrik bolak-balik 1 (satu) fasa
adalah 220 volt.
Pada dasarnya bagian-bagian penting dalam
Komponen Potensiometer adalah :
- Penyapu atau disebut juga dengan Wiper
- Element Resistif
- Terminal
Prinsip Kerja:
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).
Fungsi
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
MASTER
//MASTER
#include
<LiquidCrystal.h>
#define
trigPin 10
#define
echoPin 13
LiquidCrystal
lcd(12, 11, 5, 4, 3, 2);
int
S1 = 6;
int
S2 = 7;
int
S3 = 8;
int
S4 = 9;
void
setup() //Semua kode dalam fungsi
ini dieksekusi sekali
{
lcd.begin(16, 2);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(S1, INPUT);
pinMode(S2, INPUT);
pinMode(S3, INPUT);
pinMode(S4, INPUT);
Serial.begin(9600); //Set baud rate 9600
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kelompok 11");
delay(1000);
}
void
loop() //Semua kode dalam fungsi
ini dieksekusi berulang
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
int S1 = digitalRead(6);
int S2 = digitalRead(7);
int S3 = digitalRead(8);
int S4 = digitalRead(9);
if (S1 == HIGH)
{
Serial.print("a");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2==HIGH)
{
Serial.print("b");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S3==HIGH)
{
Serial.print("c");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S4==HIGH)
{
Serial.print("d");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (distance < 100)
{
Serial.print("e");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2 == HIGH)
{
Serial.print("f");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S3 == HIGH)
{
Serial.print("g");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S4 == HIGH)
{
Serial.print("h");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && distance
<100)
{
Serial.print("i");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2 == HIGH && S3 == HIGH)
{
Serial.print("j");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2 == HIGH && S4 == HIGH)
{
Serial.print("k");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2 == HIGH && distance
<100)
{
Serial.print("l");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S3 == HIGH && S4 == HIGH)
{
Serial.print("m");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S3 == HIGH && distance
<100)
{
Serial.print("n");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S4 == HIGH && distance
<100)
{
Serial.print("o");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2==HIGH
&& S3 == HIGH)
{
Serial.print("p");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2==HIGH
&& S4 == HIGH)
{
Serial.print("q");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2==HIGH
&& distance < 100)
{
Serial.print("r");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S3==HIGH
&& S4 == HIGH)
{
Serial.print("s");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S3==HIGH
&& distance < 100)
{
Serial.print("t");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S4==HIGH
&& distance < 100)
{
Serial.print("u");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2 == HIGH && S3==HIGH
&& S4 == HIGH)
{
Serial.print("v");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2 == HIGH && S3 ==HIGH
&& distance < 100)
{
Serial.print("w");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2 == HIGH && S4 == HIGH
&& distance < 100)
{
Serial.print("x");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S3 == HIGH && S4 == HIGH
&& distance < 100)
{
Serial.print("y");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2 == HIGH
&& S3 == HIGH && S4 == HIGH)
{
Serial.print("z");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2 == HIGH
&& S3 == HIGH && distance < 100)
{
Serial.print("1");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2 == HIGH
&& S4 == HIGH && distance < 100)
{
Serial.print("2");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S3 == HIGH
&& S4 == HIGH && distance < 100)
{
Serial.print("3");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S2 == HIGH && S3 == HIGH
&& S4 == HIGH && distance < 100)
{
Serial.print("4");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else if (S1 == HIGH && S2==HIGH
&& S3==HIGH && S4==HIGH && distance < 100)
{
Serial.print("5");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ADA MALING");
delay(10);
}
else {
Serial.print("6");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("AMAN");
delay(10);
}
}
SLAVE
//SLAVE
#include
<Servo.h>
#define
relay1 2
#define
led1 4
#define
relay2 7
#define
led2 8
#define
relay3 A0
#define
led3 6
Servo
servo1;
Servo
servo2;
void
setup() //Semua kode dalam fungsi ini
dieksekusi sekali
{
//Deklarasi LED sebagai output
pinMode(led1,OUTPUT);
pinMode(relay1, OUTPUT);
pinMode(led2,OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(led3,OUTPUT);
servo1.attach(9);
servo2.attach(10);
Serial.begin(9600); //Set baud rate 9600
}
void
loop() //Semua
program dalam fungsi ini dieksekusi berulang
{
digitalWrite(relay3, HIGH);
if(Serial.available()>0)
{
int data = Serial.read();
if(data=='a')//Jika data yang dikirimkan
berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='b')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='c')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='d')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='b')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='e')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='f')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='g')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='h')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='i')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='j')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='k')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='l')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='m')//Jika data yang dikirimkan
berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='n')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='o')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='p')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='q')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='r')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='s')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='t')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='u')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='v')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='w')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='x')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='y')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='z')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='1')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='2')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='3')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='4')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else if(data=='5')//Jika data yang
dikirimkan berlogika
{
//ADA MALING
servo1.write(5);
servo2.write(5);
digitalWrite(led1, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(led3, LOW);
delay(500);
}
else
{
//AMAN
servo1.write(95);
servo2.write(95);
digitalWrite(led1, LOW);
digitalWrite(relay1, LOW);
digitalWrite(led2, LOW);
digitalWrite(relay2, LOW);
digitalWrite(led3, HIGH);
delay(500);
}
}
}
Rangkaian simulasi ini digunakan dalam mencegah terjadinya
pencurian barang yang dilakukan di museum. Rangkaian ini menggunakan komunikasi
UART. UART (Universal Asynchronous Receiver-Transmitter) adalah bagian
perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan
bit-bit serial. Pada rangkaian ini menggunakan 4 buah sensor infrared, dan 1 buah sensor
ultrasonik. Sensor infrared akan
diletakkan pada empat sudut lemari kaca tempat yang digunakan untuk meletakkan barang
yang di pajang pada museum sedangkan sensor ultrasonik akan diletakkan pada bagian atas
lemari kaca. Hasil output dari sensor ini ditampilkan pada LCD, selanjutnya
pada pergerakan motor servo, LED red, LED green, lampu sorot, dan buzzer.
Untuk rangkaian ini pin 6, 7, 8, dan 9 akan dihubungkan pada masing-masing sensor
infrared. Selanjutnya Pin 10 dan 13 arduino master dihubungkan ke pin trigger
dan echo dari sensor ultrasonik. Pin 2, 3, 4, 5, 10, dan 11 arduino master
dihubungkan ke LCD untuk menampilkan ouutput. Berdasarkan prinsip dari
komunikasi UART maka pin receiver dan transmitter dari arduino master akan
dihubungkan ke pin receiver dan transmitter dari arduino slave. Pada arduino
slave, pin 9 dan 10 dihubungkan ke motor servo. Pin 4, 6, dan 7 dihubungkan ke
LED. Pin 2 dan 3 dihubungkan ke buzzer sedangkan pin A0 dihubungkan pada lampu.
Pada rangkaian ini digunakan led dan resistor sebagai
hambatan, hal ini bertujuan agar arus yang mengalir menuju LED sesuai dengan
kapasitas tegangan dari LED. Selanjutnya untuk buzzer dan lampu digunakan
transistor dan relay, transistor pada rangkaian ini berfungsi sebagai switch. Saat
tegangan pada kaki basis transistor bernilai > 0,7 V maka arus akan mengalir
dari kaki kolektor ke kaki emitor, sehingga menyebabkan transistor ON dan relay
akan hidup.
Untuk listing program pada master, bagian pertama yaitu mendeklarasikan
library LCD dan pin-pin yang digunakan pada arduino master. Selanjutnya fungsi
void setup, semua fungsi yang ada pada void setup hanya dieksekusi sekali. Untuk
rangkaian ini, void setup akan mendeklarasian input dan output pada pin-pin
arduino master sehingga pada LCD akan tampil tulisan yaitu “kelompok 11”.
Selanjutnya untuk void loop, akan dilakukan pembacaan
terhadap input dari sensor infrared yang menuju ke arduino, kemudian akan mengirim
sinyal LOW dan HIGH ke pin trigger pada sensor ultrasonik, dan melakukan
perhitungan jarak dengan menggunkan rumus (duration/2)/29,1. Duration diperoleh
dari sinyal yang masuk ke pin echo. Terdapat beberapa kondisi yang di if dan
else if yang ditulis untuk mendeklarasikan beberapa kondisi pada sensor.
Sebagai contoh pada kondisi 2 sensor infrared berlogika HIGH dan pada ultrasonik
jarak yang terukur kurang dari 100 cm. Pada kondisi ini, pada LCD akan
menampilkan tulisan “Ada maling” kemudian arduino master akan mengirim karakter
“r” ke arduino master yang nantinya akan menghidupkan LED red dan buzzer.
Apabila semua sensor infrared berlogika LOW dan pada ultrasonik jarak yang
terukur besar dari 100 cm, maka pada LCD akan tampil tulisan “Aman” kemudian
arduino master akan mengirim karakter “6” ke arduino slave.
Pada listing program slave, deklarasikan library motor servo
dan pin-pin arduino yang digunakan. Pada void setup, deklarasikan penggunaan
pin-pin sebagai input atau output. Pada void loop, pada bagian pertama terdapat
program untuk menghidupkan lampu sebagai lampu sorot. Kemudian arduino slave
akan memeriksa apakah ada data yang dikirim dari arduino master, jika ada akan
masuk ke perulangan if. Sebagai contoh, jika arduino master mengirim karakter
“r”, maka LED green akan mati, kedua LED red akan hidup, dan kedua buzzer akan
berbunyi. Apabila arduino master mengirim karakter “6”, maka LED green akan
hidup, kedua LED red akan mati, dan kedua buzzer tidak berbunyi.
Prinsip Kerja Rangkaian Simulasi Visual Designer
Ketika rangkaian dihidupkan, serial monitor
akan menampilkan tulisan “Keadaan Museum”, sensor ultrasonic akan berfungsi
sebagai pendeteksi jarak seseorang ke benda yang dipamerkan. Lampu akan hidup
berfungsi sebagai lampu sorot ke benda yang dipamerkan. Apabila sensor
ultrasonik mendeteksi orang dengan jarak kurang dari 100 cm (1m), maka akan
sensor infrared akan aktif. Apabila sensor infrared mendeteksi adanya orang,
maka dapat dipastikan orang tersebut mempunyai niat untuk mencuri, sehingga LED
merah di ruangan pameran dan di ruang security akan menyala, buzzer di ruangan
pameran dan di ruang security akan berbunyi, kedua motor akan bergerak
menurunkan benda dan menutup pintu, dan pada LCD akan tampil tulisan “Ada
Maling”. Apabila sensor ultrasonic mendeteksi orang dengan jarak besar dari 100
cm (1m), maka sensor infrared tidak akan aktif karena tidak ada indikasi
seseorang akan mencuri. Ketika terdeteksi jarak besar dari 1 m, maka LED hijau
di ruang security akan menyala, kedua LED merah mati, kedua buzzer mati, kedua
motor tidak bergerak, dan pada LCD akan tampil tulisan “Aman”.
Download file rangkaian - Disini
Download file rangkaian Visual Designer - Disini
Download video simulasi - Disini
Download video simulasi Visual Designer - Disini
Download program arduino master - Disini
Download program arduino slave - Disini
Download library arduino uno -Disini
Download library sensor ultrasonik - Disini
Download library sensor infrared - Disini
Download datasheet arduino - Disini
Download datasheet sensor ultrasonik - Disini
Download datasheet sensor infrared - Disini
Download datasheet dioda 1N4007 - Disini
Download datasheet transistor 2N2222 - Disini
Download datasheet LCD - Disini
Download datasheet motor servo - Disini
Download HTML - Disini
Tidak ada komentar:
Posting Komentar