## RANCANG BANGUN UMPAN BALIK EKSTERNAL UNTUK KENDALI SUDUT MOTOR SERVO BERBASIS ARDUINO

## EXTERNAL FEEDBACK DESIGN TO CONTROL THE ANGULAR POSITION OF SERVO MOTOR BASED ON ARDUINO
Hendri Maja Saputra 1* , Totok Agung Pambudi 2 , Dalmasius Ganjar Subagjo 1
1 Pusat Penelitian Tenaga Listrik dan Mekatronik - LIPI, Kompleks LIPI Jl Sangkuriang, Gd 20, Lt 2, Bandung, Jawa Barat 40135, Indonesia
2 Program Studi Teknik Mekatronika, Politeknik Caltex Riau, Jl. Umban Sari (Patin), No. 1, Rumbai Pekanbaru – Riau 28265, Indonesia
* Email: hend018@lipi.go.id
Diterima: 8 Agustus 2016             Direvisi: 3 Oktober 2016 Disetujui: 25 Oktober 2016

## ABSTRAK
Rancang  bangun  umpan  balik  eksternal  untuk  kendali  posisi  sudut  AC  motor  servo  berbasis  Arduino menggunakan sensor rotary encoder telah dilakukan. Penelitian ini dilakukan untuk meminimalisir kesalahan posisi sudut absolut dari poros motor. Kendali posisi pada AC motor servo tipe MHMD022G1U diamati bersifat relatif, sehingga peluang terjadinya kesalahan penentuan posisi sudut sangat besar, terutama pada saat terjadi distorsi pulsa atau saat suplai daya hilang. Sensor rotary encoder tipe EP50S8-1024-2F-P-24 dikopel dengan poros motor untuk membaca  sudut  aktual  yang  kemudian  dijadikan  sebagai  umpan  balik  eksternal. Rotary  encoder yang menggambarkan  position  sudut  actual  dari  of  AC  servo  motor  menghasilkan  digital  code  10-bit  yang  kemudian dikonversi  menjadi  data  desimal  dengan rentang  0-1023 menggunakan  sebuah  mikrokontroler  Arduino  Nano  V3. Data umpan balik yang diterima oleh mikrokontroler Arduino digunakan untuk menyesuaikan posisi atau sudut dari putaran poros motor servo AC. Hasil penelitian menunjukkan bahwa  pada kendali sudut motor servo AC terdapat osilasi pada semua variasi frekuensi atau kecepatan yang diberikan dengan standar deviasi 1,62º pada 1 kHz, 1,92º pada 5 kHz, 2,29º pada 10 kHz, dan 19,01º pada 50 kHz. Walaupun demikian, nilai rata-rata posisi sudut putaran motor tetap dapat mengikuti referensi yang diberikan oleh potensiometer.
Keywords: motor servo AC, rotary encoder , arduino, kendali sudut

## ABSTRACT
The design of external feedback to control the angular position AC servo motor Arduino-based using rotary encoder sensor has been done. The objective of this research was to minimize the error of the absolute angle of the motor shaft. Position control in AC servo motors MHMD022G1U model was relative, so the chances of mistake in the angle position would be relative very large, especially at the times of pulse distortion or when the power supply has lost. Sensor rotary encoder EP50S8-1024-2F-P-24 type coupled to the motor shaft to read the actual angle was used  as  an  external  feedback.  A  rotary  encoder  which  describes  the  actual  angle  position  of the  AC  servo motor generated  digital  code  10-bit,  which was  then  converted  into  decimal  data  in  the  range  of  0-1023  using  a microcontroller Arduino  Nano  V3.  Feedback  data  received  by Arduino microcontroller was  used to  adjust  the position or angle of the shaft from AC servo motors. The results showed that the control angle AC servo motors on all  variations  of  a  frequency  or  speed  contained  oscillation,  where  the  standard  deviations  were  1.62º  at  1  kHz, 1.92º at 5 kHz, 2.29º at 10 kHz, and 19.01º at 50 kHz. However, the average value of the angular position of motor rotation could follow the reference given by the potentiometer.
Keywords: AC servo motor, rotary encoder, arduino, angle control

## PENDAHULUAN
Pada  saat  ini  teknologi  pengendalian  pada motor servo sudah banyak dimanfaatkan didalam dunia robotika maupun industri. Motor servo DC kecil  untuk  aplikasi  miniatur  robot  (contoh aplikasi  lihat  Lee  [1])  dengan  motor  servo  AC untuk  industri  (contoh  aplikasi  lihat  Ku  [2]) sangat  berbeda.  Pengaturan  sudut  motor  servo DC  kecil  umumnya  bersifat  absolut,  sedangkan pada  motor  servo  AC  bersifat  relatif.  Untuk menghindari  kesalahan  penentuan  posisi  sudut pada  motor  servo  AC  maka  harus  dipasangkan sensor eksternal sebagai tambahan.
Pada  penelitian  yang  dilakukan  oleh Saputra  [3],  motor  servo  DC  yang  kecil  dan umum  dipasaran diaplikasikan untuk alat pelatuk robot  bersenjata.  Motor  servo  tersebut  dapat secara  optimal  berfungsi  dengan  sangat  baik. Paul  and  Lasrado  [4]  menjelaskan  kendali  posisi sudut  yang  presisi  untuk  motor  servo  motor DC.  Mereka  menjelaskan  cara  baru  yaitu mengendalikan  motor  DC  berdasarkan  masukan dari sensor IR untuk umpan balik dengan hasil yg cukup baik.
Pada penelitian  Andani [5], sistem  kendali servo posisi dan kecepatan motor dibantu dengan programmable logic control (PLC). Pengontrolan dengan  PLC  dalam  menggerekkan  motor  servo juga  sudah  banyak  digunakan  dalam  bidang industri.  Namun  biaya  penggunaan  PLC  lebih besar  dibandingkan  mikrokontroller  Arduino, sehingga lebih hemat dalam biaya.
Penelitian  terkait  tentang  kendali  sudut motor servo  AC telah  dilakukan  oleh Syamsudin [6]  menggunakan  metode  pengaturan  volt/hertz. Sedangkan  penelitian  terkait  pengendalian  motor servo  DC  dua  arah  berbasis  mikrokontroller Atmega32 dan software LabVIEW telah dilakukan  oleh Talavaru  [7] .  Motor  servo  juga memerlukan sinyal PWM untuk dapat digerakkan, seperti yang dijelaskan oleh Pinckney [8].
Motor  servo  pada  dasarnya  telah  memiliki umpan  balik  internal  dan  yang  dibentuk  dengan beberapa metode. Pada penelitian Sadun [9], tiga metode  telah  diuji  coba  yaitu  menggunakan Arduino  Integrated  Drive  Electronics (IDE), Support  target  for  Simulink  (Support  Package ), dan Arduino Input/Output (IO) Package . Penelitian beliau membandingkan ketiga  metode
tersebut  dalam  menganalisa  kendali  posisi  motor DC umpan balik internal menggunakan Arduino.
Makalah  ini  membahas  tentang  rancang bangun  umpan  balik  eksternal  untuk  kendali sudut motor servo berbasis Arduino. Sensor sudut yang  digunakan  sebagai  penentu  sudut  dan umpan  balik  adalah  sensor rotary  encoder dengan tipe EP50S8-1024-2F-P-24 [10]. Mikrokontroller  Arduino  menerima  pembacaan umpan  balik  dari  sensor rotary  encoder , kemudian  motor  servo  akan  bergerak  hingga sesuai  dengan  referensi  yang  ditentukan.  Tujuan dilakukannya penelitian ini adalah untuk meminimalisir kesalahan posisi sudut absolut dari poros motor.

## BAHAN DAN METODE
Pada  penelitian  ini,  motor  servo  AC  yang digunakan adalah tipe MHMD022G1U [11] yang dikopel  dengan rotary  encoder absolut  model EP50S81024-2P-P24  [10].  Putaran  motor  servo AC akan  dikontrol  oleh  mikrokontroller  Arduino melalui port  digital pada  konektor  X4  yang terdapat  pada  servo  drive  AC    dengan  tipe MADHT1507.  Saat  motor  servo  AC  berputar maka rotary  encoder membaca  setiap  sudut putaran yang terjadi, dimana keluaran dari rotary encoder adalah  kode  biner  yang  dikirim  ke mikrokontroler  Arduino  untuk  diproses  dan menentukan  sudut  sesuai  dengan  nilai  referensi yang  diinginkan.  Nilai  referensi  merupakan keluaran dari potensio yang memiliki jangkauan  10  bit  (0–1023)  dan  diproses  ke mikrokontroller. Data dari mikrokontroler kemudian  ditampilkan  dan  disimpan  kedalam laptop (lihat Gambar 1).
Motor servo  AC yang  digunakan  memiliki beberapa mode pengaturan, antara lain: pengaturan posisi, pengaturan kecepatan, pengaturan  torsi,  dan full-closed .  Pada  penelitian ini  mode  tipe  pengaturan  yang  digunakan  adalah pengaturan  posisi,  dimana  kontrol  posisi  sudut dari  motor  berdasarkan  perintah  posisi  ( pulse train ) yang diberikan oleh host controller . Proses memasukan  pulsa  untuk  menggerakkan  motor atau  mengatur  posisi  sudut  menggunakan  tipe pulse  train  plus  sign .  Tipe  masukan  pulsa tersebut  sudah  ada  didalam  parameter  dari  servo drive (lihat pada Tabel 1, [11]).

## Gambar 1. Set-up Pengujian
Tabel 1. Format Masukan Pulsa Tipe masukan pulsa Fungsi sinyal Positif direction command Negative direction  command Pulse train plus Signal PULS SIGN
Pada  Tabel  1  dapat  dilihat  cara  kerja  dari tipe masukan pulse train plus signal . Pada sinyal PULS,  diberikan  PWM  untuk  memutar  motor servo  dan  kecepatan dari  motor servo tergantung dari  frekuensi.  Sedangkan  pada  sinyal  SIGN diberikan masukan digital HIGH atau LOW. Jika pada  sinyal  SIGN  diberikan  masukan  HIGH, maka  arah  putaran  dari  motor  servo  akan  CW, sedangkan jika masukan LOW maka arah putaran motor akan CCW. Seluruh perintah  ini diberikan oleh mikrokontroler Arduino.
Sensor rotary  encoder tipe  EP50S8-1024- 2F-P-24 diaktifkan dengan sumber tegangan 12 – 24 VDC, sehingga tegangan keluaran dari sensor tersebut sama dengan sumber tegangan. Mikrokontroler  yang  digunakan  adalah  Arduino nano  yang  memiliki  tegangan  I/O  maksimum  5 Volt  [12].  Oleh  karena  itu,  pada  sensor rotary encoder ditambahkan  sebuah  rangkaian  pembagi tegangan  untuk  merubah  tegangan  sumber  dari 24 V  menjadi 5 V agar dapat diproses. Skematik rangkaian disajikan pada Gambar 2.
Gambar 2. Rangkaian Pembagi Tegangan
Masukan  tegangan  pada  rangkaian  (Gambar 2)  tersebut  menggunakan  sumber  tegangan  12 VDC. R1 memiliki  nilai tahanan sebesar 4,7 k Ω, sedangkan  R2  sebesar  3,3  k Ω .  Keluaran  dari rangkaian  ini  diambil  antara  R1  dan  R2  yang akan menghasilkan nilai tegangan yang tergantung  dari  nilai  resistor  R1  dan  R2. Tegangan  yang  sesuai  dengan  masukan  Arduino diperoleh dengan menggunakan persamaan (1).
Vout= R1 R1+R2 ×Vin (1)
175 180 185 190 195 0 1 2 3 4 Su d u t (d er aj at ) Waktu (detik) Sudut  Pot Sudut RE

## HASIL DAN PEMBAHASAN
Pengambilan  data  dilakukan  pada  hasil sudut  aktual  yang  dibaca  oleh rotary  encoder (Sudut RE) berdasarkan nilai referensi sudut dari mikrokontroller  Arduino.  Nilai  referensi  berasal dari potensiometer (Sudut Pot) yang  dimasukkan ke  dalam  pin  ADC  10  bit  dengan  range 0 − 1023 , kemudian dari nilai tersebut dikonversikan menjadi nilai sudut 0° − 360° .
Pengujian  dilakukan  dua  tahap  yaitu:  (1) nilai  referensi  tetap  dengan  kecepatan  bervariasi
dan  (2)  nilai referensi berubah dengan  kecepatan tetap.  Dua  tahap  pengujian  tersebut  dilakukan untuk  melihat  secara  jelas  pengaruh  kecepatan terhadap osilasi dari sudut aktual motor servo.
Hasil  pengujian  tahap  pertama  nilai kecepatan diatur oleh frekuensi yang diberikan ke motor  servo,  dimana  frekuensi  yang  dipilih  pada pengujian  ini  adalah  1  kHz  (6  rpm),  5  kHz  (10 rpm),  10  kHz  (60  rpm),  dan  50  kHz  (300  rpm). Nilai  sudut  ditentuan  sebesar  182,8º.  Data pengujian untuk tahap pertama dapat dilihat pada Gambar 3.
` (a) (b) (c) (d)
Gambar 3. Respon Masukan (Sudut Pot) Terhadap Keluaran (Sudut RE) pada Frekuensi: (a) 1 kHz; (b) 5 kHz; (c) 10 kHz; dan (d) 50 kHz.
Hasil  percobaan  tahap  pertama,  terdapat osilasi  pada  semua  variasi  frekuensi  atau kecepatan  yang  diberikan  dengan  standar deviasi  yang  diperoleh  untuk  frekuensi  1  kHz adalah  1,62 o ,  5  kHz  adalah  1,92 o ,  10  kHz adalah  2,29 o ,  dan  50  kHz  adalah  19,01 o . Semakin  besar  kecepatan  atau  frekuensi  yang diberikan  oleh  mikrokontoller  adruino  maka semakin besar osilasi sudut dari rotary encoder yang didapat.
Pada  pengujian  tahap  dua,  kecepatan sudut  yang  diberikan  konstan  yaitu  sesuai dengan kecepatan 30 rpm dan frekuensi 5 KHz. Nilai sudut yang diberikan bervariasi di rentang 0° − 360°. Data hasil pengujian pada tahap dua dapat dilihat pada Gambar 4 yang menunjukkan bahwa respon dari keluaran sensor sudut rotary encoder lebih  lambat  daripada  masukan  sudut yang  diberikan  oleh  potentiometer  sebagai referensi.
175 180 185 190 195 0 1 2 3 4 5 Su d u t (d er aj at ) Waktu (detik) Sudut Pot Sudut RE 175 180 185 190 195 0 1 2 3 4 5 Su d u t (d er aj at ) Waktu (detik) Sudut Pot Sudut RE 170 190 210 230 0 1 2 3 4 Su d u t (d er aj at ) Waktu (detik) Sudut Pot Sudut RE
Gambar 4 . Respon keluaran (sudut RE) terhadap masukan (sudut Pot) pada frekuensi 5 kHz dengan sudut bervariasi.
Grafik  pada  Gambar  4  tidak  menunjukkan keakuratan  dari  pada  hasil  uji  coba,  tetapi menggambarkan waktu respon dari hasil keluaran motor  servo  setelah  mendapat  referensi  secara waktu  nyata.  Berdasarkan  gambar  tersebut  dapat dilihat  bahwa  respon  motor  lebih  lambat  dari masukan  yang  diberikan.  Bentuk  respon  motor terlihat  lebih  bagus,  meskipun  pada  sinyal masukan dari potensio terdapat banyak galat.

## KESIMPULAN
Pengujian  membuktikan  bahwa  motor dapat berputar sesuai dengan referensi sudut yang diberikan terutama pada saat referensi posisi dari potentiometer  digerakan  perlahan  walaupun terdapat  osilasi.  Standar  deviasi  osilasi  yang  di peroleh pada kendali sudut untuk frekuensi 1 kHz adalah 1,62 o , 5  kHz adalah 1,92 o , 10  kHz adalah 2,29 o ,  dan  50  kHz  adalah  19,01 o .  Penambahan sensor  eksternal  dapat  menjadikan  motor  servo lebih  terjaga  terhadap  kesalahan,  sehingga meminimalisir kesalahan posisi sudut absolut dari poros motor.

## UCAPAN TERIMAKASIH
Terima  kasih  kepada  Dr.  Eng.  Budi Prawara selaku Kepala Puslit Telimek - LIPI dan Prof.  Dr.  Eng.  Estiko  Rijanto  selaku  Kepala kelompok  penelitian  bidang  mekatronik  yang telah  memberikan  kesempatan  dan  mengizinkan untuk  menggunakan  fasilitas  yang  ada  sehingga penelitian ini dapat terlaksana.

## DAFTAR PUSTAKA
[1]   Lee, C. dan Yang, H. "A Context-Awareness System  that  Uses  a  Thermographic  Camera to  Monitor  Energy  Waste  in  Buildings," Energy  and  Buildings, vol.  135,  pp.  148- 155, January 2017.
[2]      Ku,  N.  Ha  S.  dan  Roh,  M.I.,  "Design  of Controller  for  Mobile  Robot  in  Welding Process of Shipbuilding Engineering," Journal  of  Computational  Design  and Engineering, vol.  1,  no.  4,  pp.  243-255, 2014.
[3]   Saputra  H.  M.  dan  dkk.,  “Analisis  Metode Pembangkitan  Sinyal  PWM  Motor  Servo pada  Sistem  Pemicu  Senjata  Softgun  M4A1 Otomatis,” dalam Seminar Nasional Rekayasa  Energi,  Mekatronik,  dan  Teknik Kendaraan, Bandung, 2013.
[4]   Paul H. dan Lasrado, S. "Precise Control of Angular  Position  of  Geared  DC  Motors  for Low Cost Applications," International Journal  of  Innovative  Research  in  Science, Engineering  and  Technology,  vol.  5,  no.  9, pp. 574-578, May 2016.
[5]   Andani,  C.  Y,  I.  Zakariah  dan  Husnah,  A. N.,  “Sistem  Kendali  Servo  Posisi  dan Kecepatan  Motor  dengan  Programmable Logic  Control  (PLC),”  Jurnal  Ilmiah Foristek, vol. 1, no. 102-112, 2011.
[6]    Syarkawi,  S.  Refdinal,  N.  dan  Saputra,  S., “Pengontrolan  (Posisi)  Motor  Servo  AC dengan  Metode  Pengaturan  "Volt/Hertz",” Teknika  Unand,  vol.  2,  no.  27,  pp.  52-61, 2007.
[7]   Talavaru, P. N aik , N.  dan Reddy,  V. K. K., “Microcontroller  Based  Closed  Loop  Speed and  Position  Control  of  DC  Motor,” International  Journal  of  Engineering  and Advanced  Technology  (IJEAT),  vol.  3,  no. 5, pp. 280-285, 2014.
[8]   Pinckyney,  N.  “Pulse-width  Modulation  for Microcontroller Servo Control,” IEEE Potentials,  vol.  25,  no.  1,  pp.  27-29, February 2006.
[9]    Sadun,  A.  S.  Jalani,  J.  dan  Sukor,  J.  A.,  "A Comparative  Study  on  the  Position  Control Method  of  DC  Servo  Motor  with  Position Feedback by using Arduino," in Proceedings of  Engineering  Technology  International Conference (ETIC 2015) , Bali, 2015.
0 50 100 150 200 250 300 350 0 1 2 3 4 5 Su d u t (d er aj at ) Waktu (detik) Sudut RE
Sudut Pot
[10] Autonics  Catalog_EP50S  Series,  Pages:
F48-F52 [Online].Available:
http://www.giden.ru/data/PDF/emkoderu/E P50S.pdf. [Diakses 08 August 2016].
[11] Panasonic Operating Instructions (Overall)_AC Servo Motor & Driver_MINAS A5 Series [Online]. Available:
https://industrial.panasonic.com/content/da ta/MT/PDF/Manual/en/acs/minas-a5-
2_manu_e.pdf. [Diakses 08 August 2016].
[12] Arduino  Nano  (V3.0)  User  Manual [Online].Available: http://www.mouser.com/pdfdocs/Gravitech _Arduino_Nano3_0.pdf. [Diakses 08 August 2016].