1. Arduino Uno
Gambar 1.Arduino Uno
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Uno berbeda dengan semua board sebelumnya dalam hal koneksi USB-to-serial yaitu menggunakan fitur Atmega8U2 yang diprogram sebagai konverter USB-to-serial berbeda dengan board sebelumnya yang menggunakan chip FTDI driver USB-to-serial.
Nama “Uno” berarti satu dalam bahasa Italia, untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi referensi dari Arduino. Uno adalah yang terbaru dalam serangkaian board USB Arduino, dan sebagai model referensi untuk platform Arduino, untuk perbandingan dengan versi sebelumnya, lihat indeks board Arduino
SPESIFIKASI
SPESIFIKASI |
Arduino Uno |
Microcontroller | ATmega328P |
Operating Voltage | 5V |
Input Voltage (recommended) | 7-12V |
Input Voltage (limit) | 6-20V |
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 | (ATmega328P) |
SRAM | 2 KB (ATmega328P) |
EEPROM | 1 KB (ATmega328P) |
Clock Speed | 16 MHz |
LED_BUILTIN | 13 |
Length | 68.6 mm |
Width | 53.4 mm |
Weight | |
Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal (otomatis). Daya Eksternal (non-USB) dapat berasal baik dari AC-ke adaptor-DC atau baterai. Adaptor ini dapat dihubungkan dengan menancapkan plug jack pusat-positif ukuran 2.1mm konektor POWER. Ujung kepala dari baterai dapat dimasukkan kedalam Gnd dan Vin pin header dari konektor POWER. Kisaran kebutuhan daya yang disarankan untuk board Uno adalah7 sampai dengan 12 V, jika diberi daya kurang dari 7 V kemungkinan pin 5 V Uno dapat beroperasi tetapi tidak stabil kemudian jika diberi daya lebih dari 12V, regulator tegangan bisa panas dan dapat merusak board Uno. Pin listrik adalah sebagai berikut:
a) VIN. Tegangan masukan kepada board Arduino ketika itu menggunakan sumber daya eksternal (sebagai pengganti dari 5volt koneksi USB atau sumber daya lainnya).
b) 5V. Catu daya digunakan untuk daya mikrokontroler dan komponen lainnya.
c) 3v3. Sebuah pasokan 3,3volt dihasilkan oleh regulator on-board.
d) GND. Ground pin. Input dan output masing-masing dari 14 pin digital di Uno dapat digunakan sebagai input atau output, dengan menggunakan fungsi pinMode (), digitalWrite (), dan digitalRead (), beroperasi dengan daya 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki internal pull-up resistor (secara default terputus) dari 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi khusus:
e) Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) TTL data serial. Pin ini dihubungkan ke pin yang berkaitan dengan chip Serial ATmega8U2 USB-to-TTL.
f) Eksternal menyela: 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah, dengan batasan tepi naik atau turun, atau perubahan nilai. Lihat (attachInterrupt) fungsi untuk rincian lebih lanjut.
g) PWM: 3, 5, 6, 9, 10, dan 11. Menyediakan output PWM 8-bit dengan fungsi analogWrite ().
h) SPI: 10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Pin ini mendukung komunikasi SPI menggunakan SPI library.
i) LED: 13. Ada built-in LED terhubung ke pin digital 13. Ketika pin bernilai nilai HIGH, LED on, ketika pin bernilai LOW, LED off. Arduino Uno memiliki 6 masukan analog, berlabel A0 sampai dengan A5, yang masing-masing menyediakan 10bit dengan resolusi (yaitu 1024 nilai yang berbeda). Selain itu, beberapa pin memiliki fungsi khusus:
j) I2C: A4 (SDA) dan A5 (SCL). Dukungan I2C (TWI) komunikasi menggunakan perpustakaan Wire.
k) Aref. Tegangan referensi (0 sampai 5V saja) untuk input analog. Digunakan dengan fungsi analogReference ().
l) Reset. Bawa baris ini LOW untuk me-reset mikrokontroler.
Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lainnya. Atmega328 menyediakan UART TTL (5V) untuk komunikasi serial, yang tersedia di pin digital 0 (RX) dan 1 (TX). Sebuah Atmega8U2 sebagai saluran komunikasi serial melalui USB dan sebagai port virtual com untuk perangkat lunak pada komputer. Firmware ’8 U2 menggunakan driver USB standar COM, dan tidak ada driver eksternal yang diperlukan. Namun, pada Windows diperlukan, sebuah file inf.
Perangkat lunak Arduino terdapat monitor serial yang memungkinkan digunakan memonitor data tekstual sederhana yang akan dikirim komputer dari board Arduino. LED RX dan TX di papan tulis akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dengan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Sebuah SoftwareSerial library memungkinkan untuk berkomunikasi secara serial pada salah satu pin digital pada board Uno. Atmega328 juga mendukung I2C (TWI) dan komunikasi SPI. Perangkat lunak Arduino termasuk perpustakaan Kawat untuk menyederhanakan penggunaan bus I2C, lihat dokumentasi untuk rincian. Untuk komunikasi SPI, menggunakan perpustakaan SPI
2. LED
Gambar 2. LED
LED merupakan sebuah komponen yang menghasilkan cahaya monokromatik ketika diberi tegangan. LED terbuat dari semikonduktor dan perbedaan warna yang dihasilkan disebabkan perbedaan bahan semikonduktor yang digunakan. 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).
3. Ultrasonic Sensor
sensor jarak yang umum digunakan dalam penggunaan untuk mendeteksi jarak yaitu sensor ultrasonik. Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya.
Gambar 3. Ultrasonic Sensor
Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik). Gelombang ultrasonik adalah gelombang bunyi yang mempunyai frekuensi sangat tinggi yaitu 20.000 Hz. Karena kecepatan bunyi adalah 340 m/s, maka rumus untuk mencari jarak berdasarkan ultrasonik adalah:
Keterangan:
S = jarak antara sensor ultrasonik dengan benda (bidang pantul),
t = selisih antara waktu pemancaran gelombang oleh transmitter dan waktu Ketika gelombang pantul diterima receiver.
Berikut Algoritma membaca data ultrasonik:
1. Beri tegangan positif pada pin Trigger selama 10µS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz
2. Selanjutnya, sinyal akan diterima pada pin Echo
3. Rumus untuk menghitung jaraknya adalah S = (0.034 *t) /2 cm.
Bentuk diagram waktu cara kerja sensor ultrasonik dapat dilihat pada Gambar dibawah ini
4. LCD (LM016L)
Gambar 14.LCD
LCD atau Liquid Crystal Display adalah suatu jenis media display (tampilan) yang menggunakan kristal cair (liquid crystal) untuk menghasilkan gambar yang terlihat. Teknologi Liquid Crystal Display (LCD) atau Penampil Kristal Cair sudah banyak digunakan pada produk-produk seperti layar Laptop, layar Ponsel, layar Kalkulator, layar Jam Digital, layar Multimeter, Monitor Komputer, Televisi, layar Game portabel, layar Thermometer Digital dan produk-produk elektronik lainnya.
Teknologi Display LCD ini memungkinkan produk-produk elektronik dibuat menjadi jauh lebih tipis jika dibanding dengan teknologi Tabung Sinar Katoda (Cathode Ray Tube atau CRT). Jika dibandingkan dengan teknologi CRT, LCD juga jauh lebih hemat dalam mengkonsumsi daya karena LCD bekerja berdasarkan prinsip pemblokiran cahaya sedangkan CRT berdasarkan prinsip pemancaran cahaya. Namun LCD membutuhkan lampu backlight (cahaya latar belakang) sebagai cahaya pendukung karena LCD sendiri tidak memancarkan cahaya. Beberapa jenis backlight yang umum digunakan untuk LCD diantaranya adalah backlight CCFL (Cold cathode fluorescent lamps) dan backlight LED (Light-emitting diodes).
LCD atau Liquid Crystal Display pada dasarnya terdiri dari dua bagian utama yaitu bagian Backlight (Lampu Latar Belakang) dan bagian Liquid Crystal (Kristal Cair). Seperti yang disebutkan sebelumnya, LCD tidak memancarkan pencahayaan apapun, LCD hanya merefleksikan dan mentransmisikan cahaya yang melewatinya. Oleh karena itu, LCD memerlukan Backlight atau Cahaya latar belakang untuk sumber cahayanya. Cahaya Backlight tersebut pada umumnya adalah berwarna putih. Sedangkan Kristal Cair (Liquid Crystal) sendiri adalah cairan organik yang berada diantara dua lembar kaca yang memiliki permukaan transparan yang konduktif.
Bagian-bagian LCD atau Liquid Crystal Display diantaranya adalah:
• Lapisan Terpolarisasi 1 (Polarizing Film 1)
• Elektroda Positif (Positive Electrode)
• Lapisan Kristal Cair (Liquid Cristal Layer)
• Elektroda Negatif (Negative Electrode)
• Lapisan Terpolarisasi 2 (Polarizing film 2)
• Backlight atau Cermin (Backlight or Mirror)
Dibawah ini adalah gambar struktur dasar sebuah LCD:
Gambar Struktur LCD
LCD yang digunakan pada Kalkulator dan Jam Tangan digital pada umumnya menggunakan Cermin untuk memantulkan cahaya alami agar dapat menghasilkan digit yang terlihat di layar. Sedangkan LCD yang lebih modern dan berkekuatan tinggi seperti TV, Laptop dan Ponsel Pintar menggunakan lampu Backlight (Lampu Latar Belakang) untuk menerangi piksel kristal cair. Lampu Backlight tersebut pada umumnya berbentuk persegi panjang atau strip lampu Flourescent atau Light Emitting Diode (LED). Cahaya putih adalah cahaya terdiri dari ratusan cahaya warna yang berbeda. Ratusan warna cahaya tersebut akan terlihat apabila cahaya putih mengalami refleksi atau perubahan arah sinar. Artinya, jika beda sudut refleksi maka berbeda pula warna cahaya yang dihasilkan.
Backlight LCD yang berwarna putih akan memberikan pencahayaan pada Kristal Cair atau Liquid Crystal. Kristal cair tersebut akan menyaring backlight yang diterimanya dan merefleksikannya sesuai dengan sudut yang diinginkan sehingga menghasilkan warna yang dibutuhkan. Sudut Kristal Cair akan berubah apabila diberikan tegangan dengan nilai tertentu. Karena dengan perubahan sudut dan penyaringan cahaya backlight pada kristal cair tersebut, cahaya backlight yang sebelumnya adalah berwarna putih dapat berubah menjadi berbagai warna.
Jika ingin menghasilkan warna putih, maka kristal cair akan dibuka selebar-lebarnya sehingga cahaya backlight yang berwarna putih dapat ditampilkan sepenuhnya. Sebaliknya, apabila ingin menampilkan warna hitam, maka kristal cair harus ditutup serapat-rapatnya sehingga tidak adalah cahaya backlight yang dapat menembus. Dan apabila menginginkan warna lainnya, maka diperlukan pengaturan sudut refleksi kristal cair yang bersangkutan.
5. Papan Breadboard
Breadboard merupakan sebuah board atau papan yang berfungsi untuk merancang sebuah rangkaian elektronik sederhana. Breadboard tersebut nantinya akan dilakukan prototipe atau uji coba tanpa harus melakukan solder. Umumnya breadboard terbuat dari bahan plastik yang juga sudah terdapat berbagai lubang. Lubang tersebut sudah diatur sebelumnya sehingga membentuk pola yang didasarkan pada pola jaringan di dalamnya. Selain itu, breadboard yang bisa ditemukan di pasaran umumnya dibagi menjadi 3 ukuran. Pertama dinamakan sebagai mini breadboard, kedua disebut medium breadboard, dan yang terakhir dinamakan sebagai large breadboard. Untuk mini breadboard, ia memiliki kurang lebih 170 titik.
Sementara untuk medium breadboard sudah dilengkapi dengan kurang lebih 400 titik. Large breadboard memiliki lubang kurang lebih 830. Seperti gambar yang sudah ada di atas, bahwa mini breadboard memiliki 200 titik hubung. Di bagian kanan sudah bisa dilihat pola layout yang digambarkan dengan garis biru. Di sini bisa dilihat beberapa tulisan mulai dari A sampai dengan J.
Setelah itu masih ada angka 1,5, 10, 15, maupun 20. Perpaduan antara huruf dan juga angka tersebut merupakan sebuah koordinat. Misalnya, A1, B1, sampai dengan E1 saling terkoneksi berdasarkan pola koneksinya (Bisa dilihat pada gambar berwarna biru). Sementara untuk A2 sampai dengan E2, A3 sampai dengan E3, F1 sampai dengan J1, dan seterusnya. Dengan memahami pola tersebut, maka kita nanti bisa membuat sebuah prototipe sehingga kita tidak bingung ketika harus menempatkan komponen-komponen elektronik tersebut sesuai dengan tempatnya masing-masing.
6. Kabel Jumper
jumper adalah kabel elektrik yang memiliki pin konektor di setiap ujungnya dan memungkinkanmu untuk menghubungkan dua komponen yang melibatkan Arduino tanpa memerlukan solder.
Intinya kegunaan kabel jumper ini adalah sebagai konduktor listrik untuk menyambungkan rangkaian listrik.
Macam-Macam Kabel Jumper Arduino
Jenis jenis kabel jumper yang paling umum adalah sebagai berikut:
1. Kabel Jumper Male to Male
Jenis yang pertama adalah kabel jumper male male. Kabel jumper male to male adalah adalah jenis yang sangat yang sangat cocok untuk kamu yang mau membuat rangkaian elektronik di breadboard.
2. Kabel Jumper Male to Female
Kabel jumper male female memiliki ujung konektor yang berbeda pada tiap ujungnya, yaitu male dan female. Biasanya kabel ini digunakan untuk menghubungkan komponen elektronika selain Arduino ke breadboard
3. Kabel Jumper Female to Female
Jenis kabel jumper yang terakhir adalah kabel female to female. Kabel ini sangat cocok untuk menghubungkan antar komponen yang memiliki header male. contohnya seperti sensor ultrasonik HC-SR04, sensor suhu DHT, dan masih banyak lagi.
7. Touch Sensor
Touch Sensor atau Sensor Sentuh adalah sensor elektronik yang dapat mendeteksi sentuhan. Sensor Sentuh ini pada dasarnya beroperasi sebagai sakelar apabila disentuh, seperti sakelar pada lampu, layar sentuh ponsel dan lain sebagainya. Sensor Sentuh ini dikenal juga sebagai Sensor Taktil (Tactile Sensor). Seiring dengan perkembangan teknologi, sensor sentuh ini semakin banyak digunakan dan telah menggeser peranan sakelar mekanik pada perangkat-perangkat elektronik.
8. Motor Servo
Gambar Motor Servo
Motor servo menggunakan dengan sistem umpan balik tertutup, di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Karena motor DC servo merupakan alat untuk mengubah energi listrik menjadi energy mekanik, maka magnit permanent motor DC servolah yang mengubah energi listrik ke dalam energi mekanik melalui interaksi dari dua medan magnit. Salah satu medan dihasilkan oleh magnit permanent dan yang satunya dihasilkan oleh arus yang mengalir dalam kumparan motor. Resultan dari dua medan magnit tersebut menghasilkan torsi yang membangkitkan putaran motor tersebut. Saat motor berputar, arus pada kumparan motor menghasilkan torsi yang nilainya konstan.
Untuk dapat mengontrol motor servo kita perlu memberikan pulsa high dan pulsa low dengan lebar tertentu. Frekuensi yang diperlukan adalah 50 Hz. Pulsa ini dapat dihasilkan dengan port I/O biasa pada mikrokontroler. Namun terkadang dengan cara ini pergerakan servo menjadi kurang akurat. Oleh karena itu digunakan metode Pulse Width Modulation (PWM). Dengan metode PWM dapat dihasilkan gerakan servo yang cukup akurat dengan resolusi yang kita sesuaikan dengan keinginan kita.
Berikut ini adalah salah satu contoh pulsa yang dihasilkan untuk menggerakan servo dengan sudut 0 derajat,90 derajat, dan 180 derajat
Gambar Pensinyalan Motor Servo
Pulsa ini dapat dihasilkan dari pin OCR pada mikrokontroler. Perlu pengaturan register timer pada mikrokontroler agar dapat dihasilkan pulsa dengan lebar yang sesuai kita inginkan. Hal yang sangat penting adalah pengaturan frekuensi dan lebar pulsa on dan pulsa off. Oleh karena itu perlu dihitung berapa konstanta-konstanta timer yang di atur pada mikrokontroler.
Dua parameter utama yang diperlukan untuk mencari konstanta-konstanta timer adalah nilai clock mikrokontroler dan nilai clock timer (ditentukan dari prescaler). Dari kedua parameter itu kita dapat merancang lebar pulsa high dan pulsa low dengan frekuensi tertentu yang sesuai untuk menggerakan motor servo, seperti pulsa pada gambar di atas.
4. Listing Program [kembali]
1. MASTER
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 6, d6 = 7, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
bool ultrasonic = false;
#include <SoftwareSerial.h>
// rx tx
SoftwareSerial mySerial(2, 4);
#define red A0
#define green A1
#include <Servo.h> //library servo
Servo myservo; // membuat variabel servo untuk dikendalikan
int pos = 0;
void setup() {
// put your setup code here, to run once:
pinMode(10, OUTPUT);
analogWrite(10, 80);
lcd.begin(16, 2);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
myservo.attach(9); //deklarasi servo pada pin 9
mySerial.begin(9600);
Serial.begin(9600);
myservo.write(90);
lcd.clear();
}
void loop() {
// put your main code here, to run repeatedly:
if (mySerial.available() > 0) {
int data = mySerial.read();
if (data == 1) {
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
Serial.println("terdeteksi");
ultrasonic = true;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Silahkan Sentuh");
}
else if (data == 3 && ultrasonic == true) {
myservo.write(30);
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("silahkan lewat");
lcd.setCursor(0, 1);
lcd.print("Terima Kasih");
delay(5000);
digitalWrite(green, LOW);
myservo.write(90);
lcd.clear();
ultrasonic = false;
}
}
}
2. SLAVE
#include <SoftwareSerial.h>
// rx tx
SoftwareSerial mySerial(2, 4);
#define touch 8
int echoPin = 5; //mendeklarasikan variabel echoPin dengan tipe data integer dan nilai =6
int trigPin = 6; //mendeklarasikan variabel echoPin dengan tipe data integer dan nilai =6
long duration; //mendeklarasikan variabel duration dengan tipe data long
int distanceCm; //mendeklarasikan variabel duration dengan tipe data integer
void setup()
{
pinMode(touch, INPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
digitalWrite(echoPin, HIGH); //memerintahkan pada trigPin untuk mengeluarkan data HIGH
delayMicroseconds(2); //memberikan jeda waktu selama 5 mikrodetik
digitalWrite(trigPin, LOW); //memerintahkan pada trigPin untuk mengeluarkan data LOW
delayMicroseconds(10); //memberikan jeda waktu selama 10 mikrodetik
digitalWrite(trigPin, HIGH); //memerintahkan pada trigPin untuk mengeluarkan data HIGH
duration = pulseIn(echoPin, HIGH); //pulseIn mentotal waktu tunggu dari echoPin saat HIGH
distanceCm = duration * 0.034 / 2; // rumus kecepatan suara
Serial.println(distanceCm);
int valueTouch = digitalRead(touch);
if (distanceCm <= 9) {
mySerial.write(1);
Serial.println("terdeteksi");
}
else {
mySerial.write(2);
}
if (valueTouch == HIGH ) {
mySerial.write(3);
}
else {
mySerial.write(4);
}
delay(10);
}