APLIKASI ARDUINO MIKROKONTROLER YANG BER

APLIKASI ARDUINO MIKROKONTROLER YANG BERBASIS
ATMEGA328 SEBAGAI PLC
Fullname Ahmad Athoillah
Student Number 25 14 100 704
Email ahmadathoillah17@gmail.com
Abstrak
Dalam dunia industri modern, sistem produksi yang terotomasi sangat
dibutuhkan, baik dalam lantai produksi, bagian manajemen dan level manajer.
Dengan adanya sistem yang terintegrasi antara semua lini produksi akan
memudahkan dalam proses pendataan jumlah barang yang telah diproduksi.
Selain itu, juga bisa memantau kualitas barang karena komputer pada lantai
produksi sudah terhubung dengan bagian quality control. Umumnya alat yang
digunakan untuk mengintegrasikan semua komputer baik di lantai produksi,
bagian administrasi sampai level manajer menggunakan sebuah alat yang
disebut PLC (programmable logic controller). Alat ini juga sering dipakai pada
mesin-mesin produksi. PLC merupakan sekumpulan saklar elektronik yang dapat
diatur kapan harus hidup (ON) atau mati (OFF) sesuai dengan kontrol logika yang
telah diprogram ke dalam PLC.
Konfigurasi dari PLC terdiri dari power supply, CPU dan memory.
Konfigurasi ini dapat ditemukan pada mikrokontroler seperti Arduino yang
berbasis Atmega, sehingga mikrokontroler seperti Arduino dapat difungsikan

sebagai PLC dengan memasukkan program. Untuk memasukkan program ke
dalam Arduino digunakan aplikasi Arduino. Aplikasi yang penulis gunakan adalah
Arduino 1.6.6 yang diunduh di arduino.cc. aplikasi ini sudah dilengkapi dengan
berbagai macam library dari project sederhana, seperti liquid crystal display,
servo, stepper dan yang lain.
1.

Pendahuluan
Mikrokontroler merupakan suatu sistem minimum dari mikrokomputer
yang terdiri atas sebuah mikroprosesor, memori, unit input dan output. Dalam
menggunakan mikrokontroler untuk mesin produksi akan didapatkan keuntungan
baik secara material maupun pengembangan aplikasinya. Karena mikrokontroler
merupakan gabungan dari hardware dan software yang menggerakannya. Pada
aplikasinya dalam industri, mikrokontroler banyak digunakan dalam sistem
kontrol industri karena aplikasinya yang mudah dan murah. Selain itu PLC
merupakan kontrol industri yang banyak digunakan juga. Sebuah komponen
pengendali mesin logika terprogram (PLC) dapat didefinisikan sebagai pengendali
berbasis mikrokomputer yang menggunakan instruksi-instruksi yang tersimpan
dalam memori yang dapat diprogram untuk menerapkan logika, pengaturan
(sequencing), timing, counting dan fungsi aritmetika melalui model input/output

(I/O) digital atau analog, untuk mengendalikan mesin dan proses. Aplikasi PLC
ditemukan baik dalam industri proses maupun manufaktur diskrit, tapi pada
dasarnya berhubungan dengan industri proses maupun manufaktur diskrit untuk
mengendalikan mesin, jalur transfer dan peralatan pemindahan bahan.
Pada dunia industri modern yang menjalankan proses manufaktur yang
komplek, mikrokontroler banyak diguanakan sebagai sistem kontrol industri, baik
Ahmad Athoillah |1|Industrial Automation

pada mesin produksi maupun pada integrasi antar komputer. Selain itu, PLC juga
bisa digunakan untuk sistem kontrol pada mesin-mesin produksi. PLC memiliki
kelebihan di dalam aplikasinya, pengawatan (wiring) lebih sedikit,
troubleshooting sistem lebih sederhana, konsumsi daya relatif rendah, modifikasi
sistem lebih sederhana dan cepat.

2.

Teori Programmable Logic Control (PLC) dan Arduino
Teroi tentang PLC dan Arduino sudah banyak dijelaskan pada buku-buku
tentang elektronika maupun di internet. Penulis akan menjelaskan tentang
teori dan konfigurasi dari PLC dan Arduino dari beberapa sumber yang

penulis tahu.
2.1 Programmable Logic Control
PLC dirancang sedemikan rupa untuk menggantikan rangkaian kontrol
logic, relay dan timer yang merupakan unsur terpenting dalam berbagai
sistem kontrol untuk proses-proses yang rumit. Suatu PLC dapat diprogram
untuk menggantikan puluhan sampai ratusan rangkaian kontrol logika yang
saling tidak bergantungan. Input atau output pada PLC memungkinkan untuk
interfacing langsung dengan proses yang sebenarnya. PLC menerima input
berupa sinyal dari peralatan eksternal yang dikontrol, seperti sakelar, sensor
dan tombol perintah. sinyal ini telah diubah menjadi sinyal digital oleh analog
to digital converter (ADC) sehingga dapat diterima dan dibaca oleh PLC,
karena PLC tidak dapat membaca sinyal digital yang dikeluarkan oleh
peralatan eksternal. Setelah diterima PLC, CPU akan memproses sinyal yang
masuk untuk kemudian mengambil keputusan sesuai dengan logika kontrol
yang telah dimasukkan dalam memori PLC. Kemudian PLC akan mengirimkan
perintah berupa sinyal digital ke peralatan output an. Untuk bisa
menggerakkan alat yang berbasis analog seperti selenoid, relai, kontraktor
sound, LED, maka dibutuhkan digital to analog converter (DAC). Sistem akan
terus berjalan sesuai seperti program yang telah dimasukkan dalam PLC.
Konfigurasi dari PLC terdiri dari beberapa bagian yaitu Power Supply

Unit, CPU, Memory Unit, I/O Unit dan Peripheral. Sumber daya untuk PLC
sangat dibutuhkan sehingga PLC bisa aktif dan bekerja, Power Supply ini
menjalankan fungsinya sebagai pemasok sumber energi untuk PLC. Untuk
mengolah program sesuai dengan hukum kontrol logika, melakukan
pengawasan atas semua operasional kerja dari PLC dan transfer informasi
melalui internal bus antara PLC, memori dan unit I/O, PLC dilengkapi Central
Unit Process (CPU). Dan untuk irama kerja CPU, PLC dilengkapi dengan
generator clock yang bervariasi sesuai dengan tipe dari PLC. Untuk
menyimpan logika kontrol yan sudah diprogram oleh programmer, menyimpan
data dan status input/output dan menyimpan data untuk fungsi internal (timer,
counter, marker relay dll), PLC disediakan sebuah memori unit untuk dapat
melakukan itu semua. Unit yang biasa dipakai adalah Random Access Memory
(RAM), Erasable Programmable Read Only Memory (EPROM) atau Electronic
Erasable Programmable Read Only Memory (EEPROM). PLC juga dilengkapi
dengan battery backup sehingga ketika power supply tiba-tiba mati maka data
masih bisa disimpan. Pada umumnya informasi data pada PLC dinyatakan
dalam bentuk tegangan listrik antara 5 – 15 VDC, sedangkan sistem tegangan
di luar bervariasi dari 24 – 240 VDC maupun AC. Unit I/O dimaksudkan untuk
Ahmad Athoillah |2|Industrial Automation


interfacing antara kedua besaran tersebut. Untuk mememasukkan program ke
dalam PLC diperlukan suatu unit pemrograman, dapat berupa Programming
Console atau Sysmate Support Software (SSS). Bagian utama Programming
Console adalah LCD Display-monitor, mode selector switch (Program Monitor
Run), keyboard (kunci numerik, kunci instruksi dan kunci operasi) dan
connector lead. Program yang dimasukkan ke dalam PLC berbentuk
mnemonic. Program ini berguna untuk membuat, mengubah, memasukkan,
memantau dan menjalankan programo pada PLC. SSS adalah software khusus
yang memungkinkan programmer dapat mensimulasikan program kerja dari
PLC dengan menggunkan PC.
2.2

Arduino Uno
Arduino Uno merupakan sebuah mikrokontroler yang berbasis
Atmega328. Arduino tipe ini memiliki 14 pin digital input/output (6 digunakan
untuk PMW), 6 input analog, resonator keramik 16 MHz, koneksi USB, jack
listrik, header ICSP dan tombol reset. Uno dilengkapi dengan semua komponen
yang dibutuhkan oleh suatu mikrokontroler. Untuk sumber dayanya bisa
menggunakan power USB, adaptor atau baterai. Arduino Uno berbeda dari
semua papan Arduino sebelumnya dalam hal tidak menggunakan FTDI chip

driver USB to-serial. Sebaliknya fitur Atmega16U2 (Atmega 8U2 sampai versi
R2) diprogram sebagai konverter USB to-serial. Revisi 2 dari Uno memiliki
resistor pulling 8U2 HWB yang terhubung ke ground, sehingga lebih mudah
untuk menggunakan mode DFU. Papan Arduino Rev 3 memiliki fitur baru
sebagai berikut :
 Ada penambahan pin out berupa SDA dan SCl yang ditempatkan
dekat dengna AREF dan dua pin baru lain yang berada di dekat pin
RESET. IOREF yang memungkinkan shield beradaptasi dengan
tegangan yang disediakan dari papan/board. Di masa depan shield
akan kompatibel dengan kedua papan yang menggunakan AVR
yang beroperasi dengan 5V dan dengan Arduino yang beroperasi
3.3V keduanya adalah pin yang tidak terhubung yang dicadangakan
untuk masa depan.
 Reset sirkuit yang sangat kuat.
 Atmega 16U2 menggantikan 8U2.
2.2.1 Power Supply
Arduino dapat diaktifkan melalui koneksi USB atau dengan catu
daya eksternal. Untuk sumber daya eksternal (non-USB) dapat
berasal dari adaptor AC-DC atau baterai. Adaptor dapat
dihubungkan dengan jack 2.1 mm DC ke colokan listrik board.

Betrai dapat dibungkan denga konektor yang dihungkan ke pin
GND dan Vin. Board dapat beroperasi pada dengan pasokan 6
sampai 20 Volt. Jika menggunakan kurang dari 6V mungkin tidak
akan stabil, jika lebih dari 20V akan merusakn board karena terlalu
panas. Rentang yang dianjurkan yaitu 7 – 12 Volt. Pin listrik yang
tersedia dalam Arduino adalah sebagai berikut :
 VIN. Input tegangan ke board Arduino ketika menggunakan
sumber daya eksternal.
 5V. Pin ini menggunakan output 5V yang telah diatur oleh
regulator papan Arduino. Board dapat diaktifkan dengan
Ahmad Athoillah |3|Industrial Automation

daya, baik dari colokan listrik DC (7 – 12V), konektor USB
(5V), atau pin VIN board (7 – 12V).
 3.3V. dihasilkan oleh regulator on-board. Menyediakan arus
maksimum 50 mA.
 GND. Pin ground.
 IOREF. Memberikan tegangan referensi ketika Arduino
beroperasi. Shield yang dikonfigurasikan dengan benar akan
dapat membaca tegangan IOREF sehinggan dapat memilih

sumber daya yang tepat agar bekerja dengan tegangan 5V
atau 3V3.
2.2.2 Memori
Atmega328 memiliki 32 KB (dengan 0,5 KB digunakan untuk
bootloader). Atmega328 juga memiliki 2 KB dari SRAM dan 1 KB
EEPROM (yang dapat dibaca dan ditulis dengan perpustakaan /
library EEPROM)
2.2.3 Input / Output
Masing-masing dari 14 digit pin digital Uno dapat digunakan
sebagai input dan output, menggunakan pinMode(), digitalWriter()
dan digitalRead(). Semua beroperasi pada tegangan 5V. Setiap pin
dpat memberikan atau menerima maksimal 40mA dan memiliki
resistor pull-up internal (terputus secara default) darii 20-50 kOhms.
Selain itu, beberapa pin memiliki fungsi spesial :
 Serial: pin 0 (RX) dan 1 (TX) digunakan untuk mengirim (TX)
dan menerima (RX) data serial TTL. Pin ini terhubung dengan
pin Atmega8U2 USB-to-serial TTL.
 Eksternal Interupsi: Pin 2 dan 3 dapat dikonfigurasi untuk
memicu interupt pada nilai yang rendah (low value), rising
atau falling edge atau perubahan nilai.

 PWM: pin 3, 5, 6 ,9, 10 dan 11 menyediakan 8 bit PWM
dengan fungsi analogWriter().
 SPI: pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) mendukung
komunikasi SPI dengan menggunakan perpustakaan SPI.
 LED: pin 13. Built-in LED terhubung ke pin digital 13. LED
akan menyala ketika diberi nilai HIGH.
Arduino Uno memiliki 6 input analog, berlabel A0 sampai A5
yang masing-masing menyediakan resolusi 10 bit (yaitu 1024
nilai yang berbeda). Secara default mereka mengukur dari
ground
sampai
5V,
perubahan
tegangan
maksimal
menggunakan pin AREF dan fungsi analogReference(). Selain
itu, beberapa pin tersebut memiliki spesialisasi fungsi, yaitu
TWI: pin A4 atau SDA dan A5 atau SCL mendukung
komunikasi TWI menggunakan perpustakaan Wire. Ada
beberapa pin lainnya yang teretulis di board Arduino yaitu

AREF dan Reset. AREF adalaf tegangan referensi untuk input
analog. Dapat digunakan dengan fungsi analogReference().
Tombol reset digunakan untuk me-reset mikrokontroler.
2.2.4 Komunikasi
Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi
dengan komputer, Arduino lain, atau mikrokontroler lainnya.
Ahmad Athoillah |4|Industrial Automation

ATmega328 menyediakan UART TTL (5V) komunikasi serial, yang
tersedia pada pin digital 0 (RX) dan 1 (TX). Pada ATmega16U2
saluran komunikasi serial melalui USB dan muncul sebagai com port
virtual untuk perangkat lunak pada komputer. Firmware 16U2
menggunakan standar driver USB COM, dan tidak ada driver
eksternal diperlukan. Namun, pada Windows, diperlukan file .inf.
Perangkat
lunak
Arduino
termasuk
monitor
serial

yang
memungkinkan data tekstual sederhana akan dikirim ke dan dari
papan Arduino. RX dan TX LED di papan akan berkedip ketika data
sedang dikirim melalui chip USB-to-serial dan koneksi USB komputer
(tetapi tidak untuk komunikasi serial pada pin 0 dan 1). ATmega328
juga mendukung I2C (TWI) dan komunikasi SPI. Perangkat lunak
Arduino termasuk perpustakaan Wire berfungsi menyederhanakan
penggunaan bus I2C. Untuk komunikasi SPI, menggunakan
perpustakaan SPI.

3.

Pengujian Arduino
Dalam pengujian ini akan disimulasikan bagaimana Arduino mengontrol
LCD. Dengan memasukkan program melalui aplikasi Arduino 1.6.6 di PC, maka
Arduino board dapat mengontrol LCD untuk menampilkan karakter sesuai yang
ditulis di program.
3.1

Merakit Semua Komponen
Untuk merakit semua komponen bisa menggunakan PCB matriks
ataupun project board. Jika menggunakan PCB maka untuk
mengkoneksikan antara semua komponen harus menggunakan
soldering iron. Sedangkan jika menggunkan project board maka tidak
diperlukan proses soldering, cukup menancapkan kabel jumper di
lubang yang tersedia di project board. Semua komponen elektronik
yang dibutuhkan untuk membuat simulasi LCD sederhana yaitu :
 Arduino Uno. Adalah mikrokontroler berbasis Atmega328. Sudah
dijelaskan secara rinci pada bab sebelumnya.

Ahmad Athoillah |5|Industrial Automation

Gambar 1 Arduino Uno Board

 Liquid Crystal Display (LCD). Untuk ukurannya digunakan 2 x 16.
Dengan pin berjumlah 16. Untuk setiap spesifikasi dari setiap pin
dapat dilihat pada tebel berikut
Tabel 1 Fungsi Terminal Pin LCD

No.
Pin

1
2
3
4

Nama
Pin
VSS
VDD
V0
RS

I/O

Deskripsi

Power
Power
Power
Input

Power supply, Ground (0V)
Power supply positif
Referensi supply kontras LCD
Register Select
RS=HIGH: transfering display data
RS=LOW: transfering instruction
data
5
R/W
Input
Read/Write Control Bus:
R/W=HIGH: read mode dipilih
R/W=LOW: write mode dipilih
6
E
Input
Data enable
7
DB0
Bi-directional tri-state data bus
In 8 bit mode, DB0 – DB7 semua
:
:
I/O
digunakan
14
DB7
In 4 bit mode, DB4 – DB7 digunakan,
DB0 – DB3 dibiarkan terbuka
15
BLA
Power Backlight positive supply
16
BLK
Power Backlight negative supply
 Project Board. Yaitu papan yang telah tersambung antara lubang
satu dengan yang lain sehingga hanya perlu menancapkan kabel
jumper
untuk
menghubungkan
semua
komponen.
Ini
memudahkan untuk pemula yang ingin belajar tentang
rangkaian elektronika, namun harga dari project board lebih
mahal dari harga PCB matriks. Adapun lintasan sambungan
antara lubang ditunjukkan seperti gambar berikut

Ahmad Athoillah |6|Industrial Automation

Gambar 2 Lintasan Sambungan Antara Lubang

Pada bagian tengah lubang yang berjumlah 5 yang tersusun
secara vertikal terhubung secara vertikal juga. Dan dua lubang
yang di bagian luar terhubung secara horisontal dan terpisah di
tengah. Hal ini perlu diperhatikan agar ketika membuat
rangkaian elektronikanya bisa menyusun rangkaian dengan
benar.
 Kabel jumper. Kabel ini seperti kabel biasa yang terbuat dari
tembaga. Strukturnya agak keras sehingga memudahkan untuk
menancapkan kuat dan tidak mudah lepas ke project board
maupun ke Arduino.
 Resistor VR. Resistor 10k yang bisa diubah-ubah besaran
resistornya dengan menggunakan obeng.
 Kabel printer. Kabel ini berfungsi sebagai konektor antara PC
dengan Arduino untuk meng-upload program yang telah ditulis di
PC ke dalam board memori Arduino. Selain itu, kabel ini juga bisa
berfungsi sebagai daya untuk Arduino.

G
ambar 3 Rangakaian Dasar LCD-Arduino

Ahmad Athoillah |7|Industrial Automation

Untuk merakit itu semua bisa mengikuti pada gambar diatas.
Diamana pin yang digunakan hanya pin DB4 – DB7. Untuk LCD
perlu dilakukan proses soldering dengan menanamkan lanangan
pada pin yang digunakan. sehinggan nantinya LCD bisa
ditanamkan ke project board.
3.2

Menulis Program di PC
Untuk menulis program yang ingin ditampilkan di LCD, digunakan
aplikasi Arduino 1.6.6 yang telah di unduh di www.arduino.cc secara
free. Software ini tidak dipungut biaya karena sifatnya yang open
source, sehingga bisa digunakan untuk berbagai kalangan. Aplikasi ini
sudah dilengkapi dengan berbagai macam library untuk membuat
project yang sederhana. Penulis akan menggunakan library Liquid
Crystal untuk mode display karakter. Adapun program yang ditulis
sebagai berikut :
#include
LiquidCrystal lcd(4,5,6,7,8,9);
void setup()
{
lcd.begin(16,2);
lcd.clear();
}
void loop()
{
lcd.setCursor(5,0);
lcd.print ("GUNUNG");
delay (1000);
lcd.setCursor(1,1);
lcd.print ("PENANGGUNGAN:D");
delay (1000);
lcd.clear();
}
Pertama dituliskan inisialisasi program yang digunakan yaitu Liquid
Crystal Display (LCD). Kemudian ditampilkan pin yang digunakan
adalah pin 4, 5, 6, 7, 8 dan 9 pada input digital di board Arduino.
Kemudian dituliskan bahwa LCD yang digunakan berkapasitas 16
karakter secara horisontal dan 2 secara vertikal, dituliskan (16,2). 16
melambangkan jumlah kolom dan 2 adalah jumlah baris. Untuk
menampilkan karakter yang diinginkan bisa menggunakan perintah
lcd.print(); di dalam kurung dituliskan kata yang ingin ditampilkan.
Dalam contoh tersebut dituliskan “GUNUNG”. Untuk posisi kata gunung
telah ditentukan dengan perintah lcd.setCursor();, dalam contoh
tersebut kata “GUNUNG” huruf pertama yaitu G akan ditulis di kolom ke
6, karena penentuan kordinat kolom dan baris diawali dari 0. Dan kata
“GUNUNG”
ditulis
di
baris
1.
Begitu
juga
dengan
kata
“PENANGGUNGAN:D” yang huruf awalnya yaitu P akan ditulis di kolom
ke 2 pada baris ke 2. Lcd.clear(); adalah perintah untuk menghapus
semua tulisan yang telah ditampilkan di LCD baik pada baris pertama
Ahmad Athoillah |8|Industrial Automation

maupun baris kedua. Perintah delay(); adalah untuk memberikna jeda
antara satu perintah dengan perintah yang lain. Satuan jeda ini
menggunkan milisekon. Setelah selesai menulis program di aplikasi
Arduino 1.6.6 maka proses selanjutnya yaitu meng-uploadnya ke board
Arduino dengan menghubungkan Arduino ke PC melalui kabel printer.
Setelah proses upload selesai, tekan tombol reset pada board Arduino.
Setelah itu Arduino akan mengatur LCD agar menampilkan karakter
seperti yang telah ditulis di program Arduino.
3.3

Menampilkan Hasil Program di LCD
Berikut adalah hasil dari program yang telah dilakukan pada board
Arduino.

Gambar 4 Hasil Uji Program

4.

Kesimpulan
Dari hasil uji Arduino Uno berbasis mikrokontroler Atmega328 untuk
menampilkan karakter pada LCD adalah sebagai berikut :
 Arduino Uno merupakan mikrokontroler yang berbasis Atmega328
yang bisa dirancang untuk dijadikan programmable logic controller
(PLC) sederhana.
 Arduino adalah program yang sangat mudah dan user friendly
sehingga bisa digunakan untuk berbagai kalangan terutama untuk
tujuan pembelajaran rangkaian elektronika bagi pemula.
 Program dalam Arduino yang telah di upload kan bisa dihapus dan
diganti dengan yang baru. Hal ini memudahkan untuk mengganti
program yang mengalami kesalahan ketika dijalankan. Selain itu,
aplikasi Arduino juga dilengkapi dengan fitur verify yang digunakan
untuk memverifikasi apakah program sudah ditulis dengan benar
atau tidak. Dan jika terjadi kesalahan dalam penulisan program
Arduino akan menandai kesalahan tersebut dan meberikan problem
solving.

Ahmad Athoillah |9|Industrial Automation

DAFTAR PUSTAKA
Groover, Mikell P., 2007. Computer Integrated Manufacturing, 2nd edition,
Prentice Hall, New Jersey
Putranto, Agus, 2008. Teknik Otomasi Industri, Jilid 1, Buku Sekolah
Elektronik, Jakarta.
Darmono. (2001), Programmable Logic Controller (PLC) Berbasis Mikrokontroler
AT89C51, Tugas Akhir, Universitas Diponegoro, Semarang.
Shenzhen TOPWAY Technology Co., Ltd. (2007), LMB162ABC LCD Module User
Manual.
Aozon Maulana, 2014. Mengenal Arduino Lebih Rinci, https://aozon.blogspot.co.id,
diakses pada tanggal 26 Nopember 2015.

Ahmad Athoillah |10|Industrial Automation