Depan Produk Download Tutorial

PWM dan Frekuensi

  1. Apa itu PWM dan kegunaannya
  2. Mengatur frekuensi dan duty-cycle pada PWM
  3. Contoh untuk kontrol sudut servo motor SG90
  4. Video

1. Apa itu PWM dan kegunaannya

PWM adalah kependekan dari Pulse Width Modulation yang dapat diartikan sebagai gelombang pulsa kotak yang bisa diatur durasi ON atau OFF nya. Nilai yang menggambarkan perbandingan durasi ON terhadap panjang gelombang disebut sebagai siklus kerja atau duty-cycle. Duty-Cycle 50% berarti pada 100% panjang gelombang, 50% nya adalah ON dan 50% sisanya adalah OFF seperti pada gambar berikut.

PWM Duty Cycle 50%

Duty-Cycle 80% berarti pada 100% panjang gelombang, 80% nya adalah ON dan 20% sisanya adalah OFF seperti pada gambar berikut.

PWM Duty Cycle 80%

Duty-Cycle PWM berbeda dengan frekuensi, Frekuensi adalah banyaknya gelombang dalam 1 detik (satuan waktu) sedangkan duty-cycle PWM adalah besarnya prosentase ON pada satu gelombang.

Contoh:

  • Frekuensi 10 Hz, Duty-Cycle 60%, dalam 1 detik ada 10 pulsa, panjang satu pulsa = 1 detik/10 = 100ms, dan dalam 100ms tersebut 60ms = ON, 40ms OFF
  • Frekuensi 10 Hz, Duty-Cycle 80%, dalam 1 detik ada 10 pulsa, panjang satu pulsa = 1 detik/10 = 100ms, dan dalam 100ms tersebut 80ms = ON, 20ms OFF
  • Frekuensi 50 Hz, Duty-Cycle 40%, dalam 1 detik ada 50 pulsa, panjang satu pulsa = 1 detik/50= 20ms, dan dalam 20ms tersebut 8ms = ON, 12ms OFF
  • Frekuensi 50 Hz, Duty-Cycle 80%, dalam 1 detik ada 50 pulsa, panjang satu pulsa = 1 detik/50= 20ms, dan dalam 20ms tersebut 16ms = ON, 4ms OFF

Kegunaan dari PWM ini umumnya sebagai pengatur intensitas energi atau sebagai jalur komunikasi data secara digital. Sebagai contoh adalah pada penggunaan heater/pemanas listrik, apabila coil/elemen pemanas tersebut mengikuti signal PWM, maka semakin besar besar duty-cycle nya maka panas yang ditansfer akan semakin besar pula. Berbeda dengan perbedaan frekuensi pada duty cycle yang konstant, walupun frekuensinya lebih cepat namun perbandingan ON dan OFF nya akan selalau konstant sehingga intensitas energi yang ditansfer juga tidak berubah.

2. Mengatur frekuensi dan duty-cycle pada PWM

Instruksi SETPWM

Instruksi SETPWM digunakan untuk mengatur frekuensi dan duty-cycle sekaligus. Outseal PLC Mega mempunyai 2 jalur PWM dan Nano hanya mempunyai 1 jalur PWM saja

PLC Jalur Pin
Mega 1 R.7
2 R.8
Nano 1 R.7

Frekuensi  pada instruksi SETPWM pada outseal studio versi 3.0 keatas dapat diisi dengan nilai 0-8kHz, sedangkan duty-cycle pada instruksi ini bukan dalam bentuk persen(% atau /100) melainkan dalam ppt (point per thousand) atau per-seribu (/1000) sehingga 50% = 500ppt, 100%=1000ppt sehingga kepresisian data ppt dinilai lebih baik daripada dalam %.

Pin digital output pada board outseal PLC berupa transistor NPN sehingga logikanya adalah kebalikan dari pin output dari kaki (pin) mikro kontroller. Pada board outseal PLC terdapat shortcut pin untuk output R.7 yalni pin PWM1 yang mana pin ini adalah jalan pintas untuk terhubung dengan pin mikrokontroller secara langsung tanpa adanya transistor NPN.

PWM-Output

Pada gambar berikut, signal yang hasilkan pin R.7 ditunjukkan oleh Channel 0 dan signal yang hasilkan pada pin shortcut PWM1 ditunjukkan oleh Channel 1. Saat data duty-cycle pada instruksi SETPWM di isi dengan nilai 500ppt (50%), maka tidak ada perbedaan duty-cycle pada signal yang hasilkan antara pin R.7 dan pin shortcut PWM1. Hanya fase nya saja yang berbeda yakni saat channel 0 ON maka Channel 1 OFF (inverted/terbalik). 

PWM50

Namun, terbaliknya logika antar pin R.7 dan shortcut PWM1 ini menyebabkan perbedaan yang penting dan harus diketahui terutama saat duty-cyclenya tidak 50%. Fase output yang sesuai dengan instruksi PWM adalah output dari pin R.7 bukan dari shortcut PWM1 sehingga disarankan agar pengguna menggunakan pin R.7 sebagai keluaran dari PWM. Pada saat duty-cycle pada instruksi SETPWM diisi dengan nilai 100ppt (10%) misalnya, fase ON dari pulsa yang dihasilkan oleh pin output R.7 adalah sebesar 10% sesuai dengan instruksi, nanum pin shortcut nya akan memiliki nilai fase ON atau duty-cycle yang berbeda yakni sebesar (100%-10% = 90%)  karena logikanya berkebalikan. Gambar berikut menjelaskan perbedaan tersebut. 

PWM_100ppt_1

PWM_100ppt_2

Saat channel 0 (R.7) mempunyai duty-cycle 10% maka channel 1 (PWM1) mempunyai duty-cycle 90%.

3. Contoh aplikasi PWM untuk kontrol servo motor SG90

Untuk menghindari arus balik dan kurangnya daya dari board system maka sebaiknya digunakan power supply tersendiri bagi servo motor seperti pada gambar berikut. Ground dari power supply eksternal tersebut harus disambungkan dengan ground dari PLC.

wiring Servo SG90

Namun jika anda ingin menghemat biaya, anda dapat menggunakan pin+5V dari board PLC untuk memberi daya bagi motor. Yang perlu diperhatikan adalah hanya pada pin +5V di PCB bagian bawah (I/O board) dari outseal PLC mega saja yang dilengkapi dioda sehingga aman dari arus balik dari motor. Jika anda menggunakan +5V dari PCB bagain atas (CPU board) untuk menjalankan servo motor, maka terdapat banyak kemungkinan PLC akan mengalami reset yang tidak diinginkan. Berikut adalah gambar letak dimana seharusnya pin +5V PLC itu disambungkan ke servo motor.

PWM-Internal_power

Cara pengoperasian SG90 ini cukup mudah, kita hanya cukup mengatur nilai duty-cycle pada frekuensi 50Hz saja maka sudut servo akan berubah seperti dijelaskan pada datasheet SG90

PWM_SG90 PWM_SG90_d

Mengacu pada datasheet tersebut, sudut servo dari 0 hingga 180 derajat dapat di kontrol oleh sebuah pulsa PWM dengan panjang gelombang 20ms dengan fase ON dari 1 hingga 2ms. panjang gelombang 20ms didapatkan dengan mengatur frekuensi pada 50Hz yang berarti dalam 1 detik terdapat 50 pulsa/gelombang sehingga periode/panjang gelombangnya adalah 1000ms/50Hz = 20ms. Fase ON dari 1 hingga 2ms didapatkan dengan mengatur duty-cycle nya. Duty cycle pada instruksi PWM ditulis dalam bentuk ppt (1/1000). Oleh karena itu pada frekuensi 50Hz, 1 ppt = 20ms/1000 = 0.02ms. Untuk mendapatkan fase ON sebesar 1ms, nilai duty-cycle dihitung dengan 1ms/0.02ms = 50. Sedangkan untuk mendapatkan fase ON sebesar 2ms, nilai duty-cycle dihitung dengan 2ms/0.02ms = 100. Dari perhitungan tersebut diketahui bahwa untuk mendapatkan fase ON 1 hingga 2ms pada frekuensi 50Hz diperlukan duty-cycle dengan nilai 50 hingga 100.

sudet servo

Dari perhitungan itu pula didapatkan perbedaan resolusi yang mungkin menjadi masalah yakni sudut yang diatur mempunyai range/resolusi 180 derajat, tetapi variable untuk mengontrolnya (duty-cycle) hanya mempunyai resolusi 50 saja. Sehingga pengaturan efektif sudut servo ini hanya sekitar 180/50 = 3.6° saja.

Berikut adalah contoh ladder diagram untuk mengontrol servo motor SG90 melalui signal PWM pada jalur 1 outseal PLC mega. Dengan memanfaatkan instruksi SCALE maka pengaturan sudut servo dapat dilakukan dengan mudah. Instruksi SCALE memetakan input sudut 0~180° dari variable I.1 menjadi nilai duty cycle 50~100 dan nilainya dimasukkan dalam variable I.2 .

Contoh Ladder Servo SG90

4. Video contoh mengontrol servo motor SG90

Mohon maaf, video masih dalam pengerjaan.