## ARTIKEL RISET

## Kajian Penggunaan Arduino dan Komputer sebagai Osiloskop
Eko Sulistya

## Ringkasan
Dewasa ini perkembangan teknologi elektronika, khususnya dalam bidang mikrokontroler sangatlah pesat, dengan dibuatnya satu modul elektonik yang dinamakan dengan Arduino. Di dalam Arduino tersedia berbagai fungsi, antara lain sebagai penerima sensor besaran fisis, sebagai ADC ( Analog to Digital Converter ), sebagai pembangkit sinyal digital, dan sebagainya. Dengan kemampuan Arduino yang bisa menerima tegangan analog, menjadikan suatu harapan bahwa Arduino dapat difungsikan sebagai osiloskop, dengan komputer (laptop) sebagai penampil sinyalnya. Pemanfaatan Arduino sebagai osiloskop telah dilakukan oleh beberapa orang, salah satu hasil yang paling memiliki kemiripan dengan osiloskop analog adalah yang dibuat oleh Rogerio Bego, menggunakan pemrograman Processing . Berdasarkan program osiloskop tersebut, dalam penelitian ini dilakukan modifikasi dan serangkaian pengujian apakah osiloskop-arduino dapat digunakan dalam praktikum fisika dasar. Pengujian yang dilakukan adalah dalam mengukur frekuensi dan tegangan sinyal analog dari frekuensi generator menggunakan osiloskop-arduino. Dari pengujian tersebut diperoleh kesimpulan bahwa osiloskop-arduino mampu menampilkan sinyal analog dengan baik dan responsif, namun masih belum akurat jika digunakan sebagai alat ukur sebagaimana osiloskop analog, sehingga masih memerlukan penyempurnaan program untuk bisa digunakan sebagai alat bantu praktikum fisika dasar.
Kata Kunci : Arduino; Osiloskop; Eksperimen Fisika Dasar

## Abstract
The development of electronics technology, especially in the field of microcontroller is very rapid with the creation of an electronic module called Arduino. In Arduino there are various functions, for example as the receiver of temperature sensor, light, sound, etc., as well as ADC (Analog to Digital Converter), and as a digital signal generator. With Arduino’s ability to accept analog voltages, it is possible that the Arduino can be used as an oscilloscope, with a computer (laptop) as its signal viewer. The use of Arduino as an oscilloscope has been done by several people, one of which is made by Rogerio Bego, using Processing programming. In this study, modifications were made to the oscilloscope program, and a series of tests were conducted to test whether the oscilloscopes could be used in the Basic Physics Experiment. The test is to measure the frequency and voltage of the analog signal from the generator frequency using the arduino oscilloscope. From these tests it is concluded that the oscilloscopes are capable of displaying analog signals fairly well and responsively, but they are still not accurate if they are used as measuring instruments such as analog oscilloscopes. Therefore it still requires the development of the program to be used as a tool for Basic Physics Experiments.
Keywords : Arduino; Oscilloscope; Basic Physics Experiments

## 1 Pendahuluan
Eksperimen Fisika di laboratorium menjadi sarana utama yang penting dalam proses pembelajaran fisika, dan harus masuk dalam kurikulum fisika, baik di
Correspondence: sulistya@ugm.ac.id Department of Physics, Universitas Gadjah Mada, Sekip Utara PO BOX BLS 21, 55281 Yogyakarta, Indonesia Full list of author information is available at the end of the article * Equal contributor
tingkat SMP, SMA, sampai pendidikan tinggi [1]. Demikian juga di Prodi Fisika Departemen Fisika FMIPA UGM, Praktikum Fisika Dasar masuk dalam kurikulum prodi S1 Fisika, yang penyelenggaraannya dilaksanakan di Laboratorium Fisika Dasar. Dalam pelaksanaannya, Praktikum Fisika Dasar mengikuti buku Panduan Praktikum Fisika Dasar, yang sudah mengalami beberapa kali revisi, namun isi (materi) tidak berubah [2]. Jadi praktis sejak mulai
dilaksanakannya Praktikum Fisika Dasar, set-up alat, prosedur, dan metode analisis datanya tidak mengalami perubahan.
Beberapa hambatan muncul dalam pelaksanaan praktikum, antara lain seperti alat yang rusak, data yang diperoleh tidak bagus (tidak sesuai dengan yang diharapkan), dan lain lain. Hambatan dan masalah-masalah tersebut diselesaikan dengan cara memperbaiki alat yang bisa diperbaiki, atau dengan membeli alat yang baru, sedangkan metode eksperimen dan analisis data tidak dipertimbangkan untuk diubah atau disesuaikan dengan perkembangan. Saat ini, dengan telah berkembangnya teknologi, khususnya dalam bidang sensor dan transducer, ditambah dengan teknologi mikrokontroler, maka terbuka peluang untuk menggabungkan praktikum fisika dengan teknologi [3][4]. Metode eksperimen yang sudah standar yang tertuang dalam judul-judul praktikum tidak harus diubah karena itu adalah metode standar yang berhubungan dengan didaktik fisika untuk pemahaman konsep-konsep fisika, namun yang dikembangkan adalah metode atau cara pengamatan data dan cara melakukan analisis datanya. Penggabungan antara eksperimen fisika dengan teknologi yang biasa dilakukan adalah dengan menggunakan mikrokontroler Atmega328P yang terpasang pada arduino board, yang secara singkat disebut Arduino [5][6][7].
Arduino berfungsi sebagai interface (antarmuka) antara besaran fisis yang diukur dengan komputer sebagai penampil dari hasil ukur. Agar arduino berjalan sesuai dengan yang diharapkan, misalnya membaca input analog, kemudian menampilkan keluarannya di layar komputer, maka kode-kode program harus dibuat dan diunggah ke chip mikrokrontroler yang terpasang di arduino board. Pemrograman dilakukan dengan menggunakan Arduino IDE (Integrated Development Environment). Terintegrasi maksudnya adalah semua proses tergabung menjadi satu GUI, mulai dari penulisan program, pengunggahan, dan menjalankan programnya, yang harus mengikuti aturan tertentu, sehingga memerlukan panduan agar arduino berfungsi seperti yang diharapkan. Sebagai contoh panduan aplikasi arduino terdapat dalam buku yang ditulis oleh [8].
Arduino memerlukan sensor sesuai dengan besaran fisis yang akan diukur. Untuk mengukur suhu digunakan sensor suhu (thermistor), untuk mengukur intensitas cahaya dengan sensor cahaya, dan lain sebagainya. Di dalam arduino terdapat ADC (Analog to DigitalConverter) yang memungkinkan menerima masukan berupa tegangan analog sehingga bisa dirangkai menjadi osiloskop digital. Beberapa situs
internet sudah membahas bagaimana membuat osiloskop dengan menggunakan arduino, namun belum diterapkan/diaplikasikan penggunaannya, khususnya dalam satu set eksperimen fisika.
Penerapan suatu alat yang dibuat untuk tujuan eksperimen adalah suatu langkah yang penting dan harus dilakukan karena berhubungan dengan pengukuran besaran fisika. Apakah hasil ukur tersebut adalah hasil yang dapat diakui (valid) bergantung kepada kalibrasi dari alat yang dibuat. Osiloskop digital yang telah dibuat dan ditunjukkan fungsinya di beberapa situs web masih dalam taraf demontrasi, menunjukkan sinyal yang dapat tampil di layar komputer. Agar dapat digunakan sebagai alat ukut, maka osiloskop digital tersebut harus dikalibrasi lebih dahulu. Di dalam penelitian ini, selain membuat osiloskop digital yang dapat menampilkan sinyal, juga dilakukan kalibrasi, yang kemudian diaplikasikan dalam eksperimen fisika dasar sebagai alat ukur.
Jadi masalah yang dihadapi adalah bagaimana cara agar praktikum fisika dasar menjadi kegiatan yang menarik, menjadi suatu sarana untuk melatih kemampuan melakukan penelitian (riset), yang akan berguna bagi mahasiswa, baik dalam menyelesaikan studinya, maupun dalam pengembangan karirnya nanti setelah selesai menempuh pendidikan fisikanya.
Langkah yang akan dilakukan bukanlah mengganti set-set praktikum yang sudah ada, namun menambahkan metode atau cara mengamati dan menganalisis data yang dihasilkan, khususnya pada eksperimen-eksperimen yang sulit dalam pengamatannya. Sebagai contoh dalam pengamatan besaran yang sangat kecil dengan menggunakan mikrometer mikroskop, misalnya diameter pipa kapiler, pola-pola cincin Newton, serta membaca termometer, mendengarkan resonansi pada pipa organa, dan lain sebagainya. Pengamatan-pengamatan yang sulit semacam itu dapat dibantu dengan cara menggunakan sensor dan transduser.
Hambatan yang lain adalah dalam eksperimen yang mempergunakan osiloskop. Osiloskop yang ada berupa osiloskop analog (bukan storage) sehingga hasil tampilan layarnya tidak dapat disimpan untuk analisis lebih lanjut. Pada eksperimen berjudul induksi diri, pola tampilan osiloskop bisa berubah antara satu asisten dengan asisten yang lain walaupun komponen yang diamati sama. Hal ini bisa menyebabkan tidak tercapainya pemahaman konsep dasar yang dituju dalam praktikum induksi diri. Dengan menggunakan osiloskop digital storage, maka hasil tampilan layar dapat disimpan sebagai pembanding bagi pengguna (eksperimen) berikutnya. Masalahnya adalah, harga osiloskop digital storage cukup mahal, sedangkan yang diperlukan adalah beberapa set praktikum.

## 2 Metode Penelitian

## Arduino Uno
Gambar 1 menampilkan Arduino Uno board yang digunakan sebagai komponen pembuatan osiloskop digital. Arduino Uno adalah mikroprosesor berbasis

## Gambar 1 Arduino Uno board
Atmega328P. Memiliki 6 input analog (A0 sampai A5), dan 14 input/output digital, dari pin-0 sampai pin-13. Pin-pin 3, 5, 6, 9, 10 dan 11 dapat digunakan untuk keluaran PWM (Pulse Width Modulation). Pin-9 dan 10 digunakan untuk generator sinyal menggunakan PWM yang dimasukkan ke input analog A0 dan A1. Pada umumnya osiloskop yang digunakan dalam praktikum fisika dasar mempuyai 2 kanal masukan, yaitu CH-1 dan CH-2. Pada penelitian ini digunakan 4 kanal, yaitu: A0 sebagai CH-0; A1 sebagai CH-1; A2 sebagai CH-2 dan A2 sebagai CH-3. Tegangan kerja Arduino Uno adalah 5 volt, yang bisa disuplai dari port USB komputer, atau laptop. Masukan berupa tegangan analog maksimum adalah 5 volt.

## Arduino IDE (Integrated Development Environtmet)
Mikrokontroler Atmega328P dalam Arduino Uno bekerja sesuai dengan kode perintah yang diunggah. Kode-kode tersebut ditulis dalam Arduino-IDE, yang disebut (dinamakan) dengan skecth . Kode yang diperlukan untuk osiloskop menggunakan library TimerOne. Tampilan IDE yang berisi kode oscilloscope-arduino ditunjukkan pada Gambar 2. Selanjutnya sketch oscilloscope-arduino diupload ke arduino. Kode yang diunggah ke arduino menunggu perintah selanjutnya yang dikirimkan oleh program Processing.

## Program Processing
Processing adalah bahasa pemrograman open-source dengan dialek Java, oleh karena itu dalam komputer juga sudah harus terinstal JRE, Java Runtime Environtment. Program Processing berlandaskan pada penulisan kode seperti Arduino, yaitu mulai
Gambar 2 Arduino IDE
dari kode-kode kecil terpisah yang selanjutnya dikembangkan sebagai satu program yang besar, sehingga menggunakan istilah yang sama dengan arduino, yaitu sketch. Program utama dituliskan dalam satu tab pada Processing IDE, sedangkan class-class yang diperlukan dituliskan pada tab-tab tersendiri.
Gambar 3 menampilkan sketch program processing yang ditulis oleh Rogerio Bego[9] (http://labdegaragem.com/) untuk osiloskop-arduino dengan 4 kanal yang juga open-source, bebas digunakan oleh siapa saja. Program inilah yang mengirimkan perintah ke arduino, kemudian membaca apa yang dikirimkan oleh arduino, dan menggambarkannya sebagai sinyal tegangan.

## 3 HASIL DAN PEMBAHASAN

## Tampilan osiloskop-arduino
Tampilan awal osiloskop ditunjukkan pada Gambar 4. Pada bagian atas tengah terdapat tombol untuk memilih port serial di mana arduino terhubung. Dengan mengklik “pilih.ser”, maka akan dicari port yang terhubung dengan arduino, kemudian nama port akan tertulis, misal: COM3. Di bawahnya ada tombol untuk memilih baud rate (kecepatan transfer data, dalam bps – bit per second). Tiga kecepatan baud rate yang bisa dipilih adalah 9600, 115200, dan 250000. Di sebelah pilihan baud rate ada tombol on-off. Untuk mulai membaca data dari arduino, tombol off diklik. Ini bisa menjadi on jika arduino sudah terhubung ke komputer. Keterangan fungsi-fungsi tombol bagian kanan atas ditunjukkan pada Gambar 5.
Gambar 4 Tampilan Osiloskop-Arduino
Tombol Trigger digunakan untuk menstabilkan gambar sinyal. Kelompok tombol-tombol dalam Ch-0 sama dengan untuk kanal-kanal yang lain, yaitu Ch-1, Ch-2 dan Ch-3 (seperti ditunjukkan pada Gambar 4). Keterangan tombol-tombol pada bagian bawah ditunjukkan pada Gambar 6.

## Pengujian dengan sinyal PWM
Untuk menguji pembacaan analog, pada pin output digital 9 dan 10 dibangkitkan sinyal gelombang kotak dengan frekuensi 50 Hz, yang dihubungkan ke input analog A2, dan A3, (yaitu CH-2 dan CH-3). Hasilnya ditampilkan pada Gambar 7. Pengujian ini bisa
Gambar 5 Keterangan fungsi tombol bagian kanan
Gambar 6 Keterangan fungsi tombol bagian bawah
dijalankan jika Arduino sudah tersambung ke laptop. Kanal CH-0 dan CH-1 dimatikan. Terlihat pada Gambar 7 bagian atas, bahwa Arduino dihubungkan ke port serial COM3. Pilihan baud rate adalah 115200 bit-per-second, dan osiloskop dalam keadaan ON.
Pada CH-2 pilihan Ukur diaktifkan dan dengan mouse digambarkan daerah ukur, yang berupa persegi yang atas bawah dibatasi dengan tinggi sinyal untuk mengukur tegangannya, sedangkan kanan-kiri untuk mengukur frekuensinya. Nampak bahwa hasil pengukurannya adalah : tegangan 5,02 volt dan frekuensinya 50,0 Hz. Waktu satu gelombang (1 periode) juga dituliskan pada hasil ukur, yaitu 20,0 ms sesuai dengan yang tercantum pada bagian bawah (Sinyal gen). Pada bagian ini, frekuensi dapat diubah dengan cara menggeser slider, atau meng-klik mouse pada angka frekuensi.

## Pengujian dengan sinyal Frekuensi Generator
Pengujian berikutnya adalah dengan menggunakan frekuensi generator (FG). Sinyal dari FG dapat dipilih berupa gelombang sinusoidal atau gelombang kotak, yang frekuensinya dapat diatur. Tinggi gelombang, yaitu tegangan juga dapat diatur. Dengan osiloskop-arduino akan diukur tegangan dan frekuensi dari sinyal FG.
Gambar 7 Hasil penampilan sinyal PWM

## Pengujian pengukuran frekuensi
Sebelum
dilakukan
pembacaan dengan
osiloskop-arduino, tegangan FG diatur terlebih dahulu dan diukur dengan menggunakan multimeter. Tegangan keluaran FG ditetapkan pada 3 volt. Frekuensi diset pada 20 Hz. Kutub positif keluaran FG dimasukkan pada pin-A0 (CH-0), kutub ground dimasukkan pada GND, dan bentuk gelombang dipilih sinusoidal. Tampilan osiloskop-arduino ditunjukkan pada Gambar 8.
Terlihat pada Gambar 8 bahwa gelombang yang ditampilkan bukan sepenuhnya sinusoidal, tidak ada nilai negatifnya. Hal ini disebabkan karena arduino tidak bisa membaca nilai yang negatif. Yang bisa dibaca adalah tegangan 0V sampai 5V. Dari deteksi frekuensi, osiloskop-arduino membaca bahwa frekuensi sinyal yang dimasukkan adalah 22,7 Hz. Nilai ini berbeda dari setting frekuensi FG, yaitu 20 Hz, yang terbaca pada skala FG. Frekuensi yang terbaca pada FG ini dianggap sudah terkalibrasi. Grafik hubungan antara frekuensi FG dengan frekuensi terukur ditunjukkan pada Gambar 9.
Tampak bahwa pada awal (frekuensi rendah), frekuensi terukur terlalu tinggi, yang penyebabnya belum diketahui. Jika 2 nilai awal tidak diikutkan dalam regresi linear, diperoleh persamaan linear : y = 1 , 1 x + 1 , 5. Dari persamaan tersebut, dugaan awal adalah ada ralat sistematis sebesar 1,5; sedangkan prosentase error sebesar : 1 , 1 − 1 1 = 0 , 1 = 10%, dengan anggapan bahwa hasil pengukuran sama dengan
Gambar 8 Pengukuran frekuensi FG
setting frekuensi FG (gradien garis = 1) setelah ralat sistematis dihilangkan.

## Pengujian pengukuran tegangan
Gambar 10 menampilkan hasil pengukuran tegangan sinyal dari FG. Pada gambar tersebut terbaca tegangan sinyal adalah 4,00V, yang merupakan tinggi gelombang sinyal. Karena tampilan sinyal pada CH-0 osiloskop-arduino bukan gelombang sinusoidal sempurna (telah disebutkan di depan bahwa Arduino tidak bisa membaca tegangan negatif), maka tegangan puncak-ke-puncak tidak bisa ditentukan. Yang diketahui dengan pasti adalah, bahwa tegangan yang terbaca oleh multimeter adalah tegangan purata kuadrat (rms – root mean squared). Tegangan sinyal yang terukur oleh multimeter adalah sebesar 3V (ditentukan pada pengujian frekuensi). Jadi dapat dihitung tegangan puncaknya (tegangan maksimum):
V rms = V m √ 2 V m = √ 2 × V rms = √ 2 × 3 = 4 , 24V Tegangan maksimum menurut multimeter ternyata lebih tinggi daripada yang diperoleh dari pengukuran osiloskop-arduino. Jika bentuk gelombang sinyal FG diubah menjadi gelombang kotak, dengan setting tegangan dan frekuensi yang sama, terukur frekuensinya 23,3Hz dan tegangannya 2,04V. Frekuensinya lebih tinggi daripada gelombang sinusoidal, namun tegangannya lebih rendah, menjadi sekitar setengahnya. Penyebab adanya
Gambar 9 Grafik hubungan frekuensi FG dengan hasil ukur
Gambar 10 Pengukuran tegangan
perbedaan ini masih perlu diteliti lebih lanjut. Bila sumber sinyal yang diukur dapat dipastikan stabil, maka kemungkinan penyebabnya ada pada proses pembacaan data pada port serial, atau dapat juga pada kode programnya, khususnya pada bagian penggambaran sinyal.

## 4 KESIMPULAN DAN SARAN
Dari hasil dan pembahasan, dapat diambil beberapa kesimpulan, antara lain:
1 Osiloskop-arduino 4 kanal yang dibuat dapat menampilkan sinyal analog yang dimasukkan pada kanal input analog A0, A1, A2, dan A3.
2 Sinyal AC tidak bisa ditampilkan secara utuh karena Arduino tidak bisa membaca tegangan negatif.
3 Osiloskop-arduino yang dibuat belum bisa
digunakan untuk mengukur tegangan dan frekuensi AC secara akurat.
4 Osiloskop-arduino yang dibuat belum dapat diterapkan pada praktikum fisika dasar.
Supaya osiloskop-arduino dapat digunakan sebagai pendukung praktikum fisika dasar, perlu dilakukan penelitian lanjutan dengan beberapa saran sebagai berikut.
1 Ditambahkan rangkaian elektronik yang berfungsi untuk menambahkan tegangan DC di atas tegangan AC yang diukur (tegangan AC
ditumpangkan pada tegangan DC) sehingga tegangan negatif AC dapat terbaca oleh arduino.
2 Ditambahkan rangkaian elektronik pembagi tegangan sehingga tegangan AC yang lebih dari 5V dapat teramati.
3 Koreksi pada kode program (skecth) processing sehingga sinyal yang ditampilkan sesuai dengan sinyal yang di-input-kan.
Pustaka
1. Bostan, Carmen-Gabriela, Antohe, S.: Computer modeling in Physics’ experiments. In : The 5th International Conference on Virtual Learning ICVL
(2010)
2. Staf Laboratorium Fisika Dasar : Panduan Praktikum Fisika Dasa., LFD, Dep. Fisika, Fakultas
MIPA, UGM, Yogyakarta (2016) 3. Lustig, F., Schauer, F., & Oˇ zvoldov´ a, M. :
INTELLIGENT SCHOOL EXPERIMENTAL
SYSTEM (ISES) FOR COMPUTER BASED LABORATORIES IN PHYSICS. Charles University, Faculty of Mathematics and Physics, Department of Didactics of Physics, Prague, Czech Republic (2008) 4. Kocijancic, S., : Self Made Data Acquisition System Applied in Physics Lab. Department of Physics and Technology, Faculty of Education, University of Ljubljana, Kardeljeva pl. 16, SI-1000 Ljubljana, Slovenia. (2000)
5. Sonnenfeld, R. : Experiments with Electricity and Magnetism for Physics 336L. New Mexico Tech Socorr (2016)
6. Bouquet, F., and J. Bobroff, : Project-based physics labs using low-cost open-source hardware.
Laboratoire de Physique des Solides, CNRS, Univ. Paris-Sud, Universit´ e Paris-Saclay, 91405 Orsay Cedex, France (2016)
7. Petry, C. A., Pacheco, F. S., Lohmann, D.G., Correa, A., Moura, P. : Project teaching beyond Physics: Integrating Arduino to the laboratory. In : 2016 Technologies Applied to Electronics Teaching (TAEE), Seville, 2016, pp. 1-6. (2016)
8. Kurniawan, A. : Getting Started with Arduino and
Go, Copyright (2015) 9. Bego, R., (2017). www.instructables.com/id/Oscilloscope-Arduino-Processing/ ,web-page, access : July 16, 2017