Anda di halaman 1dari 10

TIMER ARDUINO

Function timer pada arduino :

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
Timer 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
Selain tiga pewaktu tersebut, terdapat juga Timer3, Timer4,
dan Timer5, semuanya 16 bit, untuk board Arduino Mega.
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
TIMER FREKUENSI
Untuk menghitung frekuensi timer dengan frekuensi yang ditentukan dapat dilakukan
dengan cara sebagai berikut.

Menentukan frekuensi pembagi, misal 2 Hz

Mengetahui frekuensi kerja Arduino, yakni 16 MHz

Mengetahui prescaler timer, 256 untuk 8 bit, 65536 untuk 16 bit

Membagi nilai frekuensi kerja Arduino (16 MHz) dengan prescaler (256), hingga
diperoleh hasil 62500

Membagi hasil tersebut (62500) dengan frekuensi ditentukan (2 Hz), hingga diperoleh
hasil 31250

Memastikan bahwa hasil tersebut dapat digunakan dengan membandingkannya nilai


maximum prescaler, bila nilai tersebut lebih kecil (dalam hal ini 31250 lebih kecil dari
65536), maka hasilnya tersebut valid, bila tidak valid gunakan nilai prescaler yang lebih
besar
PWM DAN TIMER
Terdapat hubungan antara timer dengan output PWM. Dalam
data sheet atau pin out microcontroller (Arduino) terdapat
PWM pin dengan nama seperti OCRxA, OCRxB, atau
OCRxC, dimana x adalah nomor timer. Untuk fungsi pin
PWM sering digunakan bersama dengan fungsi lainnya.
Untuk board Arduino Uno memiliki 3 timer dan 6 pin output
PWM. Kaitan antara timer dengan output PWM sebagai
berikut.
Arduino pin 5 dan 6, dikendalikan oleh Timer0
Arduino pin 9 dan 10, dikendalikan oleh Timer1
Arduino pin 3 dan 11, dikendalikan oleh Timer2
Mode Operasi Timer
Ada empat mode operasi timer pada microcontroller, yakni
sebagai berikut.

Normal, hanya untuk mencacah, melakukan delay, menghitung


selang waktu

PWM, phase correct, membentuk gelombang PWM resolusi


tinggi, berdasarkan operasi dual slope

CTC (Clear Timer Compare Match), mengembalikan nilai


TCNT ke 0, saat nilainya telah sama dengan nilai set point OCR

Fast PWM, memberikan pulsa PWM frekuensi tinggi,


berdasarkan operasi single slope
TUGAS 1 COUNTER
Buat program yang berfungsi untuk menghitung jumlah
penekanan switch pada input counter. Konfigurasi
counter menggunakan mode falling edge.
Pertanyaan :
Kapankah nilai counter (TCNT1) akan berubah ? Saat
switch ditekan atau dilepas ? Jelaskan !
Berapakah nilai maksimal counter jika input counter
menggunakan pin T1 (Timer 1) ? Jelaskan mengapa !
Jelaskan fungsi tiap baris dari sintaks program pada tugas
ini !
TUGAS 2 COUNTER
Buat program yang berfungsi untuk menghitung jumlah
penekanan switch pada input counter. Konfigurasi counter
menggunakan mode rising edge.

PERTANYAAN :

Kapankah nilai counter akan berubah ? Saat switch ditekan atau


dilepas ? Jelaskan !

Jelaskan perbedaan penggunaan counter mode falling edge dan


mode rising edge !

Jelaskan fungsi tiap baris dari sintaks program pada tugas ini !

Anda mungkin juga menyukai