PWM atau Pulse Width Modulation yang dalam Bahasa disebut Modulasi Lebar Pulsa, merupakan suatu teknik modulasi yang mengubah lebar pulsa (pulse width) dengan nilai frekuensi dan amplitudo yang tetap. Umumnya pada Arduino kita sering menggunakan teknik ini untuk mengatur kecerahan sebuah LED, kecepatan sebuah Motor, dll. PWM juga memiliki istilah Duty Cycle yaitu ration antara sinyal dalam kondisi ON atau OFF. Aga mudah dipaham berikut ilustrasi Duty Cycle.
Semoga dari ilustrasi ini kalian bisa paham. Sedangkan Frequency yaitu jumlah pulsa dalam satuan waktu (detik). Namun secara default PWM Arduino memiliki Frequency yang sudah diset kisaran 900Hz. Nah pada artikel ini kita akan belajar Tutorial Setting Frequency PWM Arduino dan Duty Cycle.
Skematik
Dalam simulasinya tentunya temen perlu memiliki Oscilloscope, namun disini kita juga bisa menggunakan outputan berupa led seperti berikut.
Program PWM Tanpa Library
Disini saya akan coba memberikan tutorial program untuk akses PWM dengan menggunakan perintah analogWrite(PIN, DUTY CYCLE);. Pin PWM pada Arduino Uno terdapat tanda ~ pada kaki pinya. Sebagai contoh kita gunakan Pin 9. Bawaan Arduino hanya dapat mengatur nilai Duty Cycle saja dimana nilainya antara 0 s/d 25. Berikut ini program untuk akses PWM bawaan Arduino.
#define PIN_PWM 9 void setup() { pinMode(PIN_PWM, OUTPUT); // Set Duty Cycle 50% analogWrite(PIN_PWM, 127); } void loop() { }
Berikut hasil pengukuran yang saya dengan Oscilloscope. Terlihat nilai Frequency dan Duty Cycle.
Program PWM dengan Library Frequency
Dengan library ini sepengalaman saya hanya berfungsi pada pin Pin 9 dan 10 (berdasarkan testing). Sebelum lanjut silahkan download librarynya dilink berikut:
#include <PWM.h> #define PIN_PWM 9 int frequency = 50; // 50Hz void setup() { // Initialisasi kecuali TIMER0 // keperluan delay(), dan millis() InitTimersSafe(); SetPinFrequencySafe(PIN_PWM, frequency); // Set Duty Cycle 50% pwmWrite(PIN_PWM, 127); } void loop() { }
Berikut ini hasil pengukuran Frequency dan Duty Cycle yang saya ukur dengan settingan Duty Cycle 50% atau 127 dalam desimal dan Frequency 50Hz.
Pemanfaat Pengaturan Frequency
Dengan menggunakan library ini, kalian dapat membuat sebuah project untuk membuat pulsa generator yang dapat diatur. Sebagai contoh saya gunakan sebagai alat tester Injetor Bensin kendaraan bermotor. Gimana menurut kalian? mari diskusikan di kolom komentar dibawah. Semoga bermanfaat, salam Elektronik.