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 project demo ini merupakan rangkaian simulasi alarm
anti maling yang digunakan untuk mencegah terjadinya pencurian barang berharga
yang terdapat pada suatu 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.
UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi
serial pada komputer atau port serial perangkat periperal.
Pada rangkaian alarm anti maling ini
menggunakan 2 buah arduino yang
berfungsi sebagai master dan slave, 4 buah sensor
infrared, dan 1 buah sensor ultrasonik. Sensor infrared diletakkan pada empat
sudut lemari kaca masing – masing
1 untuk setiap sudutnya tempat diletakkannya barang berharga yang di pajang pada
museum tersebut
sedangkan sensor ultrasonik akan diletakkan pada bagian atas lemari kaca. Untuk hasil output dari sensor
ini ditampilkannya tulisan
pada LCD, selanjutnya berbunyi atau
tidaknya buzzer, kemudian pergerakan motor servo, dan hidupnya LED red, LED
green, dan lampu
sorot yang tergantung terhadap kondisi
yang terjadi.
Pada simulasi ini menggunakan 2 arduino yang bertindak
sebagai master dan slave yang menggunakan komunikasi antar arduino yaitu
Komunikasi Serial Wireless yang berkomunikasi secara Asynchronous Receiver
Transmitter (UART). Berdasarkan prinsip dari komunikasi
UART pin receiver dan transmitter dari arduino master akan dihubungkan ke pin
receiver dan transmitter dari arduino slave. Pada rangkaian ini pin 6,
7, 8, dan 9 pada arduino master
dihubungkan pada masing-masing sensor infrared. Selanjutnya Pin 10 dan 13
arduino master dihubungkan ke pin trigger dan echo dari sensor ultrasonik. Selanjutnya Pin 2, 3, 4, 5,
10, dan 11 arduino master dihubungkan ke LCD untuk menampilkan output. Kemudian untuk arduino slavenya,
pin 9 dan 10 dihubungkan ke motor servo. Pin 4, 6, dan 7 dihubungkan ke LED melalui resistor.
Pin 2 dan 3 dihubungkan ke buzzer sedangkan pin A0 dihubungkan ke lampu dengan sebelumnya melewati dioda, transistor, dan relay.
Pada
rangkaian ini resistor dihubungkan
sebelum LED karena resistor berperan 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. Dan begitu juga sebaliknya, jika tegangan pada kaki
basis transistor < 0,7 V maka arus tidak mengalir
dari kaki kolektor ke kaki emitor, sehingga menyebabkan transistor OFF dan relay tidak hidup
Untuk
listing program pada master, bagian pertama yaitu mendeklarasikan library LCD
serta 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 fungsi void loop, merupakan fungsi yang akan diajalankan secara berulang.
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 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.
Untuk contoh selanjutnya jika pada kondisi 3 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 “1” ke arduino slave yang nantinya akan memberikan perintah output berupa menghidupkan
LED red dan buzzer.
Untuk listing program slave, pertama mendeklarasikan library
motor servo dan pin-pin arduino yang digunakan. Pada fungsi void setup, deklarasikan
penggunaan pin-pin arduino slave
baik sebagai input atau output. Pada fungsi void loop, pada bagian
pertama terdapat program untuk menghidupkan lampu yang digunakan 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 “6”, maka LED green akan hidup, kedua LED red akan mati, kedua motor servo tidak akan bergerak,
dan kedua buzzer tidak berbunyi.
Apabila arduino master mengirim karakter “1”, maka
LED green akan mati, kedua LED red akan hidup, kedua buzzer akan berbunyi, dan kedua motor servo akan bergerak ke satu arah untuk
menutup pintu dan menurunkan benda museum untuk diamankan.
Download file rangkaian - Disini
Download video simulasi - 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