## RANCANG BANGUN ALAT PENGUBAH RPM DARI PULSA ENCODER KE TEGANGAN
Oleh : Bambang Supriyo 1 , Sihono 2 , Kusno Utomo 3 , Bangun Krishna 4 , Achmad Fahrul Aji 5 12345 Jurusan Teknik Elektro, Politeknik Negeri Semarang Jl. Prof. Sudarto, Tembalang , Semarang, 50275 E-mail: bsupriyo0707@gmail.com

## Abstrak
Encoder  adalah  perangkat  elektronik  yang  digunakan  untuk  mendeteksi  jumlah  putaran  poros  encoder yang  direpresentasikan  dalam  bentuk  pulsa.  Setiap  encoder  memiliki  jumlah  pulsa  per  putaran  (PPR) tertentu sesuai spesifikasinya. Berdasarkan PPR ini, jumlah putaran poros dapat dihitung. Pada penelitian ini, Arduino Uno diprogram untuk mengubah jumlah pulsa yang dihasilkan encoder menjadi kecepatan putarannya (RPM). RPM yang diatur pada kisaran 0 – 5000 diubah menjadi tegangan sebesar 0 – 5 Volt. Karena Arduino Uno tidak memiliki pin output analog, maka proses konversi RPM ke tegangan dilakukan menggunakan modul Digital to Analog Converter (DAC) 12-bit MCP4725. Proses ini menghasilkan grafik RPM fungsi tegangan. Berdasarkan grafik ini persamaan matematis yang mewakili proses konversi dari tegangan ke RPM dapat ditentukan. Hasilnya menunjukkan bahwa rata-rata persentase error antara RPM nyata dari mikrokontroler dengan RPM dihitung dari persamaan grafik adalah sekitar 0.83 %
Kata Kunci: encoder, arduino, pulsa,  RPM, DAC.

## Abstract
An encoder is an electronic device used to detect the number of revolutions of its shaft which is represented in the form of pulses. Each encoder has a specific number of pulses per revolution (PPR). Based on this PPR,  the  number  of  revolutions  of  the  shaft  can  be  calculated.  In  this  research,  the  Arduino  Uno  is programmed to convert the number of pulses produced by the encoder into its rotational speed (RPM). The RPM, which is set within the range of 0 – 5000, is then converted into its respective voltage of 0 – 5 Volts. Since the Arduino Uno does not have an analog output pin, the process of converting from RPM to voltage is carried out using the 12-bit MCP4725 Digital to Analog Converter (DAC) module. This process results in a graph of RPM as a function of voltage. Based on this graph the mathematical equation representing the conversion from voltage to RPM can be determined. The results show that the average percentage error between the real RPM obtained from the microcontroller and the calculated RPM from the graph equation is about 0.83 %.
Keywords: encoder, arduino, pulsa,  RPM, DAC.

## 1. Pendahuluan
Encoder  merupakan  piranti  elektronik yang  digunakan  untuk  mendeteksi  sudut putar  maupun  jumlah  putaran  poros  dari encoder yang  direpresentasikan  dalam bentuk  jumlah  pulsa.  Setiap  encoder mempunyai  karakteristik  jumlah  pulsa  per satu  putaran  poros,  yang  disebut  sebagai Pulse Per Revolution (PPR). Sensor encoder sangat  diperlukan  di  dalam  aplikasi  sistem pengukuran  maupun  sistem  kendali  posisi rotasi  baik  di  industri  maupun  di  sistem
robotika.    Beberapa  contoh  dari  aplikasi encoder  adalah  sebagai  berikut:  Aplikasi kecepatan  putaran  pada  micromotor  (Pang, 2017),  dan  motor  DC  (Top  &  Gökbulut), aplikasi  deteksi  posisi  pada Switched Reluctance  Motor (Riyadi,  2018),  kendali posisi  sudut  poros  motor  (Lee  et  al,  2016; Rudnicki, 2019 ), navigasi pada Auto Guided Vehicle (Lee & Chia, 2017, odometry untuk penentuan posisi robot sepakbola (Taufiqqurohman,  2018),  pengukuran  sudut persendian  lengan  robot  (Oguntosin,  2019), kendali  posisi  pada  alat  ortosis  sendi-lutut
(Feng  et  al,  2021),  pengukuran  sudut  putar (Jia et al, 2019),  dan pemantauan kecepatan putar pada alat-alat latihan kebugaran untuk kesehatan (Zhao, 2017; Algburi, 2019).
Sensor  encoder  biasanya  mempunyai ukuran  fisik  yang  cukup  besar,  sehingga untuk aplikasi-aplikasi tertentu perlu dipertimbangkan ruang untuk posisi penempatannya. Sensor encoder mempunyai output berupa pulsa. Untuk memproses pulsa tersebut agar bisa digunakan untuk
mendeteksi  sudut  putaran  rotasi,  jumlah putaran  rotasi  maupun  kecepatan  putaran (RPM) maka
diperlukan adanya mikrokontroller  sebagai  pemroses.  Suatu sistem  akuisisi  data  umumnya  mempunyai pin  input  tegangan  analog  yang  digunakan untuk  pembacaan  tegangan  dari  sensor dengan  output  berupa  tegangan,  maka pembacaan encoder yang mempunyai output pulsa tidak bisa langsung digunakan.   Untuk mengatasi permasalahan ini, maka diperlukan  adanya  modul  atau  peralatan elektronika  yang  mampu  mengubah  pulsa encoder menjadi tegangan. Salah satu contoh aplikasi ini  adalah  pengubahan  nilai kecepatan  putaran  (RPM)  yang  diperoleh dari  encoder  ke  tegangan  output  yang proporsional dengan nilai RPM tersebut.
Pada penelitian ini, dengan menggunakan mikrokontroller Arduino pemroses  utamanya,  maka  pulsa  yang dihasilkan  oleh  encoder  dideteksi,  diproses dan  dihitung  nilai  RPM,  kemudian,  nilai RPM ini diubah ke dalam nilai tegangan yang proporsional  dengan  nilai  RPM  tersebut. Karena  mikrokontroller  Arduino  tidak mempunyai  output  tegangan  analog  murni, maka  pengubahan  ini  dilakukan  dengan menggunakan modul DAC 12 bit MCP4725. Tegangan  output  hasil  konversi  dari  modul DAC  ini  menghasilkan  tegangan  yang proporsional  dengan  nilai  RPM  yang dihasilkan  oleh  encoder.  Modul  konversi RPM  ke  tegangan  ini  sangat  bermanfaat untuk  digunakan  oleh sistem  akuisisi  data yang mempunyai input analog.
Penelitian  ini  akan  menghasilkan  data korelasi  antara  RPM  dan  tegangan  yang disajikan dalam bentuk  grafik RPM sebagai fungsi dari tegangan sensor (Vs). Berdasarkan grafik tersebut maka persamaan matematika untuk konversi dari tegangan ke RPM  dapat  ditentukan.  Selain  itu,  disajikan juga  nilai  persentase  kesalahan  ( %  Error ) dari  hasil  perbandingan  antara  nilai  RPM hasil dari pembacaan Mikrokontroller dengan  RPM  hasil  dari  konversi  tegangan output sensor.

## 2. Tinjauan Pustaka
2.1. Encoder Encoder merupakan
perangkat elektromekanis putar yang mengubah putaran  pada  porosnya  menjadi  serangkaian output pulsa. Bentuk fisik dari encoder dapat dilihat pada Gambar 1. Komponen- komponen  di  dalam  encoder,  dapat  dilihat pada gambar 2, secara umum terdiri dari LED sebagai  sumber  cahaya,  piringan  berlubang (Disk)  sebagai  pelalu  cahaya  LED,  foto sensor sebagai pendeteksi cahaya yang lewat celah  piringan  dan  rangkaian  pembentuk gelombang  kotak  atau  pulsa  sebagai  output dari  encoder.  LED  memancarkan  cahaya  ke piringan  berlubang,  dan  di  sebalik  piringan tersebut  terdapat  foto  sensor  yang  akan menerima  cahaya  dari  LED  yang  melewati celah  lubang  piringan.  Perubahan  dari kondisi  ada  cahaya  ke  kondisi  tidak  ada cahaya yang diseleksi oleh piringan berlubang  tersebut  akan  menyebabkan rangkaian pemroses fotosensor mengeluarkan pulsa.
Encoder umumnya memiliki dua sinyal keluaran  pada  kanal  A  dan  B,  yang mengeluarkan  sinyal  berupa  pulsa  apabila poros encoder tersebut diputar.  Ada kalanya encoder  juga  memiliki  satu  kanal  tambahan sebagai Indeks, yaitu kanal Z yang digunakan sebagai  referensi  saat  poros  encoder menunjuk  pada  posisi  tertentu,  contoh sebagai  referensi  posisi  awal  (titik  nol) sebelum  poros  bergerak. Keluaran  sinyal pulsa  pada  kanal  A  berbeda  fasa  90  derajat terhadap  pulsa  pada  kanal  B,  sedangkan
FOTO SENSOR RANGKAIAN PEMBENTUK PULSA Pulsa A Pulsa B Pulsa Z 360 90 Indeks Nol
kanal Z mengeluarkan hanya satu pulsa untuk setiap satu putaran. Gambar pulsa pada kanal A, B dan Z dapat dilihat pada gambar 3.
Gambar 1.  Bentuk fisik encoder
Gambar 2. Struktur sederhana encoder optik
Gambar 3. Output kanal A, B, Z

## 2.2. DAC MCP4725
MCP4725 merupakan perangkat elektronika pengubah sinyal digital ke analog (DAC)  12  bit  satu  kanal  output  jenis  I2C. Output  dari  MCP4725  ini  tergantung  pada tegangan catunya yaitu pada rentang 2.7 – 5.5 Volt.  Dengan  adanya  bus  I2C,    MCP4725 dapat digunakan dalam jumlah 8 buah secara bersamaan  dengan  pengesetan  alamat  yang berbeda.  IC  MCP4725  dapat  dilihat  pada
gambar  4.  Pin  I2C  terdiri  dari  input  clock (SCL) dan input data (SDA).  Catu daya pin Vcc  dan  GND,  sedangkan  pin  output tegangan adalah OUT dan GND.
Gambar 4. MCP4725

## 2.3. Arduino UNO
Board  mikrokontroller  Arduino  Uno memanfaatkan  IC  ATMega328  sebagai  unit pemroses utamanya. Board arduino ini dapat dilihat  pada  Gambar  5.  Mikrokontroller  ini mempunyai  total  input/output  pin  sejumlah 20  buah,  yang  terdiri  dari  6  buah  pin  input analog  dan  14  pin  input/output  digital, dimana  6  pin  output  digitalnya  mempunyai fungsi  alternatif  sebagai  output  analog berupa modulasi lebar pulsa (PWM). Dalam penelitian  ini,  Arduino  Uno  difungsikan sebagai  sistem  pemroses  utama  untuk membaca  pulsa  dari  output  encoder, menghitung  jumlah  pulsa  tersebut  dalam waktu  1  detik,  dan  menghitung  nilai RPMnya. Selanjutnya Arduino Uno mengendalikan  ADC  MCP4725,  untuk mengeluarkan  tegangan  DC  yang  nilainya proportional dengan nilai RPM tersebut.
Nilai  RPM  dari  Arduino  Uno  dapat dikirimkan  ke  komputer  melalui  serial  port USB. Beberapa aplikasi penggunaan Arduino  Uno  dan  encoder  adalah  untuk Kendali  PID  Kecepatan  motor  DC  dengan sensor  encoder  dan  Arduino  Uno  (Peerzada et  al,  2021;  Ma’arif  &Setiawan,  2021),  dan Pendeteksi posisi sudut dan kecepatan sesaat menggunakan  rotary  encoder  dan  Arduino Uno (Akbar et al, 2021).

## RANCANG BANGUN …………………………………………………………….. Bambang Supriyo

## Gambar 5. Arduino Uno

## 3. Metode Penelitian
Metodologi penelitian ini, seperti yang ditampilkan pada gambar 6, dapat diterangkan sebagai berikut:
(i) Tahap awal mengadakan kajian
literatur  yang  berhubungan  dengan aplikasi sensor encoder.
(ii) Desain mekanik, elektronik dan
program  pada  Arduino  Uno  untuk proses konversi dari RPM ke tegangan.
(iii) Pembuatan  prototipe  alat  peraga percobaan  untuk  menguji  kinerja sensor encoder sebagai sensor kecepatan putar pada poros encoder.
(iv) Pengujian  rangkaian  elektronika  yang terdiri  dari  sensor  encoder,  IC  DAC MCP4725 dan Arduino Uno.
(v) Pengujian prototip alat dengan memutar poros encoder dengan
kecepatan  tertentu  pada  rentang  0  – 4000 rpm dan mencatat hasil tegangan outputnya.
(vi) Pengumpulan  data  hasil  pegujian  dan menyajikannya  dalam  bentuk  grafik RPM  fungsi  tegangan  sensor  (Vs), RPM=f(Vs).
(vii) Analisa data hasil pengujian.
(viii) Kesimpulan.
Kajian Literatur Desain Mekanik, Elektronik, Program Prototipe Pengujian Elektronika Program Pengujian Alat Pengumpulan Data Analisa Data

## Gambar 6. Metode Penelitian

## 3.1. Diagram Blok
Pada  penelitian  ini  bersifat  rancang bangun,  maka  gambaran  sistemnya  dapat ditunjukkan pada Gambar 7.
TEGANGAN OUTPUT MCP4725 ENCODER
Gambar 7. Perangkat keras sistem pengubah RPM ke tegangan.
Fungsi masing-masing bagian sistem pengubah  RPM  ke  tegangan  adalah  sebagai berikut :

## a. Encoder
Encoder  digunakan  untuk  mendeteksi jumlah  putaran  dari  poros  encoder  yang direpresentasikan  dalam  bentuk  banyaknya pulsa yang sudah dikeluarkan oleh encoder.

## ORBITH VOL. 20 NO. 2 Juli 2024 : 127-133
b. Arduino
Mikrokontroller  Arduino  terhubung dengan  komputer  melalui  port  Serial  USB. Pemorgraman Arduino dilakukan di komputer  menggunakan  perangkat  lunak Arduino  IDE Editor. Arduino  dipakai  untuk medeteksi  pulsa  dari  encoder,  menghitung jumlah  pulsa  tersebut  dalam  waktu  1  detik, menghitung  jumlah  putaran  poros  encoder dalam  waktu  1  detik,  menghitung  jumlah putaran poros encoder dalam waktu 1 menit (RPM),  mengubah  nilai  RPM  ini  menjadi tegangan  yang  proporsional  dengan  RPM dan  mengeluarkannya  ke  output  analog  IC ADC MCP4725. Selain itu, Mikrokontroller Arduino  mengirim  data  informasi  tentang nilai RPM ke komputer.

## c. IC DAC MCP4725
IC DAC MCP4725 merupakan pengubah data digital ke analog (DAC) 12 bit dengan  satu  kanal  output  yang digunakan untuk  mengubah  data  RPM  dari  encoder  ke tegangan  DC  (0-5Volt)  yang  dikeluarkan pada  pin  keluaran  tegangan  analog.  IC  ini kendalikan  oleh  mikrokontroller  Arduino melalui komunikasi serial I2C.

## d. Komputer
Komputer  berfungsi  untuk  membuat program Arduino menggunakan IDE Arduino  Editor  dan  memuat  naik  program pengubah  RPM  ke  tegangan  ke  Arduino board melalui Port USB. Selain itu, komputer bisa digunakan untuk menerima, menyimpan dan  menampilkan  data  RPM  yang  dikirim dari Arduino.
Pada  penelitian  ini,  setelah  melalui tahapan rancangan secara blok diagram dari sistem yang akan dibuat, langkah berikutnya adalah  membuat  prototipe  alat  dan  program Arduino. Selanjutnya, prototip alat ini diuji di laboratorium Elektronika Kendali politeknik Negeri Semarang.

## 4. Hasil Dan Pembahasan
Pembacaan  pulsa  dari  encoder  yang memantau  kecepatan  putaran  pada  poros
encoder diproses oleh mikrokontroller untuk dijadikan  nilai  RPMnya.  Selanjutnya  nilai RPM ini diubah ke nilai desimal analog untuk input  DAC  agar  mengeluarkan  tegangan output secara proporsional. Hasil pengukuran konversi  dari  RPM  ke  tegangan  ini  dapat dilihat  pada  Gambar  8.    Hubungan  antara tegangan  output  dan  keceparan  putaran (RPM)  dapat  direpresentasikan  dengan persamaan linear:
y = 0.001 x – 0.004 ……………………. [1]
dimana y adalah tegangan output DAC dan x adalah keceparan putaran (RPM).
Untuk  melakukan  pengujian  hasil pembacaan kecepatan putaran, maka diperlukan  suatu  persamaan  korelasi  antara kecepatan putaran terhadap tegangan output seperti  terlihat  pada  Gambar  9.  Hubungan antara  keceparan  putaran  (RPM)  dan tegangan  output  dapat  direpresentasikan dengan persamaan linear:
y 1 = 819 x 1 …………………………….. [2]
dimana y 1 adalah keceparan putaran (RPM). dan x 1 adalah  tegangan  input.  Hasil pengujian menunjukkan bahwa nilai kesalahan  antara  hasil  pengukuran  dengan nilai  aktual  dapat  dilihat  pada  Gambar  10, dan mempunyai nilai rata-rata sebesar 0.83%
y = 0.001x - 0.004 0 1 2 3 4 5 6 0 1000 2000 3000 4000 V o (V ol t) Kecepatan (RPM)
Gambar 8. Tegangan output vs. kecepatan putaran
y = 819x 0 500 1000 1500 2000 2500 3000 3500 4000 4500 0 1 2 3 4 5 K e ce p a ta n ( R PM ) Vi (Volt) Gambar 9. kecepatan putaran vs tegangan output. 0 5 10 15 20 25 0 1000 2000 3000 4000 5000 % E rr o r

## Kecepatan (RPM)
Gambar 10. Error kecepatan putaran antara hasil konversi dengan aktualnya

## 5. Simpulan
Dari hasil penelitian didapatkan bahwa antara  hasil  pengukuran  kecepatan  putaran dengan  kecepatan  putaran  aktual  ada perbedaan dengan kesalahan rata-rata sebesar 0.83  %.  Nilai  kesalahan  ini  termasuk  kecil dan  hasilnya  dapat  diterima.  Penelitian lanjutan diperlukan dengan menggunakan IC DAC  dengan  bit  yang  lebih  besar  (12  bit) agar  hasil  pengukurannya  menjadi  lebih presisi lagi.

## DAFTAR PUSTAKA
Akbar,I.,  Ismail,  N.,  and  Rachmilda,  T.  D.
(2021)  ‘Rancang  Bangun  Pendeteksi Posisi  Sudut  dan  Kecepatan  Sesaat Dengan Menggunakan Rotary Encoder KY-040’, SENTER ,  pp.  287–293,  Jan. 2021.
Algburi, R.N.A., and Gao, H. (2019) ‘Health Assessment and Fault Detection System  for  an  Industrial  Robot  Using
the Rotary Encoder Signal’. Energies 2019 , 12 , 2816.
https://doi.org/10.3390/en12142816
Feng, T.; Chen, W.; Qiu, J.; Hao, S. (2021) ‘A New Kind of Absolute Magnetic Encoder’. Sensors 2021 , 21 , 3095.
https://doi.org/10.3390/ s21093095
Jia, H.-K., Yu, L.-D., Zhao, H.-N., Jiang, Y.-
Z.  A.  (2019)  ‘New  Method  of  Angle Measurement Error Analysis of Rotary Encoders’. Appl. Sci. 2019 , 9 , 3415.
https://doi.org/10.3390/app9163415
Lee, K., Choi, J., and Bang, Y. (2016) ‘Shaft position measurement using dual absolute encoders’. Sensors and Actuators A: Physical, 238, 276–
281. doi:10.1016/j.sna.2015.12.027 Lee, S. H., & Chia, K. S. (2017) ‘Navigating an  Auto  Guided  Vehicle  using  Rotary Encoders and Proportional
Controller’. International  Journal  of
Integrated Engineering , 9 (2). Retrieved from https://penerbit.uthm.edu.my/ojs/index .php/ijie/article/view/1690 Ma’arif, A., Rahmat Setiawan, N., and Suci Rahayu, E. (2021) ’Embedded Control System of DC Motor Using Microcontroller  Arduino  and  PID Algorithm’. IT  Journal  Research  and Development , 6 (1), 30 - 42. https://doi.org/10.25299/itjrd.2021.vol 6(1).6125
Oguntosin,  V.,  and  Akindele,  A.  (2019) ‘ Design  of  a  joint  angle  measurement system for the rotary joint of a robotic arm  using  an  Incremental Rotary Encoder’.
J. Phys.: Conf. Ser. 1299 012108 Pang,  Da-Chen,  and  Yi-Wei  Lai.  (2017)
‘Rapid  Prototyping  of  a  Micromotor with an Optical Rotary
Encoder’. Micromachines 8, no. 6: 174. https://doi.org/10.3390/mi8060174
Peerzada, P., Larik, W. H., and Mahar, A. A.
(2021)  ‘DC  Motor  Speed  Control
Through  Arduino  and  L298N  Motor Driver
Using PID
Controller’. International  Journal  of

## ORBITH VOL. 20 NO. 2 Juli 2024 : 127-133
Electrical Engineering &Amp; Emerging Technology , 4 (2), 21–24.
Retrieved from
http://www.ijeeet.com/index.php/ijeee
t/article/view/94
Riyadi,  S.(2018)  ‘Control  Strategy  for Switched  Reluctance  Motor  With Rotary  Encoder  Based  Rotor  Position Detection’. Advances in Electrical and Electronic Engineering , North America, 16, sep. 2018. Available at:
<http://advances.utc.sk/index.php/AE EE/article/view/2545>. Date accessed: 02 Mar. 2023. Rudnicki, Tomasz. (2019) ‘Measurement of the PMSM Shaft Position with An Absolute Encoder’. Electronics 8, no. 11: 1229. https://doi.org/10.3390/electronics811 1229 Taufiqqurohman, M., and Sari, N. F. (2018) ‘Odometry  Method  and  Rotary
Encoder for Wheeled Soccer
Robot’. IOP  Conf.  Ser.:  Mater.  Sci.
Eng. 407 012103 Top A, Gökbulut M. (2023) ‘A novel period– based  method  for  the  measurement direct  current  motor  velocity  using low-resolver encoder’. Transactions of the  Institute  of  Measurement  and Control . 2023;45(4):711-722. doi: 10.1177/01423312221122602
Zhao,  M.,    and  Lin,  J.(2018)  ‘Health
Assessment  of  Rotating  Machinery Using  a  Rotary  Encoder‘. IEEE
Transactions  on  Industrial  Electronics , vol.  65,  no.  3,  pp.  2548-2556,  March 2018, doi: 10.1109/TIE.2017.2739689.