Anda di halaman 1dari 7

Jurnal Teknologi Informasi DINAMIK Volume 20, No.

1, Januari 2015 : 86-92 ISSN : 0854-9524

Implementasi Teknik I/O Interfacing berbasis Arduino

Zuly Budiarso, Edy Winarno dan Hersatoto Listiyono


Fakultas Teknologi Informasi, Universitas Stikubank Semarang
email: zbudiarso@gmail.com; edywinarno3@gmail.com; herlistiyono@gmail.com

Abstrak

Serangkaian elektronika modern telah mengembangkan sistemnya dengan menggunakan operasi


sistem digital, yang menggunakan sinyal dan besaran digital dalam memberikan penggerak / trigger
maupun menghasilkan sinyal / signal generator yang dapat digunakan untuk kelanjutan sistem dalam mata
rantai sistem digital dan komputasi. Besaran nilai analog seperti temperatur, tekanan, kecepatan, dan alin
sebagainya, yang melibatkan besaran fisis, mampu dikemas dalam sebuah sistem digital, yang masih yang
pada umumnya masih bersifat non komputasi. Pengadaan sistem terpadu yang bisa dilakukan untuk
menjembatani permasalahan pengolahan data yang terekam dari perangkat elektronik masih memiliki
tingkat kesulitan yang tinggi dan pembiayaan yang mahal.
Mikrokontroler yang mewakili suatu figur sistem kendali modern telah dikemas hanya dengan
mengimplementasikan sebuah chip / rangkaian terpadu, yang kemudian berkembang hingga penggunaan
memori dan processor beserta elemen pendukungnya seperti register, AT command, I/O system, dan lain
sebagainya. Bahkan hingga pada saat ini, mikrokontroler telah dikemas dalam sebuah modul aktif kit.
Hasil penelitian ini adalah pengamatan dan analisa terhadap beberapa teknik antarmuka meliputi
perancangan dan pemrograman yang terlibat dalam suatu model sistem kendali. Teknik antarmuka
pemrograman perangkat lunak dengan bahasa C jauh lebih mudah dimengerti oleh perancang sekalipun
untuk tingkat pemula, dengan diketahuinya struktur dasar yaitu void setup(), void loop() dan beberapa tipe
variabel serta konsep percabangan atau kondisional, Sementara itu teknik antarmuka perancangan
perangkat keras diperlukan beberapa pengetahuan dasar elektronika dalam hal karakteristik tegangan dan
arus dari elemen masukan, yang harus disesuaikan dalam kerangka I/O dari Arduino yang menuntut
pengkondisian tegangan dan arus berkisar pada 5-9 volt, dan arus sebesar 500mA.

Kata kunci : arduino, mikrokontroler, sistem kendali

PENDAHULUAN variasinya seperti ARDUINO. ARDUINO


menjadi basis penelitian pada kesempatan kali
Sistem kendali telah banyak
ini dengan fokus pada pengamatan dan analisa
diimplementasikan dalam berbagai bidang
konsep antarmuka pada perangkat modul
terutama untuk segenap sektor industri yang
ARDUINO UNO. ARDUINO UNO memiliki
memerlukan sebuha kontrol terpadu dengan
kekuatan prosesor ATMEL328u/pu dengan
harapan untuk mempertahankan atau bahkan
kemasan yang miniatur dengan kemampuan
meningkatkan efisiensi kerja apabila
interfacing dan pemrograman yang mudah bagi
dibandingkan dengan menggunakan tenaga kerja
pemula hingga bagi para ahli.
manusia. Sistem kendali hingga saat ini mampu
menempatkan posisinya sebagai fitur canggih Sebuah sistem penghubung / saklar
yang mutlak untuk dilakukan. Berbagai model otomatis merupakan implementasi terhadap
dan bentuk telah dihasilkan mulai dari perkembangan sistem analog yang semula
minikontroler hingga mikrokontroler dan membutuhkan operasi dengan seorang operator,
mikroprosesor. tingkat akurasi dan daya tahan yang terbatas
seiring dengan keterbatasan manusia / operator,
ATMEL telah mengeluarkan salah satu
yang hingga saat ini terus variatif dalam
komponen sistem kendali dengan segenap

86 Implementasi Teknik I/O Interfacing berbasis Arduino


Jurnal Teknologi Informasi DINAMIK Volume 20, No.1, Januari 2015 : 86-92 ISSN : 0854-9524

perancangan sistemnya. Berawal dari sistem BATASAN MASALAH


kontaktor/saklar manual hingga konsep
Adapun batasan masalah dalam
switching pada elemen elektronika seperti
kesempatan penelitian ini adalah :
transistor, dioda, SCR dan lain sebagainya.
a. Teknik rancang bangun berbasis sistem
Serangkaian elektronika modern telah
kendali dengan inti ATMEL
mengembangkan sistemnya dengan
ATMEGA238P-PU yang menjadi tren saat
menggunakan operasi sistem digital, yang
ini.
menggunakan sinyal dan besaran digital dalam
memberikan penggerak / trigger maupun b. Teknik pengamatan dan pengujian I/O
menghasilkan sinyal / signal generator yang libraray dengan memberikan besaran secara
dapat digunakan untuk kelanjutan sistem dalam simultan dari beberapa sensor
mata rantai sistem digital dan komputasi. c. Teknik pemrograman I/O sedemikian rupa
Mikrokontroler yang mewakili suatu figur dengan berbasis bahasa C
sistem kendali modern telah dikemas hanya
TUJUAN DAN MAFAAT PENELITIAN
dengan mengimplementasikan sebuah chip /
rangkaian terpadu, yang kemudian berkembang Adapun tujuan dalam penelitian pada
hingga penggunaan memori dan processor kesempatan kali ini adalah :
beserta elemen pendukungnya seperti register, a. Mengimplementasikan sebuah sistem
AT command, I/O system, dan lain sebagainya. kendali terpadu sebagai simulasi kontrol
Bahkan hingga pada saat ini, mikrokontroler
telah dikemas dalam sebuah modul aktif kit. b. Mengetahui prinsip dasar pemrograman
berbasis mikrokontroler Arduino
Perancang sebuah sistem kendali menjadi
lebih tertantang dengan hadirnya kemampuan c. Mengetahui teknik interfacing komunikasi
untuk programming, sehingga perancang dapat port dengan PC
dengan lebih leluasa membuat bentuk maupun Manfaat yang ingin dicapai dalam
model sistem kendali. Kemampuan modul yang penelitian ini adalah :
bervariasi dengan berbagai aksesorisnya yang
siap pakaipun telah meningkatkan keinginan a. Memberikan wawasan pemrograman modul
lebih lanjut dalam keberagaman modul berbasis sistem kendali
ATMEL ini. b. Memberikan wawasan perancangan modul
Penelitian ini diharapkan akan mampu sistem kendali
mengeksplorasi lanjut terhadap implementasi c. Memberikan wawasan teknik interfacing
perancangan sistem kendali terpadu dan dengan mikrokontroler tipe Arduino dalam
mengujinya dengan harapan dapat membantu berbagai variasi modulnya
dalam mengangkat pemanfaatan sebuah sistem
kendali terpadu berbasis mikrokontroler. METODE PENELITIAN
PERUMUSAN MASALAH Metode yang akan digunakan dalam
penelitian ini terdiri dari langkah-langkah
Perkembangan mikrokontroler menuntut sebagai berikut ;
perkembangan analisa dalam penggunaan dan
mengikuti perkembangan untuk beberapa tipe 1. Studi Literatur
tertentu dalam sistem kendali, serta Untuk memperoleh dasar teori berkaitan
diperlukannya suatu kajian analisa tersendiri dengan pemrograman mikrokontroler,
untuk mencapai suatu simpulan sederhana yang pemrograman C baik berasal dari jurnal,
sebenarnya menjadikan topik dalam buku maupun informasi baku lainnya yang
perkembangan teknologi adalah penyederhanaan bersumber dari situs-situs di internet,
sistem dan algoritma sistem kendali modern. berkaitan dengan perancangan dan

Implementasi Teknik I/O Interfacing berbasis Arduino 87


Jurnal Teknologi Informasi DINAMIK Volume 20, No.1, Januari 2015 : 86-92 ISSN : 0854-9524

pemrograman I/O mikrokokntroler berbasis terminal I/O berkaitan dengan instruksi apa yang
Arduino. akan dilakukan selanjutnya, berikutnya dan
seterusnya.
2. Pemrograman Aplikasi
Pemrograman dalam Arduino juga
Pemrograman aplikasi ini dimaksudkan
memiliki sub-instruksi atau lebih dikenal dengan
untuk menguji sebuah teknik serta
subrutin, dimana akan lebih berguna saat
mengeksplorasi teknik interfacing dan
program memerlukan beberapa fungsi yang akan
mengimplementasikannya teknik/metode
dipanggil saat instruksi loop() dijalankan.
tersebut dalam sebuah aplikasi berbasis
Sementara itu dalam penggunaan subrutin ini
Arduino UNO R3, dengan menggunakan
harus ditentukan terlebih dahulu awal mulai
software bantu berbasis PC.
program, yang biasa disebut dengan prototipe
HASIL DAN PEMBAHASAN sebuah fungsi (function prototype).
Beberapa instruksi program yang diamati void delayLED();
dari contoh di atas dapatlah dikupas informasi void setup()
yang berkaitan dengan hal itu dalam suatu {
keterangan rignkas sebagai berikut, yang }
void loop()
diantaranya adalah berkaitan dengan struktur
{
pemrograman yang berbasis bahasa C. }
Pembahasan pemrograman ini juga dilibatkan
beberapa telaah teoritis dari berbagai sumber
void delayLED()
sebagai rujukan sehingga dapat memperkuat {
analisa dalam memeperoleh informasi yang }
terbaik.
Dimana (1) merupakan contoh sederhana
Instruksi diawali dengan setup() dan loop() dalam prototipe fungsi dan (2) adalah contoh
Semua program dalam pemrograman subrutin.
arduino ini memiliki komponen utama yaitu Tipe variabel
setup() dan loop() dimana instruksi ini daoat
diimplementasikan pada contoh berikut ini : Beberapa variabel terkadang diperlukan
perancangan program untuk memberikan
void setup()
konstanta data berdasarkan tipe variabel yang
{
}
terlibat dalam pengamatan antarmuka dengan
void loop() menggunakan perangkat Arduino ini. Variabel
{ digunakan pada saat merancang program yang
} akan dijalankan dan terdiri dari beberapa bagian
/ blok, dimana variabel akan digunakan untuk
Setup() biasanya digunakan untuk melalukan data-data yang mungkin digunakan
menandai atau mengenalkan atau menginisiasi selama program dijalankan. Adapun beberapa
terminal I/O yang dipakai untuk idnikator seperti tipe program diantaranya adalah sebagai berikut:
LED, sensor, motor dan mungkin penggunaan
terminal serial (serial port). Instruksi ini Tabel 1. Kategori Tipe Variabel
seklaigus memberitahukan kepada Arduino
bahwa terminal-terminal tersebut akan
digunakan selama program aplikasi dijalankan
atau dengan kata lain bahwa terminal tersebut
akan disiapkan oleh Arduino dalam menjalankan
program.
Sementara itu instruksi loop() merupakan
kode instruksi yang akan mengendalikan

88 Implementasi Teknik I/O Interfacing berbasis Arduino


Jurnal Teknologi Informasi DINAMIK Volume 20, No.1, Januari 2015 : 86-92 ISSN : 0854-9524

Deklarasi dapat pula dibentuk dalam


format array, dimana variabel akan memuat
lebih dari satu konten atau isinya.
const int Num0fPins = 3;
int pins[Num0fPins] = {13,9,8};

Format kondisional
Statemen kondisional ini merupakan salah
satu upaya pengendalian aliran program pada
sebuah aplikasi. Hal ini terlingkupi dalam
kondisi statemen if, if-else-if dan switch.
Setelah mengetahui beberapa kelompok Statemen if sangat diperlukan jika program
tipe variabel, yang perlu diperhatikan adalah memerlukan kondisi prasyarat tertentu, dan
bagaimana cara mendeklarasikan variabel- statemen ini dapat diberikan pula logika Boolean
variabel yang kita perlukan dalam sebuah ataupun membatasi periode pengujian tertentu.
program. Untuk mendeklarasikan variabel Penggunaan tambahan statemen elseif pada akhir
tersebut maka diperlukan dasar pengetahuan statemen if memungkinkan untuk memberikan
tentang lingkup variabel yang akan digunakan keputusan kondisi prasyarat yang terakhir.
atau dalam istilahnya adalah variabel global dan Sementara itu statemen switch diperlukan
lingkup khusus yang akan spesifik atau disebut seandainya program memerlukan banyak
sebagai variabel lokal. kondisi khusus dan lebih ringkas.
Variabel lokal hanya akan digunakan pada int i;
lingkup tertentu saja, misalnya pada saat if (i < 10)
program menggunakan instruksi for loop, maka {
variabel tersebut hanya akan berjalan dalam i++;
lingkup loop tersebut saja. Sementara variabel } (A)
global akan digunakan untuk mendefinisikan
sebuah variabel saat program pertama kali
int i;
dijalankan. Sebuha contoh dalam penggunaan
if (i < 10)
variabel dan deklarasinya ada pada program
{
berikut ini.
i++;
int x; }
else if (i > 10)
Voiv setup() {
{ i--;
} } (B)

Void loop() switch (portValue){


{ case 500;
x = 1 + 2; digitalWrite(motorPin,1);
for(int i; i <= 100; i++) case 501;
{ digitalWrite(ledPin,1);
} break;
} default:
digitalWrite(motorPin,0);
x merupakan variabel global sedangkan i
digitalWrite(ledPin,0); (C)
adalah variabel lokal.
Penggunaan Looping

Implementasi Teknik I/O Interfacing berbasis Arduino 89


Jurnal Teknologi Informasi DINAMIK Volume 20, No.1, Januari 2015 : 86-92 ISSN : 0854-9524

Prancangan program terkadang {


memerlukan sebuah even yang akan dilakukan i++;
secara terus menerus atau berulang sehingga } while (i <= 100); (D)
diperlukan konsep looping. Looping atau
diartikan statemen perputaran program yang Komunikasi digital
berulang, dimana basanya menggunakan Teknik untuk berkomunikasi pada
statemen for, while dan do ... while. Perulangan terminal I/O dengan beberapa tipe yang berbeda
ini akan menyingkat proses, dimana saat melalui pin digital perlu diketahui sebagai
program memerlukan sesuatu yang harus seorang perancang program, sehingga dapat
dijalankan seandainya sebuah kondisi terpenuhi dilakukan komunikasi diantaranya, dengan
(true). menggunakan instruksi komunikasi pada pin-pin
digital yaitu digitalWrite(pin,HIGH/LOW) dan
for (int i = 0; i <= 10; i++)
digitalRead(pin).
{
int button = 12;
} (A) int led = 13;
int button6state;
int pins[] = {13,9,8};
void setup()
void setup() {
{ pinMode(button,INPUT);
for (int i = 0; i <= 2; i++) pinMode(led,OUTPUT);
{ }
pinMode(pin[i], OUTPUT); void loop()
} {
} buttonState = digitalRead(button);
void loop() if(buttonState == 1)
{ {
digitalWrite(led,HIGH);
} (B) }
Else
{
int potPin = A1;
digitalWrite(led,LOW);
int motorPin = 9;
}
int potVal;
}
void setup() Teknik berkomunikasi dengan komponen
{ analog
pinMode(motorPin, OUTPUT);
pinMode(potPin, INPUT); Komponen analog yang banyak digunakan
} dalam sistem kendali adalah seperti pada
void loop() penggunaan sensor maupun motor penggerak
{ yang mampu diatur kecepatannya dengan
potVal = analogRead(potPin); potensiometer melalui sebuah modulasi yaitu
while(potVal <= 100) PWM atau pulse width nodulation yang telah
{ tersedia pada pin Arduino. Arduino mengenal
digitalWrite(motorPin,1); beberapa fungsi yang digunakan untuk
} berkomunikasi dengan komponen analig adalah
} (C) analogRead(value) dan analogWrite(pin,value).
Nilai analog dari komponen potensiometer akan
diskalakan pada rentang 0 - 255.
do

90 Implementasi Teknik I/O Interfacing berbasis Arduino


Jurnal Teknologi Informasi DINAMIK Volume 20, No.1, Januari 2015 : 86-92 ISSN : 0854-9524

analogWrite(LED,ledValue/4); // 1024/4 = 255 }

Beberapa instruksi serial adalah : x Serial.available()


x Serial.begin(baud) Instruksi ini digunakan sebagai fungsi untuk
mengecek data jika terdapat data yang
Instruksi ini dituliskan pada struktur setup(), masuk melalui serial port.
dan memberikan baudrate yang sesuai
dengan perangkat unutk berkomunikasi. void loop()
{
void setup()
while(Serial.available() > 0)
{
{
Serial.begin(9600);
// Put code here
}
}
}
x Serial.Println("teks") x Serial.end()
Instruksi ini digunakan untuk menuliskan Instruksi untuk mengakhiri komunikasi
sebuah nilai untuk terminal serial. serial.
void loop() Contoh lengkap komunikasi serial adalah :
{
6HULDO SULQWOQ ´+HOOR :RUOGµ int incomingByte;
} const int ledPin = 13;

void loop() void setup() {


{ Serial.begin(9600);
Serial.println(potVal); pinMode(ledPin,OUTPUT);
} }

x Serial.read() void loop()


Instruksi ini akan membaca nilai dari {
terminal serial. Misalnya dengan while(Serial.available() > 0)
menampilkan nilai dari komputer yang akan {
ditampilkan pada LCD pada arduino. incomingByte = Serial.read()
Serial.pirntln(incomingByte, BYTE);
void loop() digitalWrite(ledPin, incomingByte);
{ }
char var = Serial.read(); }
}
Instalasi libraries
x Serial.write(binary data)
Ada saatnya saat perancangan program
Instruksi ini akan digunakan untuk terkadang memerlukan library khusus (Library
menuliskan data biner ke terminal serial. biasanya sudah tersedia "default") yang TIDAK
terdapat pada library Arduino, sehingga perlu
void ();
menambahkannya, agar program bisa
{
dijalankan.
while(Serial.available() > 0)
{ 1. Menentukan lokasi file aplikasi Arduino
char var = Serial.read(); UNO.
Serial.write(var);
2. Menentukan/pilih folder "libraries"
}

Implementasi Teknik I/O Interfacing berbasis Arduino 91


Jurnal Teknologi Informasi DINAMIK Volume 20, No.1, Januari 2015 : 86-92 ISSN : 0854-9524

deklarasi, tipe variabel dan pengembangan


dengan melibatkan fungsi percabangan
kondisional maupun looping.
DAFTAR PUSTAKA
$UGL :LQRWR ³0LNURNRQWUROHU $95
ATmega8/32/16/8535 dan
Pemrogramannya dengan Bahasa C pada
:LQ$95´ 3HQHUELt Informatika,
Bandung
(QGUD 3LWRZDUQR ³0LNURSURVHVRU
,QWHUIDFLQJ´ 3HQHUELW $QGL <RJ\DNDUWD
Maik Schmidt, 2011, "Arduino - A Quick Start
Guide Quick Start Guide", Pragmatic
Programmers, LLC, USA
3. Mengkopikan file library-nya ke folder Teguh Arif Gustaman, Pengendali Pintu
"libraries" Gerbang Menggunakan Bluetooth
Berbasis Mikrokontroler Atmega 8,
4. Menyalakan/Restart arduino sketch
http://eprints.uny.ac.id/10161/1/Jurnal%20
5. Mengetikkan header library-nya, misal : TA%20Teguh%20Arif%20Gustaman%20
#include <Ethernet.h>; atau seperti berikut %2809507131029%29.pdf
ini :
Ferry Agusta Putra, Andi Dharmawan,
#include <CapSense.h>; Triyogatama Wahyu Widodo,
void setup() {} Implementasi DuinOS pada Purwarupa
void loop() {} Sistem Penyortiran Barang Berbasis
Arduino Uno, IJEIS, Vol.2, No.2,
KESIMPULAN http://jurnal.ugm.ac.id/index.php/ijeis/arti
Adapun beberapa kesimpulan yang cle/view/2437
berhasil diperoleh dalam penelitian ini Helmi Guntoro, Yoyo Somantri, Erik Haritman,
diantaranya adalah sebagai berikut : (2013), Rancang Bangun Magnetic Door
a. Konsep perancangan perangkat keras sistem Lock Menggunakan Keypad dan Solenoid
kendali dengan berbasis mikrokontroler Berbasis Mikrokontroler Arduino Uno,
Arduino UNO memerlukan beberapa teknik ELECTRANS, VOL. 12, NO.1,
antarmuka yang telah tersedia beberapa http://jurnal.upi.edu/file/06_helmi_guntor
modul terapan aplikatif untuk o_hal_39-481.pdf
mengembangkan modul dasar Arduino UNO Mahrus Sabang, Rhiza S. Sadjad, Merna
nya, dan memerlukan pengetahuan/wawasan Baharuddin, Sistem Parkir Cerdas,
berkaitan dengan sumber data masukan yang http://pasca.unhas.ac.id/jurnal/files/d649a
bergantung pada jenis, tipe dan model dari a5b3bc64701cafef244008c6a41.pdf
transducer, serta model komunikasi yang
akan diterapkan pada sistem.
b. Konsep perancangan perangkat lunak
sistem kendali dengan menggunakan ISP
Arduino software memudahkan perancang
dengan mengenali beberapa struktur
pemrograman dasar seperti bahasa C, yang
meliputi instrumen void setup(), void loop(),

92 Implementasi Teknik I/O Interfacing berbasis Arduino

Anda mungkin juga menyukai