- 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
1. 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.
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.
2. Arduino Uno
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaanAtmel. 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 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.
3. Sensor ultrasonic
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.
Berikut adalah visualisasi dari sinyal yang dikirimkan oleh sensor HC-SR04
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:
4. Sensor infrared
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:
5. Motor servo
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
Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam).
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 16 x 2
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untukmenampilkan 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.
7. LED
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-570nm 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).
LED atau Light Emitting Diode yang memancarkan cahaya ketika dialiri tegangan maju ini juga dapat digolongkan sebagai Transduser yang dapat mengubah Energi Listrik menjadi Energi Cahaya.
8. Buzzer
Buzzer Listrik adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Pada umumnya, Buzzer yang merupakan sebuah perangkat audio ini sering digunakan pada rangkaian anti-maling, Alarm pada Jam Tangan, Bel Rumah, peringatan mundur pada Truk dan perangkat peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan digunakan adalah Buzzer yang berjenis Piezoelectric, hal ini dikarenakan Buzzer Piezoelectric memiliki berbagai kelebihan seperti lebih murah, relatif lebih ringan dan lebih mudah dalam menggabungkannya ke Rangkaian Elektronika lainnya. Buzzer yang termasuk dalam keluarga Transduser ini juga sering disebut dengan Beeper.
9. Baterai 12v
Battery adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat elektronik.Dalam betrai ion litium berpindah dari elektroda negatif ke melalui elektrolit ke elektroda positif selama pengosongan dan kembali pada saat pengisian.Baterai Li-ion menggunakan senyawa litium selingan sebagai bahan di elektroda positif dan biasanya grafit di elektroda negatif.
10. Relay
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.
Prinsip Kerja Relay
Pada dasarnya, Relay terdiri dari 4 komponen dasar yaitu :
- Electromagnet (Coil)
- Armature
- Switch Contact Point (Saklar)
- Spring
Kontak Poin (Contact Point) Relay terdiri dari 2 jenis yaitu :
- Normally Close (NC) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi CLOSE (tertutup)
- Normally Open (NO) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi OPEN (terbuka)
Berdasarkan gambar diatas, sebuah Besi (Iron Core) yang dililit oleh sebuah kumparan Coil yang berfungsi untuk mengendalikan Besi tersebut. Apabila Kumparan Coil diberikan arus listrik, maka akan timbul gaya Elektromagnet yang kemudian menarik Armature untuk berpindah dari Posisi sebelumnya (NC) ke posisi baru (NO) sehingga menjadi Saklar yang dapat menghantarkan arus listrik di posisi barunya (NO). Posisi dimana Armature tersebut berada sebelumnya (NC) akan menjadi OPEN atau tidak terhubung. Pada saat tidak dialiri arus listrik, Armature akan kembali lagi ke posisi Awal (NC). Coil yang digunakan oleh Relay untuk menarik Contact Poin ke Posisi Close pada umumnya hanya membutuhkan arus listrik yang relatif kecil.
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 :
Perhitungan:
14. Lampu
Lampu Listrik adalah suatu perangkat yang dapat menghasilkan cahaya saat dialiri arus listrik.Arus listrik yang dimaksud ini dapat berasal tenaga listrik yang dihasilkan oleh pembangkit listrik terpusat (Centrally Generated Electric Power) seperti PLN dan Genset ataupun tenaga listrik yang dihasilkan oleh Baterai dan Aki.
Simbol lampu :
Seiring dengan perkembangan Teknologi, Lampu Listrik juga telah mengalami berbagai perbaikan dan kemajuan. Teknologi Lampu Listrik bukan saja Lampu Pijar yang ditemukan oleh Thomas Alva Edison saja namun sudah terdiri dari berbagai jenis dan Teknologi. Pada dasarnya, Lampu Listrik dapat dikategorikan dalam Tiga jenis yaitu Incandescent Lamp (Lampu Pijar), Gas-discharge Lamp (Lampu Lucutan Gas) dan Light Emitting Diode (Lampu LED).
15. Sumber AC
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.
16. Potensiometer
Potensiometer (POT) 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
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
- Sebagai Pengendali Level Sinyal
17. Logicstate
Pengertian logis, benar atau salah, dari sinyal biner yang diberikan.Sinyal biner adalah sinyal digital yang hanya memiliki dua nilai yang valid. Dalam istilah fisik, pengertian logis dari sinyal biner ditentukan oleh level tegangan atau nilai arus sinyal, dan ini pada gilirannya ditentukan oleh teknologi perangkat. Dalam sirkuit TTL, misalnya, keadaan sebenarnya diwakili oleh logika 1, kira-kira sama dengan +5 volt pada garis sinyal; logika 0 kira-kira 0 volt. Tingkat tegangan antara 0 dan +5 volt dianggap tidak ditentukan.
Karena hanya dua status logika, logika 1 dan logika 0, yang dimungkinkan, teknik aljabar Boolean dapat digunakan untuk menganalisis rangkaian digital yang melibatkan sinyal biner. Istilah logika positif diterapkan ke sirkuit di mana logika 1 ditetapkan ke level tegangan yang lebih tinggi; Dalam rangkaian logika negatif, logika 1 ditunjukkan dengan level tegangan yang lebih rendah.Lihat juga logika multinilai.
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 sebelum disimulasikan
Ketika ada maling
Ketika aman
Project rangkaian ini dibuar
bertujuan untuk mencegah terjadi pencurian barang di museum. Pada rangkaian ini
menggunakan dua buah Arduino yang saling berkomunikasi, yaitu Arduino Master
dan Arduino Slave. Kedua Arduino ini menggunakan komunikasi UART (Universal
Asynchronous Receiver-Transmitter). UART sendiri adalah bagian perangkat keras
komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. Rangkaian
ini menggunakan 4 buah sensor Infrared dan 1 sensor Ultrasonik. Sensor Infrared
sendiri diletakkan di sudut lemari kaca tempat barang museum dipajang,
sedangkan sensor Ultrasonik dipasang dibagian atas dari lemari kaca. Output
dari rangkaian ini berupa LCD, Motor Servo, LED Merah, LED Hijau, lampu sorot
dan buzzer.
Di rangkaian ini sensor
infrared terhubung ke pin 6, 7, 8, 9
Arduino Master. Dan Pin 10 dan 13
dihubungkan ke sensor ultrasonik yaitu ke pin trigger dan pin echo. LCD
yang menjadi output terhubung ke Pin 2, 3, 4, 5, 11, dan 12 Arduino Master. Pin
receiver Arduino Master dihubungkan ke pin receiver Arduino Slave dan pin
transmitter dari Arduino Master dihubungkan ke pin transmitter Arduino Slave. Pada Arduino Slave, pin PWM yaitu pin 9 dan
10 dihubungkan ke motor servo. Disini motor servo berfungsi untuk menurunkan
barang di museum atau menutup pintu. Pin 4, 6, dan 7 dihubungkan ke resistor
kemudian ke LED. Pin 2 dan 3 dihubungkan transistor, relay, dan buzzer. Pin A0
dihubungkan ke transistor, dioda, relay, dan lampu.
Untuk listing program pada Arduino
Master, pertama yaitu kita mendeklarasikan library LCD dan pin-pin yang
digunakan pada Arduino Master. Lalu untuk fungsi void setup, yaitu fungsi yang
ada pada void setup ini hanya akan dieksekusi sekali. Disini void setup akan
mendeklarasian input dan output pada pin-pin Arduino Master sehingga pada LCD
akan tampil tulisan “kelompok 11”.
Kemudian
untuk fungsi void loop, fungsi yang akan dijalankan secara berulang, dilakukan
pembacaan terhadap masukan sensor infrared ke arduino, mengirim logika LOW dan
HIGH ke pin trigger pada sensor ultrasonik, dan melakukan perhitungan jarak
sensor ultrasonik dengan rumus (duration/2)/29,1. Disini Duration adalah sinyal
yang masuk ke pin echo. Lalu terdapat beberapa perulangan kondisi yang dideklarasikan
dengan if dan else if. Untuk contoh seperti pada kondisi dimana semua Sensor Infrared
berlogika HIGH dan pada Sensor Ultrasonik jarak yang terukur kurang dari 100
cm. Pada kondisi ini, akan ditampilkan tulisan “Ada Maling” pada LCD kemudian Arduino
Master akan mengirim karakter “n” ke Arduino Slave, lalu Arduino Slave akan
memberikan perintah pada output. Namun jika semua sensor Infrared berlogika LOW
dan Sensor Ultrasonik jarak yang terukur besar dari 100 cm, maka akan
ditampilkan tulisan “Aman” pada LCD, lalu
Arduino Master akan mengirim karakter “6” ke Arduino Slave.
Pada
listing program slave, dideklarasikan library motor servo dan pin pin pada Arduino yang digunakan.
Kemudian pada void setup, yaitu fungsi yang dieksekusi sekali, dideklarasikan
pin pin yang menjadi input atau output pada Arduino Slave. Untuk void lood,
yaitu fungsi yang dieksekusi berulang. Bagian
pertama adalah program untuk menghidupkan lampu yang berfungsi sebagai lampu
sorot. Kemudian Arduino Slave akan mngecek apakah ada data yang dikirimkan oleh
Arduino Master. Jika ada, maka program akan mengeksekusi perulangan if dengan
beberapa kondisi. Sebagai contoh yaitu Ketika Arduino Master mengirimkan data
karakter “n”, maka LED merah akan hidup dan LED hijau akan mati. Pada kondisi
ini buzzer akan berbunyi dan motor servo akan bergerak satu arah, yaitu
menurukan barang museum dan menutup pintu.
Tidak ada komentar:
Posting Komentar