OLEH :
D3 TEKNIK ELEKTRONIKA
KOTA TEGAL
2022
BAB I PENDAHULUAN
Motor DC memiliki respon yang cepat, namun masih memiliki error steady state.
Oleh karena itu dibutuhkan suatu kontroler yang tepat dan sesuai dengan plant
sistem. Salah satu kontroler yang digunakann adalah PID ( Proporsional Integral
Diferensial). PID adalah kontrol aksi yang memiliki respon cepat, sehingga
kontrol aksi ini sesuai jika digunakan untuk mengontrol kecepatan motor DC[3].
LANDASAN TEORI
Motor DC merupakan motor yang saai ini banyak digunakan untuk proses
produksi dalam industri,karena mudah untuk diaplikasikan. Motor DC sering
digunakan pada pemakaian yang memerlukan rentang kecepatan yang lebar.
Selain itu, motor DC juga mempunyai kekurangan yaitu dalam hal pengaturan
kecepatan dan besarnya saat putaran awal. Oleh karena itu untuk menekan
tingginya overshot pada putaran awal motor perlu dilakukan pengaturan
sehingga kecepatan motor sesuai dengan set poin yang diinginkan dengan
risetime yang tinggi dan overshot yang lebih kecil.
Pada suatu sistem kendali harus ada “sesuatu” yang dikendalikan. Dalam bidang
teknik, “sesuatu” yang dimaksud adalah suatu sistem fisis yang merupakan
sekumpulan peralatan mekanik, elektrik, kimiawi dan sebagainya. Selanjutnya,
sistem fisis yang dikendalikan disebut KENDALIAN.
Besaran fisis yang dihasilkan oleh kendalian disebut OUTPUT atau lebih khusus
lagi adalah output dari plant. Bentuk output dapat dipilih sembarang sesuai
dengan keperluan yang diinginkan.
Pengendalian fluksi medan magnet atau mengatur tahanan geser medan yang
dihubungkan secara seri dengan medan shunt. Dengan menaikkan tahanan
dalam rangkaian medan akan menyebabkan fluksi medan mengecil (menurun)
sehingga kecepatan bertambah. Biasanya digunakan untuk motor shunt atau
motor kompon. Pengendalian tahanan resistansi jangkar yang dihubungkan seri
dengan jangkar. Dengan tahanan seri dinaikkan, tegangan pada jangkar motor
berkurang dan kecepatan motor turun. Biasanya digunakan untuk motor seri.
Pengendalian tegangan terminal, dengan memberikan tegangan variabel pada
rangkaian jangkar, akan menyebabkan kecepatan pada motor berubah-ubah[4].
Dimana:
U(t) : sinyal kontrol
e(t) : sinyal error yang merupakan perbedaan antara set point dan output proses
(e(t)=Sp-y(t))
Kp : gain, Kp=100% / PB, (PB=Proporsional Band)
Ti : waktu integral (integral time). (det)
Td : waktu derivatif (derivative time), (det)
Jika PID kontroler direpresentasikan dalam bentuk persamaan waktu dapat
dinyatakan dalam dua cara:
1. Bentuk Posisi
Setelah nilai L dan T ditemukan, selanjutnya nilai parameter Kp, Ki, Kd dapat
dicari dengan menggunakan rumus-rumus parameter PID untuk metode ZN tipe
1[11]. Rumus menentukan parameter PID dapat dilihat pada Tabel 2.2 .
2.5 Motor DC
Motor DC merupakan salah satu penggerak utama yang banyak digunakan di
industri masa kini. Pada tahun-tahun lalu kebanyakan motor servo kecil yang
digunakan untuk tujuan kendali merupakan jenis Alternating Current (AC). Pada
kenyataannya, motor AC lebih sulit untuk dikendalikan, khususnya untuk kendali
posisi, dan karakteristiknya cukup nonlinier, yang membuat tugas analitis lebih
sulit. Sedangkan motor Direct Current (DC) lebih mahal, karena sikat dan
komutatornya, dan motor DC dengan fluks berubah hanya sesui untuk aplikasi
kendali jenis tertentu. Sebelum teknologi magnet berkembang pesat, torsi per
satuan volume atau bobot dari suatu motor DC dengan medan magnet
permanen
sangat jauh dari yang diinginkan. Sekarang, dengan perkembangan magnet
lapisan
bumi dimungkinkan untuk mendapatkan motor DC permanen torsi ke volume
yang sangat tinggi dengan biaya terjangkau. Lebih dari itu, kemajuan-kemajuan
yang dibuat pada teknologi sikat dan komutator telah membuat sikat dan
komutator dapat digunakan dengan bebas perawatan. Kemajuan yang dibuat
pada
elektronika daya telah menjadikan motor DC tanpa sikat cukup terkenal pada
sistem kendali dengan performansi tinggi. Teknik manufaktur yang maju juga
telah menghasilkan motor DC dengan rotor tanpa besi yang mempunyai inersia
yang sangat kecil, sehingga mencapai suatu rasio torsi-inersia yang sangat
tinggi,
dan sifat konstanta waktu yang kecil telah membuka aplikasi baru untuk motor
DC pada perlengkapan komputer seperti penggerak pita, printer, disk drive, dan
pengolah kata, seperti pada industri otomasi dan perkakas mesin[3]. Seperti
yang
ditunjukkan pada Gambar 2.4.
2. Rotor/jangkar motor DC
Rotor merupakan bagian yang bergerak pada motor DC, rotor terdiri dari inti besi
yang dililitkan kumparan. Kumparan pada rotor ini disebut sebagai kumparan
jangkar dimana GGL induksi dihasilkan. Rotor ini yang menggerakan roda pada
robot sehingga perputarannya dapat membantu pergerakan pada lintasan,
kecepatan putaran rotor ini tergantung dari tegangan yang masuk dan gaya
medan
magnet yang dihasilkan, semakin besar tegangan yang masuk, maka
perputarannya semakin cepat [6]. Seperti yang ditunjukkan pada Gambar 2.6.
4. Komutator
Komutator terdiri dari batangan tembaga yang dikeraskan dan diisolasi dengan
sejenis mika. Komutator berfungsi mengumpulkan arus induksi dari konduktor
jangkar dan mengkonversinya menjadi arus searah melalu brushes [6]. Seperti
yang ditunjukkan pada Gambar 2.7.
5. Brushes
Brushes pada umumya terletak pada sisi komutator untuk menyuplai listik ke
motor. Brushes pada umumnya terbuat dari karbon, logam graphite atau
campuran karbon dan grafit yang dilengkapi dengan pegas penekan dan kontak
sikatnya, karbon pada brush diusahakan memiliki konduktivitas yang tinggi untuk
mengurangi rugi-rugi listik dan koefisien gesekan yang rendah untuk mengurangi
keausan (excessive wear) [6].
2.6 Driver motor L298N
Driver motor digunakan sebagai penghubung antara mikrokontroler ke motor
DC . Driver motor ini digunakan karena arus yang keluar dari mikrokontroler
tidak mampu mencukupi kebutuhan dari motor DC. IC L298N dapat digunakan
untuk menggerakan motor DC half-bridge sebanyak empat buah atau dua motor
DC fullbridge. IC ini mempunyai 4 pin input yang bersesuaian dengan 4 pin
outputnya. Selain itu juga terdapat 2 pin enable untuk pin output 1,2 dan pin
output 3,4[6]. Seperti yang ditunjukkan pada Gambar 2.8.
2.7 LCD (Liquid Crystal Display)
Display LCD sebuah liquid crystal atau perangkat elektronik yang dapat
digunakan untuk menampilkan angka atau teks. Ada dua jenis utama layar LCD
yang dapat menampilkan numerik (digunakan dalam jam tangan, kalkulator dan
lain-lain) dan menampilkan teks alfanumerik (sering digunakan pada mesin foto
kopi dan telepon genggam).
Dalam menampilkan numerik ini kristal yang dibentuk menjadi bar, dan dalam
menampilkan alfanumerik kristal hanya diatur kedalam pola titik. Setiap kristal
memiliki sambungan listrik individu sehingga dapat dikontrol secara independen.
Ketika kristal off' (yakni tidak ada arus yang melalui kristal) cahaya kristal terlihat
sama dengan bahan latar belakangnya, sehingga kristal tidak dapat terlihat.
Namun ketika arus listrik melewati kristal, itu akan merubah bentuk dan
menyerap lebih banyak cahaya. Hal ini membuat kristal terlihat lebih gelap dari
penglihatan mata manusia sehingga bentuk titik atau bar dapat dilihat dari
perbedaan latar belakang.
Sebuah LED display (sering digunakan dalam radio jam) terdiri dari sejumlah
LED yang benar-benar mengeluarkan cahaya dan dapat dilihat dalam gelap.
Sebuah layar LCD hanya mencerminkan cahaya, sehingga tidak dapat dilihat
dalam gelap. LMB162A adalah modul LCD matrix dengan konfigurasi 16
karakter dan 2 baris dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5
kolom pixel 1 baris terakhir adalah kursor [10]. Seperti yang ditunjukkan pada
Gambar 2.9.
2.8 Arduino Uno
Arduino Uno adalah arduino board yang menggunakan mikrokontroler
ATmega328. Arduino Uno memiliki 14 pin digital (6 pin dapat digunakan sebagai
output PWM), 6 input analog, sebuah 16 MHz osilator kristal, sebuah koneksi
USB, sebuah konektor sumber tegangan, sebuah header ICSP, dan sebuah
tombol
26 reset. Arduino Uno memuat segala hal yang dibutuhkan untuk mendukung
sebuah mikrokontroler. Hanya dengan menhubungkannya ke sebuah komputer
melalui USB atau memberikan tegangan DC dari baterai atau adaptor AC ke DC
sudah dapat membuanya bekerja. Arduino Uno menggunakan ATmega16U2
yang
diprogram sebagai USB-to-serial converter untuk komunikasi serial ke computer
melalui port USB. Tampak atas dari arduino uno dapat dilihat pada Gambar
2.10[8].
Adapun data teknis board Arduino UNO adalah sebagai berikut :
1. Mikrokontroler : ATmega328
2. Tegangan Operasi : 5V
3. Tegangan Input (recommended) : 7 - 12 V
4. Tegangan Input (limit) : 6-20 V
5. Pin digital I/O : 14 (6 diantaranya pin PWM)
6. Pin Analog input : 6
7. Arus DC per pin I/O : 40 mA
8. Arus DC untuk pin 3.3 V : 150 mA
9. Flash Memory : 32 KB dengan 0.5 KB digunakan untuk bootloader
10. SRAM : 2 KB
11. EEPROM : 1 KB
12. Kecepatan Pewaktuan : 16 Mhz
2.9 Arduino IDE
Arduino adalah pengendali mikro single-board yang bersifat open-source,
diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR
dan softwarenya memiliki bahasa pemrograman sendiri.
Arduino juga merupakan platform hardware terbuka yang ditujukan kepada siapa
saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan
hardware dan software yang fleksibel dan mudah digunakan. Mikrokontroler
diprogram menggunakan bahasa pemrograman arduino yang memiliki
kemiripan syntax dengan bahasa pemrograman C. Karena sifatnya yang terbuka
maka siapa saja dapat mengunduh skema hardware arduino dan membangunnya
[9].
Adapun bagian-bagian Arduino IDE sebagai berikut:
Bahasa pemrograman arduino, arduino merupakan bahasa pemrograman dengan
bahasa C. Berikut adalah penjelasan singkat mengenai karakter bahasa C.
1. Struktur
a) Void setup ( ) { }
Semua kode didalam kurung jurawal akan dijalankan hanya satu kali ketika
program arduino dijalankan untuk pertama kalinya.
b) Void loop ( ) { }
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah
dijalankan satu kali fungsi ini akan dijalankan lagi dan secara terus menerus
sampai catu daya dilepaskan.
2. Syntax
a) // (komentar satu baris)
Syntax ini digunakan untuk menuliskan catatan satu baris, tanda //
mengakibatkan catatan dibelakangnya tidak tereksekusi oleh program.
b) /* */ (komentar banyak baris)
Syntax ini digunakan ketika mempunyai banyak catatan yang dimasukan pada
program, dengan menuliskan catatan diantara tanda /* */.
c) { } (kurung karawal)
Mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada
fungsi dan pengulangan).
d) ; (titik koma)
Program arduino pada setiap baris kode harus diakhiri dengan tanda titik koma
(jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).
3. Variabel
a) Int (integer)
Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Variabel ini tidak
mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
b) Long (long)
Variabel integer tidak mencukupi lagi, maka alternatif lain meggunakan long,
variabel ini memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai
rentang dari -2,147, 483, 648 dan 2,147, 483, 647.
c) Boolean (boolean)
Variabel sederhana yang digunakan untuk menyimpan nilai true (benar) atau
false (salah), sangat berguna karena hanya menggunakan 1 bit dari RAM.
d) Float (float)
Variabel ini digunakan untuk angka desimal (floating point), memakai 4 byte
(32 bit) dari RAM dan mempunyai rentang dari -3,4028235E+38 dan
3,4028235E+38.
e) Char (character)
Variabel ini mempunyai 1 karakter menggunakan kode ASCII (misalnya
‘A’=65). Hanya memakai 1 byte (8 bit) dari RAM.
4. Operasi matematika
a) =
Membuat sesuatu menjadi sama dengan nilai yang lain.
b) %
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain.
c) +
Operator “+” digunakan untuk penjumlahan.
d) -
Operator “-” digunakan untuk pengurangan.
e) *
Operator “*” digunakan untuk perkalian.
f) /
Operator “/” digunakan untuk pembagian.
5. Operator pembanding
Digunakan untuk membandingkan nilai logika.
a) =
Sama dengan (misalnya: 12=10 adalah false (salah) atau 12 = 12 adalah true
(benar).
b) !=
Tidak sama dengan (misalnya: 12 != 10 adalah true (benar) atau 12 != 12
adalah false (salah).
c) <
Lebih kecil dari (misalnya: 12<10 adalah false (salah) atau 12<12 adalah false
(salah) atau 12<14 adalah true (benar).
d) >
Lebih besar dari (misalnya 12>10 adalah true (benar) atau 12>12 adalah false
(salah) atau 12>14 adalah false (salah).
6. Struktur pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan
berikutnya,
berikut ini adalah elemen dasar pengaturan.
a) if..else, dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Struktur seperti diatas akan menjalankan kode yang ada di dalam kurung
kurawal
jika kondisinya true, dan jika tidak (false) maka akan diperiksa apakah kondisi
pada else if dan jika kondisinya false maka kode pada else yang akan dijalankan.
b) for, dengan format seperti berikut ini:
for (int i=0;i<#pengulangan;i++) { }
Penggunaannya apabila ingin melakukan pengulangan kode di dalam kurung
kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan jumlah
yang diinginkan. Melakukan perhitungan ke atas dengan i++ atau ke bawah
dengan i--.
7. Digital
a) pinMode (pin, mode)
pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah
14-19). Mode yang digunakan adalah input atau output.
b) digitalWrite (pin, value)
Pin pada arduino ditetapkan sebagai output, pin tersebut dapat dijadikan high
(ditarik menjadi 5 volt) atau low (diturunkan menjadi ground).
c) digitalRead (pin)
Pin pada arduino ditetapkan sebagai input, maka dapat menggunakan kode ini
untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volt)
atau low (diturunkan menjadi ground).
8. Analog
a) analogWrite (pin,value)
Pin pada arduino mendukung PWM (pulse width modulation) yaitu pin
3,5,6,9,10,11, ini dapat merubah pin hidup (on) atau mati (off) dengan sangat
cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value
(nilai) pada format kode tersebut adalah angka antara 0 (0% duty cycle - 0V)
dan 255 (100% duty cycle - 5V).
b) analogRead (pin)
Pin analog ditetapkan sebagai input, maka dapat membaca keluaran
tegangannya, keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024
(untuk 5 volts) [6].
BAB III
METODE PENELITIAN
3. Driver Motor
Driver motor L298N adalah komponen elektronik yang digunakan untuk
mengontrol kecepatan serta arah putaran motor DC. Satu buah L298N bisa
dipergunakan untuk mengontrol dua buah motor DC.
4. LCD 2x16
LCD yang digunakan berukuran 2x16 berfungsi sebagai indikator
menampilkan set point yang diatur oleh potensiometer. Spesifikasi ditunjukkan
pada Tabel 3.4
3.3.1 Wiring motor DC to driver motor L298N
Perancanggan motor DC yang digunakan adalah blushehs motor DC sebagai
akuator, skematik ditunjukkan pada Gambar 3.5.
Keterangan :
Merah : positif
Hitam : negatif
3.3.2 Wiring driver motor L298N to Arduino
Perancangan driver motor yang digunakan adalah L298N yang berfungsi untuk
menggerakan motor DC, skematik ditunjukkan pada Gambar 3.6.
Keterangan :
Hijau : VCC
Biru : GND
Hitam : ENA
Abu : IN1
Oren : IN2
3.3.3 Wiring LCD i2c to Arduino
Perancangan LCD i2c yang digunakan adalah 16x2 yang berfungsi sebagai
indikator tampilan dari setpoint skematik ditunjukkan pada Gambar 3.7.
Keterangan :
Kuning : enable
Oren : read
Merah : VCC
Hitam : GND
3.3.4 Wiring rangkaian keseluruhan
Perancangan keseluruhan, menggabungkan antara perancangan arduino, motor
dc, driver motor L298n, dan LCD i2c . Skematik keseluruhan ditunjukkan pada
Gambar 3.8.
3.4 Perancangan Software
Perancangan perangkat lunak digunakan untuk mengintegrasikan seluruh
perangkat keras dan menjadi pusat kendali dari alat. Mikrokontroler perlu di
program terlebih dahulu agar dapat bekerja sesuai dengan kebutuhan. Program
yang dibuat bertujuan mempermudah pengguna dalam menggunakan alat.
Perangkat lunak dirancang menggunakan software Arduino IDE.
Aplikasi yang dibutuhkan adalah aplikasi Arduino IDE Integrated Development
Environtment) karena aplikasi ini mudah dalam membuat fungsi-fungsi logika
dasar dan mudah di mengerti karena menggunakan Bahasa C, selain software
Arduino IDE untuk memasukkan program ke dalam Arduino, dibutuhkan driver
USB, dan Arduino board nya sendiri agar program yang telah dibuat dapat
Berjalan.
1. Buka software Arduino IDE
2. Inisialisasi Program
Untuk melakukan pemrograman langkah pertama adalah memasukan perintah
yang akan dieksekusi oleh Arduino.