## RANCANG BANGUN CNC (COMPUTER NUMERICAL CONTROL) UNTUK PEMBUATAN PCB BERBASIS ARDUINO
Oleh : Supriyati 1 , Tulus Pramuji 2 , Imam saputro 3 , Laily Retno Hidayati 4 1,2,3,4 Jurusan Teknik Elektro Politeknik Negeri Semarang Jl. Prof Sudarto, S.H., Tembalang, Semarang, Jawa Tengah, Indonesia, 50275 Email : supriyati.polines@gmail.com 1

## Abstrak
Rancang  Bangun  Mesin  CNC  (Computer  Numerical  Control)  Untuk  Pembuatan  PCB  Berbasis  Arduino merupakan dibuat dengan tujuan untuk mencetak PCB dengan proses pengerjaan cukup efisien dan dapat mengurangi  penggunaan  bahan  kimia  untuk  mencetak  PCB.  Alat  ini  dirancang  menggunakan  sebuah sistem yang diproses melalui  Arduino Uno dan menggunakan software flatcame dan juga candle sebagai user  interface.  Software  tersebut  berfungsi  untuk  mengubah  file  dengan  format  gerber  dari  software proteus menjadi file G-Code agar bisa dibaca oleh pemrosesnya. Pengujian dilakukan untuk  mengetahui ketepatan  gerak  dari  mesin  CNC.  Berdasarkan  hasil  pengujian  yang  diterima,  software  dapat mengirimkan  file  G-Code  dengan  baik.  Ketepatan  gerak  dengan  tingkat  kesalahan  rata-rata  sebesar 0,86% pada sumbu X, sebesar 0,95% pada sumbu Y, dan 1,3% untuk sumbu Z.
Kata kunci : CNC, PCB, Arduino Uno, Grbl,  proteus, flatcam, candle

## Abstract
Design and Build a CNC (Computer Numerical Control) Machine for Arduino-Based PCB Manufacturing is made with the aim of printing PCBs with a fairly efficient process and can reduce the use of chemicals to  print  PCBs.  This  tool  is  designed  using  a  system  that  is  processed  through  Arduino  Uno  and  uses flatcam and candle software as the user interface. The software functions to convert files with the gerber format  from  proteus  software  into  G-Code  files  so  that  they  can  be  read  by  the  processor.  Tests  are carried  out  to  determine  the  accuracy  of  the  motion  of  the  CNC  machine.  Based  on  the  test  results received, the software can send the G-Code file properly. Motion accuracy with an average error rate of 0.86% on the X-axis, 0.95% on the Y-axis, and 1.3% for the Z-axis.
Keywords : CNC, PCB, Arduino Uno, Grbl, proteus, flatcam, and candle.

## 1. Pendahuluan
Pada  zaman  modern,  banyak  alat menggunakan  perangkat  elektronika  agar dapat bekerja otomatis. Hal yang  mendasar dalam  rangkaian  elektronika  adalah  PCB ( Printed Circuit Board ). PCB adalah sebuah papan yang dapat digunakan untuk membuat  sebuah  sirkuit  elektronik  dari logam yang  nantinya  akan menghubungkan komponen  elektronika  yang  berbeda  jenis maupun  yang  sejenis  tanpa  menggunakan kabel sebagai perantara aliran listrik. Papan tercetak  ini sudah  diproduksi secara   masal dengan   cara   pencetakan   untuk keperluan elektronika  dan  yang  ada  hubungannya dengan kelistrikan. PCB sebelum digunakan melalui  proses  pencetakan  jalur  sesuai dengan rangkaian yang diinginkan, kemudian  dilakukan  proses  pelarutan,  dan
dilanjutkan proses pelobangan untuk tempat komponen.
Selama  ini  mencetak  PCB  dirasa kurang  efisien  dikarenakan  waktu  yang dibutuhkan  lama.  Mahasiswa  mengalami kendala  dalam  pembuatan  layout  PCB biasanya  setelah mendesain layout dengan menggunakan aplikasi Eagle atau Proteus dilanjutkan proses penyablonan, yang dicetak pada  kertas stiker  atau  foto terlebih dahulu, dan sulitnya menghilangkan tembaga  dengan ferrychloride (FeCl3)  dan hal  tersebut juga kurang  ramah lingkungan, kendala    saat    melakukan  pengeboran  PCB juga  membutuhkan waktu  yang cukup lama apalagi  dalam  suatu  jalur  kaki  untuk masing-masing  komponen cukup banyak.
Oleh  sebab  itu  dibuatlah  alat  untuk mencetak PCB dengan menggunakan mesin CNC  (Computer  Numerical  Control)  yang dampaknya  dapat  membuat  lebih  efisien dalam pengerjaannya, dimana dapat menghemat  dari  segi    waktu    dan kemudahan  dalam  mencetak PCB tersebut. Dikatakan  sebagai  CNC  karena  proses penggerakan  dari  mesin  perkakas  tersebut sepenuhnya digerakkan menggunakan komputer.  Sebelum  dapat  diproses  oleh CNC, komputer membutuhkan G-code agar hardware pada  CNC  dapat  mengenali perintah  yang  diberikan  oleh  komputer melalui  kode  tersebut.  Pemilihan  mesin CNC  ini dikarenakan oleh kemampuan dari sebuah  mesin  CNC  untuk  melakukan gerakan  posisi  koordinat  mesin point  to point yang  membuat  mesin  CNC  ini  dapat bergerak  dengan  leluasa  dan  hampir  tidak terbatas step-nya  (Valentino & Goldenberg, 1993)  Mesin    CNC    pada    titik    end    point nya menggunakan end mill yang merupakan sebuah  mata  bor  yang  diputar  dengan kecepatan  sangat  tinggi  sehingga  mesin CNC  dapat  membentuk  suatu  benda  utuh atau  bahan  mentah  menjadi  objek  atau produk yang diinginkan.
Alat  ini  menggunakan  Arduino  Uno sebagai mikrokontrolernya. Arduino merupakan open platform yang
menggunakan
C sebagai bahasa pemrogramannya. Selain itu Arduino memiliki  banyak open  source dan library yang  dapat  dimanfaatkan  untuk  membantu dalam membuat programnya.

## 2. Tinjauan Pustaka
Penjelasan  dan  uraian  teori  penunjang yang  digunakan  dalam  membuat  alat  ini diperlukan untuk mempermudah
pemahaman  tentang  cara  kerja  rangkaian maupun
dasar-dasar
perencanaan pembuatan alat. Pengertian Computer
Numerical Control (CNC),  atau  Kontrol  numerik  atau pengaturan  numerik  ( numerical  control NC)  adalah  istilah  yang  digunakan  untuk menjelaskan  kontrol  gerakan  mesin  dan berbagai  fungsi  lainnya    menggunakan
instruksi  yang  dinyatakan  dalam  satu  seri bilangan  dan  dikendalikan  oleh  sistem kontrol  elektronika.  Istilah Computerized Numerical .
Komponen  utama  yang  digunakan  dalam pembuatan alat, sebagai berikut :
1) Switch Switch  (saklar  tombol  tekan)  adalah perangkat yang berfungsi untuk menghubungkan atau memutuskan aliran arus  listrik  dengan  sistem  kerja    tekan unlock  (tidak    mengunci).    Sistem  kerja unlock  disini  berarti  saklar  akan  bekerja sebagai device penghubung atau pemutus aliran  arus  listrik  saat  tombol  ditekan, dan  saat  tombol  tidak  ditekan  (dilepas), maka  saklar  akan  kembali  pada  kondisi normal. Jenis switch ditunjukkan Gambar 1.

## Gambar 1. Macam-macam Switch
2) Limit Switch
Pengoperasian  mesin  secara  otomatis memerlukan  penggunaan  saklar  yang dapat  diaktifkan  oleh  gerakan  mesin. Limit switch digunakan untuk mengubah gerakan mekanis menjadi terhubung dan tidaknya  sinyal  listrik. Limit  switch (saklar pembatas) yang bisa dilihat pada Gambar  2  adalah  saklar  atau  perangkat elektromekanis  yang  mempunyai  tuas aktuator sebagai pengubah posisi kontak terminal  (dari Normally  Open NO  ke Close atau  sebaliknya  dari Normally Close /NC  ke open ).  Posisi  kontak  akan berubah  ketika  tuas  aktuator  tersebut terdorong  atau  tertekan  oleh  suatu objek.  Sama  halnya  dengan  saklar  pada umumnya, limit  switch juga    hanya mempunyai    dua    kondisi,  yaitu menghubungkan atau memutuskan
aliran  arus  listrik.  Dengan  kata  lain hanya  mempunyai  kondisi  ON  atau OFF.
Gambar 2.Limit switch dan simbol
3) Arduino Uno Arduino  adalah  papan  pengembangan berbasis  mikrokontroler  ATMega  328P
-200PU.  Seperti  Gambar  3.  papan  ini memiliki 14 pin digital untuk berkomunikasi  (I/O  pins,  input/output) dengan 6 pin diantaranya dapat memodulasi keluaran PWM (Pulse With
Modulation,  mensimulasikan  keluaran analog),
6 masukan analog (didigitalisasi menggunakan ADC/
Analog  to  Digital  Converter  internal), osilator  berkecepatan  16  MHz,  sebuah konektor    USB,  colokan  catu  daya, ICSP header, dan tombol reset.

## Gambar 3. Arduino Uno
4) Motor Stepper Motor stepper  atau kadang disebut  motor step  pada  Gambar  4  merupakan  jenis motor  yang  menyerupai    motor    servo karena  posisi    rotor  bisa    ditentukan,
tetapi  menggunakan  pendekatan  yang berbeda . Motor stepper bergerak berdasarkan urutan pulsa yang diberikan. Maka untuk menggerakkan motor stepper diperlukan  pengendali motor stepper yang membangkitkan pulsa-pulsa periodik.
Gambar 4.  Motor Stepper
5) Driver Motor Stepper
Motor stepper bisa berputar dan berjalan dengan  baik  dan  teratur  tentunya  tidak lepas  dari  kendali  dari driver  motor A4988  seperti  di  Gambar  5.  Fungsi  dari driver  motor A4988  yakni  sebagai pengontrol motor  stepper .  IC  A4988 merupakan driver microstepping motor yang lengkap dengan built-in penerjemah untuk  mengarahkan  setiap      motor stepper.      Driver  motor  ini  dapat mengontrol  kerja  motor  stepper  hanya dengan 2  pin dari kontroler,  pin pertama untuk    mengontrol    arah    putaran,    pin kedua untuk mengontrol motor stepper.
Gambar 5. Driver motor A4988 Driver  A4988  memiliki  kapasitas  tegangan output  35V  dan  arus  sebesar  2A.  Dapat beroperasi  dengan  motor stepper  bipolar dengan step  mode full step, ½ step, ¼ step,
1/8 and 1/16 step.
RANCANG BANGUN ………………………… Supriyati 1 , Tulus Pramuji 2 , Imam 3 , Laily Retno 4

## 6) Motor DC
Motor  DC  merupakan  suatu  alat  yang mengubah  energi  listrik  searah  menjadi energi  mekanik  putaran.    Pada    motor DC    kumparan  medan  disebut  stator (bagian  yang  tidak  berputar)  dan kumparan jangkar  disebut rotor (bagian yang berputar).

## 3. Metode Penelitian
Metode  penelitian  berisi  mengenai urutan kerja yang dijelaskan berikut ini:
3.1. Desain Perancangan Sistem
Rancang    Bangun CNC  (Computer Numerical  Control) Untuk  Pembuatan PCB    berbasis  Arduino  terdiri  dari  tiga bagian  utama  yaitu  masukan,  proses menggunakan  Arduino,  dan  keluaran. Masukan berupa tombol darurat, abort hold and resume,  limit  switch pada sumbu x,y,z sebagai  batasan    jarak    maksimum  yang dapat    dicapai  oleh  mesin.  Selain  itu  juga program yang dikirim dari komputer/laptop.  Kemudian  pada  bagian keluaran ada  tiga  buah  motor stepper jenis Nema  17  yang  diatur  oleh driver motor stepper  A4988.  Diagram  blok  terlihat  di Gambar 6
Perencanaan diagram  blok  merupakan tahap  pertama  dalam  merancang  dan menyusun  rangkaian.  Penjelasan  mengenai keterangan    dan    fungsi  dari diagram blok rangkaian pada Gambar 6 sebagai berikut :
1) Tombol Abort untuk    menghentikan mesin pada saat berjalan dan memunculkan pemberitahuan alarm pada perangkat lunak.
2) Tombol Hold digunakan        untuk menahan  alat  pada  saat  proses  berjalan dan  memunculkan    pemberitahauan pada aplikasi yang digunakan.
3) Tombol Resume digunakan untuk melanjutkan  kinerja  alat  apabila sebelumnya ditekan tombol hold.
Gambar 6 Gambar Diagram Blok
4) Limit  Switch sebagai  penanda  batas maksimum  yang  dicapai  oleh  mesin. Sehingga  apabila limit  switch tertekan maka mesin akan berhenti.
5) Tombol  Emergecy atau  darurat  yaitu untuk menghentikan seluruh kerja  mesin tanpa  mengeluarkan  pemmberitahuan alarm pada perangkat lunak.
6) Arduino  Uno CNC    shield merupakan sebuah papan untuk membantu mempermudah pemasangan input,
output  dan driver serta  komponen lainnya.
7) Arduino  Uno  sebagai  pusat  pengolah data  dari  komputer  /  laptop  untuk mengatur masukan dan luaran dari alat.
8) Komputer/laptop sebagai perangkat untuk  memasukkan  file  gambar  yang akan didesain serta menjalankan aplikasi pembuatan.
9) Driver motor stepper sebagai penterjemah  perintah    dari    arduino    ke motor stepper  untuk  pengaturan tegangan dan arus.
10) Motor    DC  sebagai  penggerak Spindle dan  juga engraving saat pembuatan PCB.

## 3.2. Pembuatan Perangkat Keras
Pada  tahap  ini  pembuatan  rangka mesin  yang  terdiri  dari  rangka  mesin utama,  rangka  tambahan,  dan  alas.  Pada rangka  mesin  utama  terdiri  dari  rangka yang  menggerakkan  sumbu  x,  y,  dan  z. Pada  rangka  tambahan  merupakan  rangka untuk panel  elektronik  termasuk  catu daya switching dan rangka untuk penutup mesin, dan  pada  alas  terdapat  papan  akrilik sebagai alas kerja mesin CNC.
3.3. Perancangan Perangkat Lunak

## 3.3.1. Tahap  mengkompilasi  program untuk arduino
Program  yang  dibuat  dari  Grbl menggunakan kompilasi dari CV AVR dan Arduino.  Namun  program  yang  digunakan untuk proses upload menggunakan pemrograman Arduino IDE. Untuk mengupload  program  dari  komputer  atau laptop dapat menggunakan metode Arduino  IDE.  Metode  ini  mengkompilasi dari  kode  sumber  menjadi  kode  hex  dan secara otomatis mengunggahnya ke Arduino  file  .hex  tidak  bisa  langsung dikompile melalui Arduino IDE.

## 3.3.2. Desain Layout di Proteus
Membuat  Layout  PCB  harus  teliti dalam membuat jalur wire yang menghubungkan antar kaki komponen satu dengan  yang  lainnya.  Untuk  mengatasi  hal tersebut,  dalam  membuat  layout  PCB haruslah  dengan  cara  yang  benar  serta harus mengikuti jalur yang telah dibuat dan disesuaikan  dengan  skema  yang  telah dibuat.

## 3.3.3. File  Gerber Menjadi  G-Code
Menggunakan Flatcam
Flatcam adalah software yang digunakan  untuk  mengubah  berbagai desain  dan  menghasilkan  CNC  router Gdesain  PCB  flatcam  memanfaatkan  file gerber,  untuk  menghasilkan  G-code,  yang mana  G-code  akan  menggerakkan  mesin CNC.

## 3.3.4. Candle
Candle  merupakan  perangkat  lunak yang  digunakan  untuk  kontrol  mesin  CNC. Candle  juga  merupakan  aplikasi  pengontrol Grbl  yang  menggunakan  G-Code.  Dimana Grbl  sendiri  adalah  sebuah software untuk mengontrol  gerakan  CNC  yang  dapat diunggah  ke library arduino.  Pada  dasarnya Grbl  adalah  sebuah  hex  file  yang  dapat diunggah  ke  arduino  agar  arduino  dapat membaca perintah dalam G- Code.
3.3.5. Penyusunan Diagram Alir Diagram alir dibuat untuk
mempermudah pembuatan keseluruhan, maka  pertama  yang  dilakukan  adalah membuat diagram alir. Dengan diagram alir, selain  mempermudah  pembuatan  program juga  dapat  digunakan  untuk  melacak kesalahan  proses pembuatan  program. Diagram alir dapat dilihat pada Gambar 7

## Gambar 7. Diagram Alir
4. Hasil dan pembahasan Pada bagian ini dilakukan perbandingan  terhadap  kepresisian    mesin yang    telah  dilakukan  pada  bagian sebelumnya.  Data  hasil  kesalahan  dari pembacaan  dan  pengukuran  pergerakan mesin ditunjukkan dalam Tabel 1.
Pada bagian ini dilakukan perbandingan  antara  desain  gambar  pada software dengan hasil fisik setelah dilakukan  proses engraving .  Data  hasil perbandingan ditunjukkan dalam Tabel 1.
Tabel  1.  Pengukuran  dan  Presentase Kesalahan
Gambar 8 Hasil Pengujian Sumbu X
Berdasarkan    hasil    cetak  pada Gambar 8, bahwa hasil engraving menggunakan  mata  router  berbentuk  pisau sebesar  100        yang  mempunyai  ujung sebessar  0,1  mm  dengan  kecepatan  motor DC  sebesar  6000  RPM  dan  resolusi  sumbu X  sebesar  375.000 step/mm . Hasilnya  bisa dilihat  di  Tabel  1,  sumbu  X  memiliki  rata- rata kesalahan sebesar 0,86%.

## Gambar 9 Hasil Pengujian Sumbu Y
Berdasarkan  hasil  cetak  pada  Gambar 9,  bahwa  hasil engraving menggunakan mata  router  berbentuk  pisau  sebesar  100 yang  mempunyai  ujung  sebesar  0,1  mm dengan  kecepatan  motor  DC  sebesar  6000 RPM dan resolusi sumbu Y sebesar 395.153 step/mm .  Hasilnya  bisa  dilihat  di  Tabel  1, sumbu  Y  memiliki  rata-rata  kesalahan sebesar 0,95%.
Gambar 10 Hasil Pengujian sumbu Z
Berdasarkan  Tabel  1  terlihat  jika sumbu  Z  memiliki  presentase  kesalahan yang lebih tinggi daripada  sumbu  X dan Y. Dikarenakan  pada  sumbu  Z  hasil  yang diukur  tidak  bisa  langsung  dilihat  dari gambar tetapi yang diukur  yaitu  pergerakan dari motor spindle yang bergerak naik turun seperti yang terlihat pada Gambar 10.
Gambar 11 Hasil engraving beda ketebalan jalur
Dari  Gambar  11  dari  urutan  kiri  ke kanan  yaitu  dengan  ketebalan  dari  T10 sampai  T70  yaitu  jalur  yang  semakin  ke kanan  semakin  besar  ,  terlihat    bahwa    alat mampu    mencetak  jalur  dengan  ketebalan T10  yang  kecil  tapi  dengan      syarat menggunakan  mata    router  sebesar  10 derajat,  karena  apabila menggunakan mata router  yang  lebih  besar  ditakutkan  jalurnya akan  terputus,  biasanya  yang        digunakan untuk  membuat  PCB  menggunakan  jalur dengan ketebalan T40 ataupun T50.
Berdasarkan  Gambar  12  dapat  dilihat bahwa  gambar  tersebut  merupakan  hasil akhir  dari  kerja  alat  ini.  Jalur  PCB  yang bisa dilihat dari gambar tersebut menggunakan  mata  router  sebesar  10 derajat, 0,01mm dengan menggunakan lebar jalur T50.

## DAFTAR PUSTAKA
Daryanto,  Drs.  2021. Teori  dan  Aplikasi Teknik Listrik. Yogyakarta  :  Gaya
Media Hal : 234-236 Gibss, David dan Thomas MCrandell.1993.
Dasar-Dasar    Teknik    dan  Pemrograman CNC. Bandung : PT. Remaja Rosdakarya.  Hal  :  Bab  1-1,  Bab  1-2,
Bab 1-3
Grbl.      2009.      Perangkat      Lunak      Grbl. Dari https://github.com/grbl/grbl Herman  L.  Stephen.  2007. Electric  Motor Control  9th  Edition  . USA  : Delmar Learning . Hal : 127-128
Kadir,  Abdul.  2018. Dasar  Pemrograman
Robot Menggunakan Arduino .
Yogyakarta : Andi. Hal : 70
Kadir,  Abdul.  2018. From  Zero  To  A Pro .  Yogyakarta  :  Andi.  Hal  :
2,3,178, 195
Linsley  Trevor.  2004. Instalasi  Listrik Dasar .  Jakarta  :  Erlangga.  Halaman
151 Morris, M. Noel. 1991. Control Engginering Fourth  Edition. Inggris  :
McGraw-  Hill  Book  Company  (UK) Limited. Hal : 147-149 Resford  B.  Kenneth  dan  Gluliani  R.
2002. Electrical  Control  for  Machine  sixth Edition. United  States  America  : Delmar Learning.