A. Sejarah Mikrokontroler
Sejarah awal perkembangan mikrokontroler dimulai pada awal tahun 1970-an.
Motorola mengeluarkan seri mikrokontroler 6800 yang terus dikembangkan
menjadi 68HC05, 68HC08, 68HC11, 68HC12, dan 68HC16. Zilog juga
mengeluarkan seri mikroprosesor Z80-nya yang terkenal dan terus
dikembangkan hingga kini menjadi Z180 dan kemudian diadopsi juga oleh
mikroprosesor Rabbit.
Tahun 1974, Texas Instrument mengenalkan mikrokontroler dengan seri TMS 1000
yang merupakan mikrokontroler 4 bit. TMS 1000 adalah mikrokomputer dalam
sebuah chip, lengkap dengan RAM dan ROM. Tahun 1976, Intel mengeluarkan
mikrokontroler 8-bit seri Intel 8748 yang merupakan mikrokontroler dari
keluarga MCS 48. Intel juga mengeluarkan mikrokontroler-nya yang populer di
dunia yaitu 8051, yang karena begitu populernya maka arsitektur 8051 tersebut
kemudian diadopsi oleh vendor lain seperti Phillips, Siemens, Atmel, dan vendor-
vendor lain. Selain itu masih ada mikrokontroler populer lainnya seperti Basic
Stamps, PIC dari Microchip, MSP 430 dari Texas Instrument dan masih banyak lagi.
Mikrokontroler (microcontroller) atau disingkat dengan “micron” adalah
pengendali yang merupakan suatu komputer kecil yang terletak di dalam
sebuah chip atau IC (integrated circuit) yang berisikan inti prosesor, memori, dan
komponen input/output yang dapat diprogram. Mikrokontroler biasa digunakan
pada produk dan perangkat yang dapat dikontrol secara otomatis, seperti sistem
kontrol mesin mobil (engine control), perangkat medis (medical devices),
pengendali jarak jauh (remote control), mesin perkantoran (office machines), dan
juga mainan (games).
Penggunaan mikrokontroler lebih ekonomis dibandingkan sebuah desain sistem
yang berisikan mikroprosesor, memori, dan perangkat input/ouput terpisah.
Mikrokontroler adalah komputer mikro dalam satu chip tunggal. Mikrokontroler
memadukan CPU, ROM, RWM, I/O paralel, I/O seri, counter-timer, dan
rangkaian clock dalam satu chip tunggal seperti terlihat pada Gambar 1.1.
ARDUINO USB
Arduino Uno
Arduino Duemilanove
Arduino Diecimila
Arduino NG Rev. C
Arduino NG (Nuova Generazione)
Arduino Extreme dan Arduino Extreme v2
Arduino USB dan Arduino USB v2.0
ARDUINO SERIAL
Papan Arduino dengan spesifikasi yang lebih tinggi,dilengkapi tambahan pin digital, pin
analog, port serial dan sebagainya. Contoh:
Arduino Mega
Arduino Mega 2560
ARDUINO FIO
ARDUINO LILYPAD
Papan dengan bentuk yang melingkar. Contoh: LilyPadArduino 00, LilyPad Arduino 01,
LilyPad Arduino 02, LilyPad Arduino 03, LilyPad Arduino 04
ARDUINO BT
3. Analog Input.
Arduino memiliki 6 pin analog input, berfungsi membaca sinyal masukan
analog seperti sensor analog. Meskipun demikian pin analog input dapat pula
digunakan untuk keperluan digital I/O. Tabel 2.3. menunjukkan nomor dan
fungsi pin input analog.
Tabel 2.3. Konfigurasi Pin Analog Input
BAB III
PEMROGRAMAN ARDUINO
A. Konsep Dasar Pemrograman Arduino
Software/program yang ditulis menggunakan Arduino disebut sketsa (sketch).
Sketsa ini ditulis dalam editor teks. Sketsa disimpan dengan ekstensi file .ino, yang
memiliki fitur untuk meng-cut, meng-copy, mem-paste, mencari/ mengganti teks,
dll.
Area pesan (console) memberikan umpan balik, menyimpan dan mengekspor juga
menampilkan kesalahan. Konsol menampilkan teks output dalam lingkungan
Arduino termasuk detail pesan error dan informasi lainnya. Bagian sudut
bawah
sebelah kanan jendela menampilkan board dan port serial yang sedang
dipakai.
Tombol-tombol toolbar (Gambar 3.1.) memungkinkan untuk memverifikasi dan
meng-upload program, membuat, membuka, dan menyimpan sketsa, juga membuka
monitor serial.
Gambar 3.1. Toolbar dan Menu Arduino
Code Program Arduino biasa disebut sketch dan dibuat menggunakan
bahasa pemrograman C. Program atau sketch yang sudah selesai ditulis di Arduino
IDE dapat langsung di-compile dan di-upload ke Arduino Board.
Gambar 3.2. Sketch dalam Arduino IDE
Modul Teori dan Praktikum Mikrokontroler - Arduino | 17
Secara sederhana, sketch dalam Arduino dikelompokkan menjadi 3 blok
(Gambar 3.2.), yakni : Header, Setup dan Loop. Untuk program yang lebih kompleks
akan ada blok lain berupa fungsi-fungsi pendukung.
Header
Pada bagian ini biasanya ditulis definisi-definisi penting yang akan digunakan
selanjutnya dalam program, misalnya penggunaan library dan pendefinisian variable.
Code dalam blok ini dijalankan hanya sekali pada waktu compile. Di bawah ini
contoh code untuk mendeklarasikan variable led (integer) dan sekaligus di isi
dengan angka 13
int led = 13;
Setup
Di sinilah awal program Arduino berjalan, yaitu di saat awal, atau ketika power
on Arduino board. Biasanya di blok ini diisi penentuan apakah suatu pin digunakan
sebagai input atau output, menggunakan perintah pinMode. Initialisasi variable juga
bisa dilakukan di blok ini
// the setup routine runs once when you press reset:
void setup() { // initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
OUTPUT adalah suatu makro yang sudah didefinisikan Arduino yang berarti = 1. Jadi
perintah di atas sama dengan pinMode(led, 1);
Suatu pin bisa difungsikan sebagai OUTPUT atau INPUT. Jika difungsikan sebagai
output, dia siap mengirimkan arus listrik (maksimum 100 mA) kepada beban yang
disambungkannya. Jika difungsikan sebagai INPUT, pin tersebut memiliki
impedance yang tinggi dan siap menerima arus yang dikirimkan kepadanya.
Loop
Blok ini akan dieksekusi secara terus menerus. Apabila program sudah
sampai akhir blok, maka akan dilanjutkan dengan mengulang eksekusi dari
awal
blok. Program akan berhenti apabila tombol power Arduino di matikan. Di
sinilah
fungsi utama program Arduino kita berada.
void loop() {
digitalWrite(led, HIGH); // nyalakan LED
delay(1000); // tunggu 1000 milidetik
digitalWrite(led, LOW); // matikan LED
Modul Teori dan Praktikum Mikrokontroler - Arduino | 18
delay(1000); // tunggu 1000 milidetik
}
Perintah digitalWrite(pinNumber,nilai) akan memerintahkan arduino untuk
menyalakan atau mematikan tegangan di pinNumber tergantung nilainya. Jadi
perintah di atas digitalWrite(led,HIGH) akan membuat pin nomor 13 (karena
di header dideklarasi led = 13) memiliki tegangan = 5V (HIGH). Hanya ada dua
kemungkinan nilai digitalWrite yaitu HIGH atau LOW yang sebetulnya adalah
nilai integer 1 atau 0
B. Program Sederhana Arduino
Program sederhana adalah Led Blink, program ini akan mengakses pin 10 dan
memerintahkan Arduino untuk mengulang blink led, Gambar 3.3.
Gambar 3.3. Wiring LED blinking
Sketch
// Project 1 - LED Flasher
int ledPin = 10;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Modul Teori dan Praktikum Mikrokontroler - Arduino | 19
Pembahasan Sketch
// Project 1 - LED Flasher
Ini adalah komentar baris yang berguna untuk dokumentasi program, kompiler akan
mengabaikan bagian ini. Baris komentar berguna bagi programmer agar bisa
mengerti maksud program.
int ledPin = 10;
Inisialisasi variable, dalam hal ini inisialisasi variable bernama ledPin dengan type
data integer dan nilai 10.
void setup() {
pinMode(ledPin, OUTPUT);
}
Setiap sketch Arduino wajib memiliki fungsi setup() dan loop(). Fungsi
setup() dipanggil hanya sekali saat pertama kali program berjalan. Fungsi
setup() biasanya tempat untuk men-setup hal-hal umum agar program siap
dijalankan, seperti setup pin modes, setting serial baud rates, dan lainnya.
Pada
sketch Led Blink, fungsi setup hanya memiliki 1 baris perintah yaitu
pinMode(ledPin, OUTPUT);
pinMode fungsi yang berguna untuk memberitahu arduino bahwa pin pada
board
akan digunakan sebagai input atau output. Dalam baris program di atas,
memberitahu arduino untuk menset pin 10 (nilai ledPin adalah 10) sebagai Output.
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Fungsi loop()function adalah program utama yang dipanggil secara continue
selama Arduino menyala. Setiap perintah dalam fungsi loop()akan dipanggil satu
persatu sampai perintah terakhir dalam blok loop dicapai, lalu Arduino akan kembali
ke awal perintah di blok fungsi loop(), sampai Arduino dimatikan atau tombol
reset ditekan.
Modul Teori dan Praktikum Mikrokontroler - Arduino | 20
C. Ringkasan
1. Code Program Arduino biasa disebut sketch dan dibuat menggunakan
bahasa
pemrograman C. Program atau sketch yang sudah selesai ditulis di Arduino IDE
dapat langsung di-compile dan di-upload ke Arduino Board.
2. Secara sederhana, sketch dalam Arduino dikelompokkan menjadi 3 blok yakni :
Header, Setup dan Loop.
3. Setiap sketch Arduino wajib memiliki fungsi setup() dan loop(). Fungsi
setup() dipanggil hanya sekali saat pertama kali program berjalan. Fungsi
loop()function adalah program utama yang dipanggil secara continue selama
Arduino menyala.
Tanggal Judul Percobaan Paraf
Percobaan
RUNNING LED
A. Tujuan Percobaan :
1. Membuat program dengan teknik loop dalam arduino untuk aplikasi
running LED
2. Merangkai rangkaian aplikasi running LED dengan arduino.
B. Alat dan Bahan :
Arduino Board
Bread Board
Kawat Jumper
Resistor 330 Ohm6 buah
LED 6 buah
C. Rangkaian Percobaan
D. Program Percobaan
Tanggal Judul Percobaan Paraf
Percobaan
INPUT DIGITAL DAN
ANALOG
A. Tujuan :
1. Mahasiswa mampu menggunakan dan membaca nilai input digital dan
Analog
B. Mahasiswa mampu membedakan komponen-komponen dengan nilai
digital dan analog
C. Mahasiswa mampu mengkombinasikan penggunaan mikrokontroller
dengan komponen-komponen digital dan analog
C. Dasar Teori
D. KEGIATAN PRAKTIKUM
1. Input Digital
Siapkan peralatan sebagai berikut:
- Project board
- Push Button (saklar)
- Hambatan 10K
- Board arduino beserta IC mikrokontroller
- Kabel USB (printer)
- PC/Laptop yang sudah terinstal software arduino
- Kabel jumper
langkah-langkah Percobaan:
1. Siapkan semua peralatan lalu rangkai push button seperti gambar 1.1
berikut:
Input Analog
Siapkan peralatan sebagai berikut:
- Project board
- Potensiometer
- Hambatan 10K
- Board arduino beserta IC mikrokontroller
- Kabel USB (printer)
- PC/Laptop yang sudah terinstal software arduino
- Kabel jumper
- LED (optional)
B. DASAR TEORI
Driver motor merupakan rangkaian penghubung antara aktuator (motor)
dengan kontroler (microcontroller). Driver motor ini akan
menerjemahkan perintah dari mikrokontroler menjadi sebuah pergerakan
begitu juga dengan kecepatanya. Jika kita mengendarai mobil, maka driver
motor ini bisa dikatakan sebagai supir yang mengendarai mobil tersebut.
Driver motor yang mudah digunakan yaitu menggunakan IC L293D,
L298 dan EMS H-BRIGHT 30 A.
2. PIN8 terhubung dengan IN1, PIN7 terhubung dengan IN2 dan PIN3 (PWM)
terhubung dengan EN1.
3. Buatlah coding program sbb :
Tugas :
A. Tujuan :
1. Mahasiswa mampu untuk memahami prinsip dasar LCD 16x2
2. Mahasiswa mampu untuk memprogram arduino untuk menampilkan huruf dan
angka di LCD 16x2 baik dalam kalimat maupun hasil perhitungan angka.
B. Dasar Teori
LCD (Liquid Crystal Display) adalah suatu jenis media tampilan yang menggunakan
kristal cair sebagai penampil utama. LCD sudah digunakan di berbagai bidang,
misalnya dalam alat-alat elektronik, seperti televisi, kalkulator ataupun layar
komputer.
Pada Percobaan kali ini adalah dengan menggunakan LCD 16x2 yang artinya LCD
tersebut terdiri dari 16 kolom dan 2 baris karakter (tulisan). yang perlu di persiapkan
adalah sebagai berikut
LCD 16x2
Board Arduino
Kabel jumper dan Konektor
Tugas :
Buatlah Counter Up 1 sampai 50, lalu tampilkan di LCD
Buatlah counter Down dari 24 ke 0, lalu tampilkan di LCD
Buatlah jam digital dengan tampilan sebagai berikut :
Manual di atas menyebutkan bahwa kita butuh mentrigger pin ‘trigger’ selama 10
microseconds agar sensor dapat mengeluarkan 8 Cycle Sonic yang dibutuhkan oleh
pin ‘echo’.
Compile program diatas , jika tidak ada error maka upload program ke board Arduino , lalu
buka Serial Monitor untuk melihat jarak yg terukur pada oleh sensor terhadap objek.
Tugas :
1. Tampilkan hasil pengukuran pada LCD 16x2.
2. Buatlah batasan pengukuran , jika jarak < 20 cm maka tampilkan pada LCD “jarak
Dekat” dan led biru menyala.
Apabila >=20 cm maka tampilan pada LCD “jarak Jauh” dan led merah menyala.
Tanggal Judul Percobaan Paraf
Percobaan
RTC (Real Time Clock)
A. Tujuan :
1. Mahasiswa mampu untuk memprogram arduino untuk mensetting RTC untuk
waktu dan tanggal.
2. Mahasiswa mampu untuk membuat jam digital dengan RTC.
B. Dasar Teori
RTC (Real time clock) adalah jam elektronik berupa chip yang dapat menghitung
waktu (mulai detik hingga tahun) dengan akurat dan menjaga/menyimpan data
waktu tersebut secara real time. Karena jam tersebut bekerja real time, maka
setelah proses hitung waktu dilakukan output datanya langsung disimpan atau
dikirim ke device lain melalui sistem antarmuka.
Chip RTC sering dijumpai pada motherboard PC (biasanya terletak dekat chip BIOS).
Semua komputer menggunakan RTC karena berfungsi menyimpan informasi jam
terkini dari komputer yang bersangkutan. RTC dilengkapi dengan baterai sebagai
pensuplai daya pada chip, sehingga jam akan tetap up-to-date walaupun komputer
dimatikan. RTC dinilai cukup akurat sebagai pewaktu (timer) karena menggunakan
osilator kristal.
Banyak contoh chip RTC yang ada di pasaran seperti DS12C887, DS1307, DS1302,
DS3234. Salah satu chip RTC yang umum digunakan adalah DS1307. Pin out chip
seperti gambar di bawah.
Ketiklah sintaks program berikut ini, kemudian lakukan kompilasi dan upload program ke
sistem minimum Arduino.
Perhatikan tampilan pada LCD , aturlah tanggal dan waktu sesuai waktu sekarang.
Tugas :
1. Buatlah sebuah indicator berupa led , settinglah pada rtc ,jika waktu tertentu led
menyala dan mati ,
Tanggal Judul Percobaan Paraf
Percobaan
Motor Servo
A. Tujuan :
1. Mahasiswa mampu untuk memprogram arduino untuk menggerakkan motor
servo.
2. Mahasiswa mampu untuk membuat motor servo berputar berdasarkan input.
B. Dasar Teori
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.
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.
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).
Tugas :
1. Buatlah program motor servo agar berputar berdasarkan nilai ADC dari
Potansio.
B. Dasar Teori
Interrupt pada Arduino adalah suatu keadaan dimana saat pemicu program
interrupt dipicu baik secara eksternal ataupun internal, program interrupt akan
menghentikan sejenak program yang sedang dijalankan oleh arduino dan
melaksanakan program interrupt tersebut.
Interrupt dapat digunakan pada Arduino dengan menambahkan program berikut
pada program yang ingin kita berikan fungsi interrupt.
Arduino uno memiliki 2 pin interrupt yaitu INT0 pada pin 2 digital dan INT1 pada pin
3 digital.
di bagian function dapat kita isi dengan program yang ingin kita jalankan saat pin
interrupt itu dipicu. Yang terakhir adalah mode dimana arduino memiliki 4 keadaan
yang dapat memicu interrupt.
1. Yang pertama adalah mode LOW. Pada mode ini interrupt akan diaktifkan
saat pin int memiliki logika low dan akan aktif selama masih berlogika low.
2. Kemudian yang kedua adalah mode CHANGE. Interrupt akan diaktifkan saat
terjadi perubahan logika baik dari low ke high ataupun high ke low. Namun
pengaktifan hanya bersifat sementara dan beberapa saat kemudian
program akan berjalan kembali seperti sedia kala.
3. Ketiga adalah mode RISING. Pengaktifan interrupt akan terjadi jika pin
mengalami perubahan logika dari low ke high. Sama seperti mode CHANGE,
pengaktifan interrupt hanya sesaat saja dan kemudian arduino akan kembali
menjalankan program yang berjalan sebelumnya.
4. Terakhir mode FALLING. Perubahan logika pada pin int dari high ke low akan
mengaktifkan fungsi interrupt. hanya sesaat saja dan kemudian arduino
akan kembali menjalankan program yang berjalan sebelumnya.
Ketiklah sintaks program berikut ini, kemudian lakukan kompilasi dan upload program ke
sistem minimum Arduino.
Tugas :
1. Butlah program interrupsi Arduino ,program utama LED RUNNING, jika tombol
interrupsi 0 ditekan maka led bergeser menjadi LED BLINK dan jika tombol interrupsi
1 ditekan maka LED FLIP FLOP.
2. Buatlah program interupsi Arduino untuk meng counter nilai tertentu. Dengan
mode FALLING. Interrupsi 0 untuk counter UP dan interrupsi 1 untuk counter
DOWN.
Tanggal Judul Percobaan Paraf
Percobaan
keypad
A. Tujuan :
1. Mampu membuat program untuk penggunaan fitur interupsi eksternal.
2. Memahami perbedaan mode interupsi eksternal(falling, rising, dan any change).
B. Dasar Teori
Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan
interaksi manusia. Keypad berfungsi sebagai interface antara perangkat (mesin)
elektronik dengan manusia atau dikenal dengan istilah HMI (Human Machine
Interface). Matrix keypad 4×4 pada artikel ini merupakan salah satu contoh keypad
yang dapat digunakan untuk berkomunikasi antara manusia dengan mikrokontroler.
Matrix keypad 4×4 memiliki konstruksi atau susunan yang simple dan hemat dalam
penggunaan port mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix
ini bertujuan untuk penghematan port mikrokontroler karena jumlah key (tombol)
yang dibutuhkan banyak pada suatu sistem dengan mikrokontroler. Konstruksi
matrix keypad 4×4 untuk mikrokontroler dapat dibuat seperti pada gambar berikut
Tugas :
B. Dasar Teori
Bluetooth adalah suatu peralatan media komunikasi yang dapat digunakan untuk
menghubungkan sebuah perangkat komunikasi dengan perangkat komunikasi
lainnya, bluetooth umumnya digunakan di handphone, komputer atau pc, tablet,
dan lain-lain. Fungsi bluetooth yaitu untuk mempermudah berbagi atau sharing file,
audio, menggantikan penggunaan kabel dan lain-lain. Saat ini sudah banyak sekali
perangkat yang menggunakan bluetooth.
Ketiklah sintaks program berikut ini, kemudian lakukan kompilasi dan upload program ke
sistem minimum Arduino.
Bukalah Bluetooth dari HP android, lau lakukan pairing dengan Bluetooth HC-05, setelah
paired, bukalah aplikasi BlueTerm kemudian hubungkan dengan Bluetooth HC-05, jika
connected, cobalah untuk menekan ‘h’ dan ‘m’ , perhatikan LED pada Arduino dan serial
monitor di BlueTerm,
Tugas :
1. Buatlah program Arduino agar meyalakan 3 buah led dan mematikanya melalui
Bluetooth.
2. Buatlah program agar bisa mengendalikan motor melalui Bluetooth.
Tanggal Judul Percobaan Paraf
Percobaan
Ethernet Shield Arduino
B. Tujuan :
1. Mahasiswa Mampu untuk menghubungkan Arduino dengan jaringan.
2. Mahasiswa dapat mengontrol Arduino melalui web.
C. Dasar Teori
Arduino Ethernet Shield adalah modul yang berfungsi menghubungkan Arduino
board dengan jaringan internet,karna itu berdasar pada Wiznet W5100 ethernet
chip .
untuk Menghubungkan dan menggunakan modul hingga dapat terkoneksi internet
cukup mudah, hanya membutuhkan waktu beberapa menit saja.caranya dengan
memasangkan modul tersebut di atas Arduino bord, sambungkan dengan kabel
network RJ45 , ikuti tutorial pemogramannya (menggunakan pustaka Ethernet yang
sudah tersedia di paket perangkat lunak Arduino IDE), dan Arduino Anda siap
dikendalikan lewat internet.
di dalam arduino ethernet sendiri terdapat slot mikro SD yang berbungsi sebagai
tempat penyimpanan file sedangkan untuk mengakses mikro SD card mengunakan
library SD ,untuk jenis arduino board yang bisa di pasangkan dengan ethernet shield
W5100 yaitu arduino uno dan mega .