Sinyal Clock dengan frekuensi tetap Sinyal Clock dengan frekuensi yang
yang sudah diketahui besarnya bisa bervariasi sehingga pencacah
sehingga pencacah bekerja sebagai bekerja sebagai Counter(Pencacah),
Timer (Pewaktu), kondisi pencacah tsb kondisi pencacah tersebut menyatakan
setara dengan waktu yang bisa banyaknya pulsa clock yang sudah
ditentukan secara pasti diterima.
Timer/Counter 8 Bit dan 16 Bit
a) b)
Timer/Counter
Timer/counter 0 dan timer/counter 2 adalah
timer/counter 8 bit yang mempunyai
multifungsi fitur yaitu:
re
Ti
nt
m
ou
er
C
Timer dinolkan saat match compare 10 bit clock prescaler
(autoreload)
C
er
ou
m
nt
Ti
re
Glitch-free,phase correct pulse width Interupsi timer yang disebabkan timer
modulator (PWM) overflow (TOVn) dan comparematch (OCFn)
Timer/Counter
Register” Timer 8 Bit
• Register TCNT (Timer/Counter Register) berfungsi sebagai
registerpencacah dari 0 sampai nilai maximum yang kita
tentukan.
• Register TCCR (Timer/Counter Control Register) berfungsi
untuk pengaturan mode operasi timer/Counter.
• Register TIMSK (Timer/Counter Interrupt Mask Register)
berfungsi untuk memilih Timer/Counter mana yang aktif.
• Register TIFR (Timer/Counter Interrupt Flag Register)
berfungsi untuk mengetahui adanya interupsi akibat operasi
Timer/Counter.
• Register OC (Output Compare) berfungsi untuk menyimpan
nilai pembanding dengan nilai pada register TCNT
Mode – mode operasi timer
TCNT1 Timer/Counter register digunakan TIMSK & TIFR Timer Interupt Mask Register
untuk menyimpan nilai timer yang (TIMSK) dan Timer In- terupt Flag (TIFR)
diinginkan. TCNT1 dibagi menjadi 2 register register digunakan untuk mengendalikan
8 bit yaitu TCNT1H dan TCNT1l interrupt mana yang diaktifkan dengan cara
RE melakukan pengaturan pada TIMSK dan
GIS untuk mengetahui interrrupt mana yang
TER sedang terjadi.
Non Inverted
Mode
Motor DC
Selain dapat dikontrol dengan data Digital, komponen ini juga mampu
dikontrol dengan output PWM. Perbedaanya adalah, jika menggunakan
output digital maka Motor hanya akan memilik 2 kondisi yaitu diam dan
berputar, sedangkan jika menggunakan output PWM maka motor dapat
memiliki lebih dari 2 kondisi yaitu mati, pelansekali, pelan, normal, cepat,
cepat sekali, dan seterusnya.
Motor Servo
Motor Servo
Motor servo adalah sebuah aktuator yang bergerak dalam poros yang
mempunyai spesifikasi untuk control posisi sudut yang presisi. Banyak jenis
motor servo. Ada yang dikontrol secara serial ataupun dengan PWM. Namun
PWM harus diatur agar memenuhi standar sinyal input untuk motor servo
sehingga motor servo dapat bergerak sesuai dengan perintah yang kita
kirimkan lewat PWM.
Terdapat dua jenis tipe motor servo yaitu servo standard dan servo
rotation (continuous). Dimana biasanya untuk tipe standar hanya dapat
melakukan pergerakan sebesar 180 derajat, sedangkan untuk tipe continuous
dapat melakukan rotasi atau 360 derajat. Contoh gambar di bawah ini adalah
Servo dari Hitech dan isinya.
Interface PWM di
mikrokontroller
AVR
Pulse Width Modulation menggunakan
gelombang kotak dengan duty cycle tertentu
untuk menghasilkan berbagai nilai rata-rata dari
suatu bentuk gelombang, Duty sycle merupakan
presentase keadaaan logika high (pulse) dalam
satu periode sinyal. Satu siklus diawali dengan
transmisi low atau high dari sinyal dan berakhir
pada transmisi berikutnya. Selama satu siklus,
jika waktu sinyal pada keadaan high sama
dengan low maka dikatakan sinyal mempunyai
duty sycle 50%. Berikut adalah contoh
rangkaian dan program menggunakan interface
motor DC yang dikontrol dengan sinyal PWM
dari mikrokontroler AVR.
Motor DC
Interface PWM
dengan motor DC
Rangkaian berikut adalah rangkaian mikrokontroler
AVR ATmega16 yang dihubungkan dengan motor
DC, pada dasarnya rangkaian motor DC yang
membutuhkan arus kuat harus menggunakan
sebuah driver motor. Fungsi dari driver ini adalah
penguat arus dan tegangan. Pada rangkaian berikut
menggunakan PORTD.0 dan PORTD.1 untuk
memberikan sinyal putaran ke motor sekaligus
sebagai pengatur arah rotasi putaran motor DC, dan
PORTD.5 atau OC1A sebagai pin yang akan
mengeluarkan sinyal kotak PWM yang dihubungkan
ke kaki enable1 pada IC driver untuk mengatur
kecepatan putaran motor DC.
Listing Program
Motor Servo
Interface PWM
dengan motor
servo
Seperti penjelasan sebelumnya motor servo dapat
berfungsi menggunakan satu data saja dengan
menggunakan kontrol PWM pada fitur timer
mikrokontroler. Berikut rangkaian interface motor
servo yang dihubungkan pada pin OCR1A
Mikrokontroler ATmega16
Listing Program
Interface PWM di
Arduino
Dalam Arduino PWM adalah teknik untuk
mendapatkan hasil analog dengan sarana
digital. Kontrol digital digunakan untuk membuat
gelombang persegi, sehingga sebuah sinyal
beralih antara on dan off. Pola on-off ini dapat
mensimulasikan tegangan di antara voltase
penuh (5 Volt) dan mati (0 Volts) dengan
mengubah bagian dari waktu yang dihabiskan
sinyal dengan waktu. Durasi ”tepat waktu”
disebut dengan lebar pulsa
PWM pada Arduino
Interface PWM
dengan Motor DC
Berikut adalah contoh rangkaian motor DC. Dalam
pemrograman PWM dengan arduino dapat
menggunakan perintah ”analogWrite(pin,nilai);”, pin
adalah kaki yang digunakan sebagai output PWM,
dan nilai diisi dengan nilai besar duty cycle yang
akan diberikan pada output PWM. Untuk lebih
jelasnya perhatikan listing program berikut. Listing
program sudah disesuaikan dengan rangkaian pada
gambar tersebut.
Listing Program
Motor Servo
Interface PWM
dengan Motor Servo
Berikut adalah contoh rangkaian interface motor
servo yang terhubung dengan arduino pada pin 10.
Dalam pemrograman PWM pada servo dengan
arduino dapat menggunakan perintah
”analogWrite(pin,nilai);”, pin adalah kaki yang
digunakan sebagai output PWM, dan nilai diisi
dengan nilai besar duty cycle yang akan diberikan
pada output PWM. Pada pemrograman PWM untuk
servo, arduino telah menyediakan pustaka yang
dapat memudahkan pengguna untuk melakuakan
pemrograman, pustaka tersebut adalah ”Servo.h”.
Penggunaan pustakan dan listing program untuk
mengontrol servo dapat dilihat setelah ini, listing
program sudah disesuaikan dengan rangkaian pada
gambar tersebut.
Listing Program
Kesimpulan