Tutorial Dasar Arduino PWM


Setelah sebelumnya dibahas tentang tutorial dasar pemrograman Arduino, Arduino bitwise operation, Arduino komunikasi serial, dan akses LCD Arduino, bahasan selanjutnya ialah Pulse Width Modulation. Dalam pembahasan Pulse Width Modulation atau biasa disingkat PWM, akan dijelaskan istilah-istilah penting seperti duty cycle dan contohnya, juga contoh sederhana aplikasi PWM dengan menggunakan Arduino.

Pulse Width Modulation
Pulse Width Modulation (PWM) merupakan suatu teknik untuk mendapatkan hasil output analog dengan pendekatan secara digital. Teknik PWM ini mengendalikan lebar pulsa berdasarkan modulator. Meski bapat diterapkan dalam penyandian informasi komunikasi, penerapan utamanya lebih pada kendali daya perangkat listrik, semisal motor. Kendali digital digunakan untuk membentuk sebuah gelombang kotak (square wave), sebuah gelombang signal untuk switch antara kondisi on dengan off. Pola kondisi on dan off tersebut merepresentasikan suatu nilai full on pada Arduino (5 volt) dan kondisi off (0 volt) dengan mengubah perbandingan ratio antara waktu kondisi on dengan kondisi off dalam satu periode. Durasi waktu on disebut dengan istilah lebar pulsa, pulse width. Untuk mendapatkan suatu variasi hasil output nilai analog, dapat dilakukan dengan mengubah lebar pulsa tersebut. Perbandingan antara waktu signal on dengan waktu satu periode disebut dengan duty cycle.

Duty Cycle
Duty cycle dapat diartikan sebagai perbandingan antara waktu signal on dengan waktu keseluruhan untuk satu periode. Besarnya nilai duty cycle dinyatakan dalam percent. Nilai duty cycle dapat bervariasi mulai dari 0% tidak ada signal on, hingga 100% tidak ada signal off, atau selalu dalam kondisi signal on.



Sebagai contoh duty cycle 60% dengan durasi 1000 ms. Maka waktu saat signal on ialah 60% dari 1000 ms, yakni 600 ms. Sedangkan untuk waktu signal off ialah selisih antara durasi keseluruhan dengan waktu signal on, yakni 400 ms.

Implementasi
Dengan melakukan pengulangan pola duty cycle tersebut terus-menerus secara cepat pada sebuah LED, dapat digunakan untuk mengatur nyala terangnya. Pengulangan pola duty cycle tersebut seolah-olah membuat LED menyala dengan nilai tegangan yang tetap (steady) antara 0 volt hingga 5 volt. Padahal sebenarnya terjadi kondisi perubahan signal on-off secara cepat. Bila digunakan pada motor DC, semakin besar nilai PWM maka semakin cepat laju putaran motor DC tersebut, dan demikian sebaliknya.
Nilai rata-rata tegangan dan juga arus yang diberikan ke rangkaian beban dikendalikan melalui duty cycle tersebut. Semakin besar duty cycle (semakin lama waktu signal on) maka semakin besar nilai daya yang diberikan ke rangkaian beban.
Penerapan PWM dalam Arduino Uno dapat dilakukan dengan menggunakan analogWrite() dengan nilai antara 0 hingga 255, resolusi ADC 8 bit. Dimana analogWrite(255) memiliki nilai duty cycle 100% atau selalu menyala, analogWrite(127) memiliki nilai duty cycle 50%, dan lain sebagainya. Untuk pin pada board Arduino Uno yang dapat digunakan menghasilkan output PWM ialah pin 3, 5, 6, 9, 10, dan 11.

Saat ini di Indonesia board Arduino Uno R3 dapat diperoleh dengan mudah di kota-kota besar. Board Arduino Uno R3 dijual dengan harga murah. Membuat perkembangan Arduino kian pesat.
Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment atau melalui page Facebook berikut.