TUTORIAL DASAR MEMBUAT PROJECT ARDUINO UNO

dokumen-dokumen yang mirip
BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. software arduino memiliki bahasa pemrograman C.

BAB II DASAR TEORI. mikrokontroler yang berbasis chip ATmega328P. Arduino Uno. memiliki 14 digital pin input / output (atau biasa ditulis I/O,

PENGENALAN ARDUINO. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.

BAB II ANALISIS DAN PERANCANGAN. Arduino adalah pengendali mikro single-board yang bersifat opensource,

PANDUAN PRAKTIKUM DASAR ARDUINO

Logika pemrograman sederhana

BAB IV HASIL DAN UJI COBA

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PERANCANGAN ALAT

BAB IV ANALISA DAN PENGUJIAN ALAT

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV ANALISIS DATA DAN PEMBAHASAN

BAB IV HASIL DAN UJI COBA

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PEMBUATAN SOFTWARE

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN. Gambar 4.1 Rangkaian Pengujian Arduino Uno.

BAB 3 PERANCANGAN SISTEM. Computer. Parallel Port ICSP. Microcontroller. Motor Driver Encoder. DC Motor. Gambar 3.1: Blok Diagram Perangkat Keras

BAB 3 PERANCANGAN SISTEM

Display LCD. Menggunakan Arduino Uno MinSys

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB III PERANCANGAN ALAT

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN

MODUL 2 Input Data dalam Arduino

BAB V PENGUJIAN DAN ANALISIS. dapat berjalan sesuai perancangan pada bab sebelumnya, selanjutnya akan dilakukan

BASIC MOBILE ROBOT ARDUINO Kelengkapan Nama Jumlah Unit 2 mm Akrilik Base Board 2 Pcs

MIKROKONTROLER SENSOR PENGUKUR SUHU PANAS DENGAN INDIKATOR LCD DI SUSUN OLEH :

Analog to Digital Convertion Menggunakan Arduino Uno Minsys

Komunikasi Serial. Menggunakan Arduino Uno MinSys

ARDUINO LCD. Bentuk LCD

Structure dasar dari bahasa pemrograman arduino adalah sederhana yang

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

Light Dependent Resistor LDR Menggunakan Arduino Uno Minsys

BAB II DASAR TEORI. Arduino adalah pengendali mikro single-board yang bersifat opensource,

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN. 4.1 Umum. Untuk dapat menentukan kualitas kerja suatu alat perlu dilakukan satu

BAB IV PENGUJIAN DAN ANALISA SISTEM

BAB III PERANCANGAN SISTEM

BAB II DASAR TEORI Arduino Mega 2560

BAB IV HASIL DAN UJI COBA

BAB III METODE PENELITIAN. Penelitian ini menggunakan metode eksperimen, yaitu membuktikan hasil

BAB 2 LANDASAN TEORI

BAB III PERANCANGAN. Sensor Ultrasonik. Microcontroller Arduino Uno. Buzzer LED LCD. Gambar 3.1 Blok Rangkaian

BAB II LANDASAN TEORI. berinteraksi dengan mudah dan interaksi dengan masyarakat umum juga menjadi

BAB IV PENGUJIAN DAN ANALISA ALAT

TOILET PINTAR ABSTRAK

BAB III PERANCANGAN ALAT

PEMBUATAN PROTOTIPE ALAT PENDETEKSI LEVEL AIR MENGGUNAKAN ARDUINO UNO R3

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB II LANDASAN TEORI

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

BAB 3 PERANCANGAN SISTEM

PRAKTIKUM 9 Penulisan dan Pembacaan ADC pada Mikrokontroler

MAKALAH. Timer atau Counter 0 dan 1. Oleh : Rizky Dwi N ( ) Satrio Teguh Yulianto ( ) D3 TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO

BAB IV PERANCANGAN. 4.1 Flowchart

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV HASIL DAN UJI COBA

4.2 Persiapan Perangkat Keras dan Perangkat Lunak

Belajar mikrokontroler Arduino untuk tingkat Pemula.

BAB III PERANCANGAN SISTEM

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERENCANAAN DAN REALISASI

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN PEMBAHASAN. ketepatan masing-masing bagian komponen dari rangkaian modul tugas akhir

BAB III TEORI PENUNJANG. Microcontroller adalah sebuah sistem fungsional dalam sebuah chip. Di

BAB III PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB III PERANCANGAN ALAT

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI. Arduino menurut situs resminya di didefinisikan sebagai

BAB III METODOLOGI PENELITIAN. Adapun untuk gambar dan penjelasan dari blok diagram dari alat dapat dilihat pada. Modul sensor.

BAB III ANALISIS DAN PERANCANGAN

IV. HASIL PENELITIAN DAN PEMBAHASAN. menggunakan sensor optik berbasis mikrokontroler ATMega 8535 dengan

What is it? 3 x 4 Keypad 4 x 4 Keypad

BAB II LANDASAN TEORI. Kehadiran peserta didik di sekolah (school attandence) adalah keikutsertaan

Apa itu timer/counter?

BAB III DESKRIPSI MASALAH

BAB IV PENGUJIAN DAN ANALISA ALAT. perancangan alat. Tujuan pengujian adalah untuk mengetahui kebenaran

3.2. Tempat Penelitian Penelitian dan pengujian alat dilakukan di lokasi permainan game PT. EMI (Elektronik Megaindo) Plaza Medan Fair.

Output LED. Menggunakan Arduino Uno MinSys

PANDUAN PRAKTIKUM DASAR ARDUINO

DT-AVR DT-AVR Application Note

BAB 3 PERANCANGAN SISTEM. pada sistem pengendali lampu telah dijelaskan pada bab 2. Pada bab ini akan dijelaskan

BAB IV PERANCANGAN ALAT

BAB III RANCANG BANGUN SISTEM KARAKTERISASI LED. Rancangan sistem karakterisasi LED diperlihatkan pada blok diagram Gambar

BAB IV HASIL DAN PEMBAHASAN

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM. patok, serta pemasangan sensor ultrasonik HC-SR04 yang akan ditempatkan pada

BAB II DASAR TEORI. tertarik dalam menciptakan objek atau lingkungan yang interaktif.

BAB II ANALISIS DAN PERANCANGAN

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi

BAB IV PEMBAHASAN. 27

BAB II TINJAUAN PUSTAKA. 2.1PHOTODIODA Dioda foto adalah jenis dioda yang berfungsi mendeteksi cahaya. Berbeda dengan

BAB IV PENGUJIAN ALAT DAN PEMBAHASAN

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. memudahkan penggunaan elektronik dalam berbagai

Transkripsi:

TUTORIAL DASAR MEMBUAT PROJECT ARDUINO UNO

Pendahuluan Arduino merupakan suatu perangkat yang dirancang dengan kemampuan komputasi yang dapat berinteraksi secara lebih dekat dengan dunia nyata dibandingkan komputer biasa. Satu hal yang perlu dicatat ialah Arduino bersifat open source, baik microcontroller board yang dapat dimodifikasi, begitu juga dengan development environment untuk menuliskan source code program yang disebut dengan istilah sketch. Sejarah Singkat Arduino bermula pada tahun 2005, sebagai sebuah project bagi para pelajar di Interaction Design Institute Ivrea di Ivrea, Italia. Pada saat itu para pelajar menggubakan BASIC Stamp yang cukup mahal bagi pelajar. Adalah Massimo Banzi, salah satu pendiri Arduino, yang sekaligus mengajar di Ivrea, mencoba menyelesaikan persoalan tersebut. Asal mula nama Arduino berasal dari nama sebuah bar yang ada di Ivrea, dimana para pendiri Arduino biasa berkumpul disana. Untuk hardware wiring awal dirancang oleh Hernando Barragan. Bersama dengan David Cuartielles, mulai memperkenalkan Arduino. Feature Kelebihan Arduino dapat digunakan untuk mengembangkan suatu sistem interaktif, yang menerima input dari bermacam switch atau sensor, dan mengendalikan bermacam hal semisal lampu, motor, dan output lainnya. Ada berbagai macam jenis microcontroller dan platform yang tersedia untuk keperluan komputasi fisik. Arduino dirancang secara sederhana dan mudah dipelajari, dikembangkan untuk keperluan project tugas sekolah, kuliah, ataupun tugas akhir. Adapun kelebihan yang coba ditawarkan Arduino antara lain. Relatif murah Bersifat cross-platform dapat dijalankan di berbagai operating system seperti Windows, Macintosh OSX, dan Linux Sederhana, dengan programming environment turunan dari bahasa pemrograman C yang mudah dimengerti Baik hardware maupun software bersifat open source Untuk dasar tutorial pemrograman Arduino berikut ini beberapa function yang biasa digunakan. setup() Digunakan untuk inisialisasi variable, pin mode, penggunaan library, dan lain sebagainya. Hanya dijalankan sekali, pada saat Arduino pertama kali dinyalakan, atau setelah reset. loop() Setelah function setup(), digunakan function loop() yang sesuai dengan namanya, untuk

menjalankan program utama dalam Arduino secara berulang terus-menerus, hingga Arduino dimatikan atau reset. pinmode() Digunakan untuk melakukan konfigurasi secara spesifik fungsi dari sebuah pin, apakah digunakan sebagai input atau sebagai output. Contoh penggunaan function pinmode() ialah sebagai berikut. pinmode(0, INPUT) konfigurasi pin 0 Arduino sebagai pin input pinmode(13, OUTPUT) konfigurasi pin 13 Arduino sebagai pin output digitalread() Digunakan untuk membaca nilai pin digital yang spesifik, apakah bernilai HIGH atau LOW. Contoh penggunaan function digitalread() ialah sebagai berikut. digitalread(0) membaca nilai digital dari pin 0 Arduino digitalwrite() Selain membaca nilai, ada juga function untuk menuliskan atau memberikan nilai pada suatu pin digital secara spesifik. Dengan function digitalwrite() memberikan nilai pin digital yang spesifik apakah bernilai HIGH atau LOW, dapat dilakukan. Contoh penggunaan function digitalwrite() ialah sebagai berikut. digitalwrite(13, HIGH) memberikan nilai digital HIGH pada pin 13 Arduino delay() Sesuai dengan namanya, function delay() digunakan untuk memberikan waktu tundaan (dalam satuan millisecond) untuk mengerjakan satu baris program ke baris selanjutnya. Contoh penggunaan function delay() ialah sebagai berikut. delay(1000) memberikan waktu tundaan 1000 millisecond, atau setara dengan 1 detik sebelum melanjutkan mengerjakan perintah baris program selanjutnya analogread() Selain membaca nilai digital, Arduino juga dapat digunakan untuk membaca nilai analog. Dengan menggunakan function analogread(), untuk membaca nilai analog melalui pin analog. Untuk board Arduino UNO memiliki 6 channel analog, Arduino Mini dan Nano 8 channel, sedangkan Arduino Mega 10 channel, dengan resolusi 10 bit analog to digital converter. Dengan resolusi 10 bit memungkinkan pemetaan tegangan antara 0 volt hingga 5 volt dalam nilai integer dari 0 hingga 1023. Sehingga resolusi pembacaan nilai analog ialah 5 volt dibagi 1024 unit, atau sekitar 4,9 mv per unit. Dibutuhkan sekitar 100 microsecond untuk membaca suatu input analog, dengan kata lain tingkat pembacaan maximum nilai analog ialah 10000 kali dalam satu detik.

analogreference(type) Digunakan untuk memberikan nilai tegangan referensi untuk input analog, dengan pilihan type yang ada antara lain. DEFAULT, nilai tegangan default untuk board Arduino ialah 5 volt atau 3,3 volt INTERNAL, sebuah referensi built-in, setara tegangan 1,1 volt pada ATmega168 atau ATMega 328, dan 2,56 volt untuk ATMega8 INTERNAL1V1, sebuah referensi built-in, tegangan 1,1 volt, untuk Arduino Mega INTERNAL2V56, sebuah referensi built-in, tegangan 2,56 volt, untuk Arduino Mega EXTERNAL, sebuah referensi referensi dari pin AREF, nilai tegangan berkisar anatar 0 volt hingga 5 volt Untuk informasi lebih lanjut silahkan kunjungi situs halaman Arduino. Arduino Operasi Bitwise Bahasa C yang digunakan pada Arduino, menjadikannya mudah untuk dipelajari oleh pelajar, mahasiswa, dari mulai untuk project sederhana hingga tugas akhir kuliah. Bahasa C menawarkan operasi manipulasi bit, yang mana pada Arduino bisa sangat berguna untuk mengubah suatu nilai bit dalam data yang berupa byte. Implementasi nyata pada Arduino ialah pada manipulasi nilai pin-pin Arduino berubah dari kondisi high menjadi low, atau sebaliknya. Dalam hal ini operasi manipulasi bit dimungkinkan dengan penerapan gerbang logika atau operasi fungsi logika yang disebut bitwise. Untuk operasi bitwise standard yang biasa digunakan ialah & (AND), (OR), << (Left Shift) menggeser nilai bit ke kiri, dan >> (Right Shift) menggeser nilai bit ke kanan. AND Fungsi operasi logika AND dari dua buah operand akan menghasilkan output dengan logika 1, high, hanya pada saat kedua bit pada tingkat yang sama juga bernilai logika 1, high. Selain itu akan menghasilkan output dengan logika 0, low. Berikut ini adalah contoh potongan sktech Arduino. byte operand1 = B00001111; byte operand2 = B01010101; byte result = operand1 & operand2;

Penjelasannya sebagai berikut. Nilai operand1 dengan tipe data byte ialah 00001111 Nilai operand2 dengan tipe data byte ialah 01010101 Nilai result dengan tipe data byte ialah hasil operasi AND byte dari operand1 dengan operand2 OR Fungsi operasi logika OR dari dua buah operand akan menghasilkan output dengan logika 1, high, hanya pada saat salah satu atau kedua bit pada tingkat yang sama bernilai logika 1, high. Selain bila kedua bit pada tingkat yang sama bernilai logika 0, low maka akan menghasilkan output dengan logika 0, low. Berikut ini adalah contoh potongan sktech Arduino. byte operand1 = B00001111; byte operand2 = B01010101; byte result = operand1 operand2; Penjelasannya sebagai berikut. Nilai operand1 dengan tipe data byte ialah 00001111 Nilai operand2 dengan tipe data byte ialah 01010101 Nilai result dengan tipe data byte ialah hasil operasi OR byte dari operand1 dengan operand2

<< Left Shift Fungsi dari bitwise << ialah menggeser nilai-nilai bit ke kiri. Menggeser nilai-nilai bit ke kiri, akan menghasilkan output yang bernilai dua kali lipat dari operand awalnya. Berikut ini adalah contoh potongan sktech Arduino. int i = 2; byte operand = B00001111; byte result = operand << i; Penjelasannya sebagai berikut. Nilai operand dengan tipe data byte ialah 00001111 Nilai result dengan tipe data byte ialah hasil pergeseran bit dari operand ke kiri sebanyak i, yakni 2 kali >> Right Shift Fungsi dari bitwise >> ialah menggeser nilai-nilai bit ke kanan. Menggeser nilai-nilai bit ke kanan, akan menghasilkan output yang bernilai separuh dari operand awalnya. Berikut ini adalah contoh potongan sktech Arduino. int i = 2; byte operand = B01100000; byte result = operand >> i; Penjelasannya sebagai berikut. Nilai operand dengan tipe data byte ialah 01100000 Nilai result dengan tipe data byte ialah hasil pergeseran bit dari operand ke kanan sebanyak i, yakni 2 kali Lihat juga mengenai implementasinya dalam program Arduino LED bitwise operation.

Arduino Serial Setiap board Arduino setidaknya telah memiliki satu buah serial port, yang memungkinkannya untuk melakukan proses pertukaran data dengan komputer atau perangkat lain melalui jalur komunikasi serial. Pada Arduino Uno, dengan menggunakan RX (pin 0) dan TX (pin 1) memungkinkan proses komunikasi serial tersebut. Oleh karena itu, pin 0 dan pin 1, yang sedang digunakan untuk proses pertukaran data komunikasi serial, tersebut tidak dapat digunakan sebagai pin input atau juga output. Arduino IDE sendiri telah mencakup feature serial monitor untuk berkomunikasi dengan board Arduino. Satu hal yang perlu dicatat ialah menyesuaikan baud rate antara Arduino dengan komputer, agar proses pertukaran data antara keduanya dapat berjalan dengan baik. Agar lebih jelas mengenai baud rate, berikut penjelasannya. Pada telekomunikasi dan elektronika, baud (dalam Bd) merupakan unit untuk merepresentasikan banyaknya modulasi atau pulse setiap satuan waktu. Dalam sistem digital, (yang menggunakan nilai discrete) dengan binary code, 1 Bd sama dengan 1 bit per second. Untuk nama unit baud ini sendiri, berasal dari Emile Baud, yang merupakan penemu dari Baudot code untuk telegrapy. Dalam proses pertukaran data antara microcontroller dengan komputer, biasa melalui komunikasi serial. Disini kaitannya dengan baud rate, seberapa cepat data dikirimkan melalui jalur komunikasi serial tersebut. Agar dua buah perangkat, microcontroller dengan komputer dapat bertukar data dengan baik, maka baud rate antara keduanya harus setara. Biasa baud rate yang digunakan ialah 9600 bits per second. Adapun baud rate lainnya bisa bernilai 1200, 2400, 4800, 19200, 38400, 57600, dan 115200. Setiap nilai baud rate tersebut memiliki ratio perbandingan kelipatan dari baud rate standard 9600 yang biasa digunakan. Semakin tinggi baud rate, maka semakin cepat data dikirimkan, demikian pula sebaliknya. Meski begitu tetap ada batasan nilai baud rate, bila melebihi nilai batasan tersebut maka akan terjadi error. Lihat juga mengenai interface komunikasi serial. Arduino LCD Salah satu jenis penampil yang sering digunakan ialah LCD (Liquid Crystal Display), yang memiliki banyak kelebihan dibandingkan seven segment display. Salah satu kelebihan LCD ialah menampilkan pesan text. Jenis LCD yang banyak digunakan untuk project microcontroller sederhana ialah LCD 16x2, 16 kolom dengan 2 baris. Untuk memulai belajar menggunakan penampil LCD, terlebih dahulu dilakukan pemetaan konfigurasi wiring diagram. Hal ini ditujukan agar pin yang digunakan pada source code dan wiring diagram sesuai. Berikut ini ialah wiring diagram yang digunakan antara Arduino dengan LCD pada uji coba awal.

Berdasarkan gambar wiring diagram tersebut. LCD RS pin dihubungkan ke digital pin 12 LCD Enable pin dihubungkan ke digital pin 11 LCD D4 pin dihubungkan ke digital pin 5 LCD D5 pin dihubungkan ke digital pin 4 LCD D6 pin dihubungkan ke digital pin 3 LCD D7 pin dihubungkan ke digital pin 2 Penggunaan potentiometer (variable resistor), ditujukan untuk mengatur tingkat gelap-terang tampilan LCD tersebut, berdasarkan fungsi pembagi tegangan. Berikut ini ialah source code (sketch) sederhana untuk menampilkan pesan text. /* Program LCD sederhana dengan mencakup library LCD Loki Lang */ #include <LiquidCrystal.h> LiquidCrystal lang(12, 11, 5, 4, 3, 2); void setup() { lang.begin(16, 2); } void loop() { lang.clear(); lang.setcursor(3, 1); lang.print("manchester"); lang.setcursor(5, 1); lang.print("united"); }

Dalam source code tersebut digunakan macro #include preprocessed directive yang memuat file header LiquidCrystal.h untuk library LCD, untuk penampil LCD. Proses inisialisasi pin Arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal lang(12, 11, 5, 4, 3, 2); dimana lang merupakan variable yang dipanggil setiap kali instruksi terkait LCD akan digunakan. Catatan, untuk nama variable lang dapat diubah dengan lcd atau nama lainnya, selama dalam pemanggilan namanya sesuai. begin() Untuk begin() digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran kolom dan baris LCD. Pemanggilan begin() harus dilakukan terlebih dahulu sebelum memanggil instruksi lain dalam library LCD. Untuk syntax penulisan instruksi begin() ialah sebagai berikut. lang.begin(cols, rows) Dengan lang ialah nama variable, cols jumlah kolom LCD, dan rows jumlah baris LCD. clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD. setcursor() Instruksi ini digunakan untuk memposisikan cursor awal pesan text di LCD. Penulisan syntax setcursor() ialah sebagai berikut. lang.setcursor(col, row) Dengan lang ialah nama variable, col kolom LCD, dan row baris LCD. print() Sesuai dengan namanya, instruksi print() ini digunakan untuk mencetak, menampilkan pesan text di LCD. Penulisan syntax print() ialah sebagai berikut. lang.print(data) Dengan lang ialah nama variable, data ialah pesan yang ingin ditampilkan. Lihat juga mengenai tutorial dan penjelasan mengenai project Arduino Uno LED blinking dan Arduino Uno LED animation.

Arduino Timer Pada ulasan belajar Arduino kali ini membahas tentang timer dan interrupt. Banyak function dalam Arduino menggunakan timer semisal delay(), delaymicroseconds(), millis(), dan micros() untuk penggunaannya masing-masing akan dijelaskan sebagai berikut. delay(), digunakan untuk tundaan eksekusi baris program selanjutnya dalam millisecond delaymicroseconds(), digunakan untuk tundaan eksekusi baris program selanjutnya dalam microseconds millis(), digunakan sebagai pewaktu internal yang (bila tanpa terminate bersyarat) akan terus berjalan hingga terjadi overflow (kembali ke nilai 0) dengan unit dalam millisecond, untuk board Arduino Uno nilai millis() akan terus berjalan hingga sekitar 50 hari micros(), digunakan sebagai pewaktu internal yang (bila tanpa terminate bersyarat) akan terus berjalan hingga terjadi overflow (kembali ke nilai 0) dengan unit dalam microsecond, untuk board Arduino Uno nilai millis() akan terus berjalan hingga sekitar 70 jam Sebuah pewaktu, timer, merupakan bagian dari microcontroller yang berperan sebagai clock internal untuk mengukur waktu suatu event. Untuk timer dapat diatur dengan menggunakan beberapa register khusus. Pada firmware Arduino semua timer memiliki konfigurasi frekuensi 1 khz dengan enable interrupt. Berikut ini timer khusus untuk Arduino. Timer0, 8 bit, digunakan untuk function seperti delay(), millis(), dan micros(), dengan mengubah konfigurasi Timer0 akan mempengaruhi function lainnya Timer1, 16 bit, biasa digunakan untuk aplikasi terkait motor servo Timer2, 8 bit, function tone() menggunakan Timer2 Timer Register Untuk dapat melakukan manipulasi timer pada Arduino terlebih dahulu harus mengetahui fungsi dari masing-masing register yang terkait timer. Salah satu register timer yang paling penting ialah TCCRx (Timer/Conter Control Register), dengan x adalah nomor, berikut ini adalah register apa saja yang digunakan untuk timer. TCCRx (Timer/Conter Control Register), dimana prescaler dapat dikonfigurasi disini sekaligus mode operasi timer TCNTx (Timer/Counter Register), dimana nilai timer disimpan, merupakan register pencacah mulai dari 0 hingga nilai maximum OCRx (Output Compare Register), untuk membandingkan OCR yag diberikan dengan nilai TCNT ICRx (Input Capture Register), hanya tersedia untuk timer 16 bit, menerima data timer TIMSKx (Timer/Counter Interrupt Mask Register), digunakan untuk menjalankan atau mematikan timer interrupt TIFRx (Timer/Counter Interrupt Flag Register), menandakan timer interrupt hasil operasi timer