Page 64 - MODUL PRAKTIKUM MIKROKONTROLER - MIKROPROSESOR
P. 64
Modul Praktikum Sistem Mikroprosesor & Mikrokontroler
(MT-UN-2022)
Modul 8 Output Analog
MODUL
MT-UN-2016 SM-01-PIC16F877
PWM (Pulse Width Modulation)
8.1 Tujuan
1) Mahasiswa dapat memahami output analog dan PWM (Pulse Width
Modulation)
2) Mahasiswa memahami perintah output analog, analogWrite()
8.2 Pendahuluan
Kita dapat mengirimkan sinyal HIGH dan LOW atau on dan off pada Arduino
untuk menyalakan dan mematikan sesuatu menggunakan digitalWrite(). Bagaimana
kalo kita ingin mengaktifkan sesuatu dengan kekuatan tertentu dan bisa diubah-ubah
sesuai keperluan, seperti misalnya mengatur intensitas cahaya LED atau mengatur
kecepatan putaran motor? Dalam hal ini kita punya analog output. Analog output pada
Arduino berarti kita mengirimkan sinyal analog dengan intensitas yang ditentukan
sesuai kebutuhan. Analog input dihasilkan oleh teknik yang dikenal dengan istilah
PWM atau Pulse Width Modulation.
PWM merupakan suatu metode untuk mendapatkan bentuk sinyal analog dari
sinyal digital. Dengan adanya fungsi ini kita dapat membuat transisi antar state hidup
dan mati menjadi lebih halus. PWM memanipulasi keluaran digital sedemikian rupa
sehingga menghasilkan sinyal analog. Mikrokontroler mengeset output digital ke
HIGH dan LOW bergantian dengan porsi waktu tertentu untuk setiap nilai
keluarannya. Durasi waktu untuk nilai HIGH disebut pulse width atau panjang
pulsa. Variasi nilai output analog didapatkan dari perubahan panjang pulsa yang
diberikan pada satu periode waktu dan dilakukan berulang-ulang. Untuk lebih jelasnya
perhatikan ilustrasi berikut: Kondisi HIGH adalah kondisi ketika sinyal berada di atas
grafik (5V) dan LOW adalah ketika sinyal berada di bawah (0V). Duty cycle adalah
persentasi panjang pulsa HIGH dalam satu periode sinyal. Ketika duty cyclenya 0%
atau sinyal LOW penuh, maka nilai analog yang dikeluarkan adalah 0V atau setara
dengan GND. Ketika duty cyclenya 100% atau sinyal HIGH penuh maka sinyal yang
dikeluarkan adalaah 5V.
PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan
dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika
kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt
(pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang
siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita
anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan
bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika
memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt,
57