Percobaan penyakelaran BJT dengan modul pwm generator

[ [ BJT NPN BD139] ]
[su_panel border=”3px solid #bf80ff” radius=”10″]

Di artikel sebelum ini sudah dipaparkan mengenai pengenalan dasar-dasar PWM melalui komponen pembentuknya yaitu frekuensi, periode, dan duty cycle (link). Kemudian di artikel lain juga sudah dicontohkan bagaimana mencari nilai rata-rata (average) maupun rms (root-mean-square) (link). Lalu sudah dicontohkan bagaimana mewujudkan sistem penghasil PWM dengan menggunakan perangkat digital yang itu sistem Arduino yang didalamnya berintikan mikrokontoler. Di artikel itu (link) juga dicontohkan perbandingan antara dua cara pembangkitan PWM, satu dengan cara penyakelaran manual sedang yang lain dengan cara menggunakan pemanggilan fungsi. Pada artikel itu pula disampaikan alur belajar yang bisa dilakukan untuk memahami sesuatu, dengan menaikkan kompleksitas secara bertahap.

Setelah memahami konsep-konsep dasarnya, kita bisa melanjutkan ke wilayah praktik/penggunaan. Dalam penggunaan ‘sehari-hari’ kita tidak harus hanya bergantung pada satu komponen/alat/sistem. Misalnya anda tidak selalu harus mempergunakan Arduino Uno untuk membangkitkan PWM secara digital. Terutama di era perdangan dan transportasi yang semakin lancar dan bebas seperti ini. Telah banyak modul impor dari pabrikan di luar negeri dengan harga yang relatif murah tersedia di beberapa toko online.

Misalnya yang sudah banyak dijual di toko-toko online di Indonesia adalah: “2 Channel PWM Generator Module Pulse Frequency Duty Cycle Adjustable Square Wave Rectangle Signal Generator For Stepper Motor Driver“. Barang ini dijual dengan beberapa nama, dan bahkan ada beberapa varian. Salah satunya adalah yang seperti Gambar 1 berikut.

Gambar 1. Two channel PWM generator

Salah satu kemudahan varian ini adalah sudah disediakannya micro USB  2.0 port untuk masukan daya. Di dekatnya disediakan juga tempat untuk masukan catu daya jika hendak mempergunakan kabel atau male pin header. Sedangkan untuk pengaturan operasi dari alat ini dilakukan melalui tiga push button (tactile switch). Yang paling kiri mengatur mode, yang tengah untuk menaikkan nilai, yang paling kanan untuk menurunkan nilai. Pengguna alat ini bisa mengatur frekuensi dan duty cycle dari masing-masing pulse train.

Gambar 2. Two channel PWM generator

Di Gambar 2 terlihat empat lubang tempat male pin header bisa dipasang.  Keempatya keluaran untuk dua sinyal PWM yang independen/terpisah, yaitu PW1 dan PW2.

[/su_panel] [su_panel border=”3px solid #00e600″ radius=”10″]

Untuk dapat mengerti sistem penyakelaran BJT (Bipolar Junction Transistor) NPN menggunakan PWM generator ini, saya mulai dari cara pengoperasian alat pembangkit sinyalnya terlebih dahulu.

Gambar 3. Tiga tombol pengatur operasi PWM generator

Pada Gambar 3, tombol/sakelar 1 disediakan untuk mengatur mode operasi alat ini. Di pengaturan dasar terdapat empat pilihan mode pengaturan untuk dua kanal PWM yang independen. Tiap kali tombol 1 ditekan singkat, mode akan berpindah. Jika sampai ke mode yang terakhir, maka akan kembali ke mode yang pertama, demikian seterusnya.

Untuk kanal sinyal 1, tampilan FA1 adalah untuk mengatur besar frekuensi PWM1. Tombol 2 dipakai untuk menaikkan nilai frekuensi sesuai yang diinginkan dan tombol 3 untuk menurunkan. Kedua tombol itu dapat ditekan sesaat untuk menaikkan satu nilai/angka, tetapi dapat juga ditekan-tahan untuk menaikkan/merunkan nilai terus menerus/kontinu sampai tombol dilepas. Setelah mode frekuensi FA1 sekali penekanan lagi yang singkat pada tombol 1 akan memasukkan ke mode du1, yaitu mode  pengaturan untuk duty cycle kanal sinyal PWM 1. Cara menaikkan/menurunkan nilai duty cycle sama dengan cara untuk frekuensi. Berikutnya, penekanan singkat sekali lagi pada tombol 1 akan membuat alat masuke ke mode FA2, pengaturan frekuensi yang terpisah untuk kanal sinyal 2 PWM. Cara pengaturannya sama dengan FA1. Berikutnya yang terakhir adalah du2, yaitu pengaturan duty cycle untuk kanal sinyal 2 PWM. Cara pengaturan untuk mengubah nilai/angka juga sama dengan mode yang lain.

Alat ini mampu membangkitkan sinyal PWM dari 0 Hz sampai 150 kHz. Tetapi pada pengaturan dasar anda hanya dapat melihat indikator angka 999, yang mengindikasikan 999 Hz. Bagaimana cara menghasilkan gelombang PWM dengan frekuensi yang lebih tinggi?

Caranya adalah pada saat sudah berada pada mode frekuensi (FA1/FA2), tekan-tahan tombol 1 agak lama. Misalnya saat tampilan berupa angka 999 (bisa digeneralisir dengan notasi xxx), ketika tombol 1 dilepas setelah ditekan-tahan sesaat maka tampilan akan berubah menjadi xx.x. Angkanya tidak harus sama dengan angka pada rentang frekuensi sebelumnya. Kalau dinaikkan sampai maksimum pada rentang itu, indikatornya akan menjadi 99.9. Rentang terakhir yang didapat dengan tekan-tahan tombol 1 adalah x.x.x., dengan nilai maksimum 1.5.0. yang artinya 150 kHz. 

Berikut adalah beberapa capture hasil pengukuran dengan logic analyzer. Perhatikan bahwa nilainya tidak selalu sama dengan nilai nominal.

Gambar 4.  [ Klik pada gambar untuk memperbesar tampilan ]

Gambar 4 adalah tampilan saat indikator alat PWM generator menunjukkan FA1 sebesar 999, dan du1 50. Nilai ini seharusnya menunjukkan keluaran sebesar 999 Hz dengan duty cycle sebesar 50%. Tetapi logic analyzer dengan pengaturan sample rate 20 MS/s, sebanyak 100 samples, menunjukkan hasil yang berbeda. Frekuensi sebesar 1,002 kHz dengan duty cycle sebesar 50,01%.

Gambar 5.  [ Klik pada gambar untuk memperbesar tampilan ]

Gambar 5 adalah tampilan saat indikator alat PWM generator menunjukkan FA1 sebesar 99.9, dan du1 50. Nilai ini seharusnya menunjukkan keluaran sebesar 99.9 kHz dengan duty cycle sebesar 50%. Tetapi logic analyzer dengan pengaturan sample rate 20 MS/s, sebanyak 100 samples, menunjukkan hasil yang berbeda. Frekuensi sebesar 100 kHz dengan duty cycle sebesar 46,67%.

Gambar 6.  [ Klik pada gambar untuk memperbesar tampilan ]

Gambar 6 adalah tampilan saat indikator alat PWM generator menunjukkan FA1 sebesar 1.5.0. , dan du1 50. Nilai ini seharusnya menunjukkan keluaran sebesar 150 kHz dengan duty cycle sebesar 50%. Tetapi logic analyzer dengan pengaturan sample rate 20 MS/s, sebanyak 100 samples, menunjukkan hasil yang berbeda. Frekuensi sebesar 149,1 kHz dengan duty cycle sebesar 44,1%.

Berikut ini adalah data yang diperoleh dari salah satu penjual alat ini di toko online di Indonesia.

[Disclaimer: Tidak ada kepentingan komersial apa pun, anda bebas mencari dari toko/sumber yang berbeda. Ini bukan promosi, hanya menampilkan data] 

Cara pakai, ada 3 tombol:
1. Press the [ Set ] key momentarily to switch to display four parameter values ( FR1 : frequency of PWM1 ; d U1 : duty ratio of PWM1 ; FR2 : frequency of PWM2 ; dU2 : duty ratio of PWM2 ) . The parameter name flashes.
2. Press [ Up ] and [ Down ] directly to modify the current parameter value ( long press to increase or decrease quickly ).
3. Two PWM each preset has three kinds of frequency values, the display interface in the frequency, a long press [ SET ] key once to switch, 3 uniform duty cycle frequencies are available . ( XXX: range 1Hz ~ 999Hz ; XX.X : the range of 0.1 Khz ~ 99.9Khz ; XXX : range 1Khz ~ 150 Khz )

Spesifikasi:
– Tegangan: 5-30V, support micro USB 5.0V power supply
– Frequency range: 1Hz ~ 150KHz.
– Pulse width range: 0 – 100%
– Frequency accuracy: 2%.
– Output current: 30mA
– Output amplitude: default 5Vp-p (settable)
– Operating temperature range: -30 ~ +70 C
– Dimensi: 4.3 x 2.9 x 0.9 cm

Jika anda memiliki akses Internet yang lancar dan kondisi memungkinkan, saya menyarankan untuk dapat menyaksikan dan menyimak video yang bagus mengenai alat PWM generator berikut ini.


Video 1. Cara peggunaan PWM generator

[/su_panel] [su_panel border=”3px solid #ff4dff” radius=”10″]

Untuk peralaran/sistem praktik seperti ini ada dua alur, yaitu alur maju dan alur mundur. Pada alur maju, engineer atau engineering technologist terlebih dahulu membuat rancangan rangkaian seperti yang saya lakukan dengan Multisim Live pada Gambar 7 di bawah ini.  Alur yang kedua adalah alur mundur, yaitu kita membuat diagram rangkaian dari rangkaian/sistem yang sudah ada. Hal semacam ini lazim disebut sebagai reverse engineering.

Pada saat saya merakit cepat sistem untuk prakik BJT NPN ini sebenarnya saya berharap agar setidaknya ada hikmah lebih dari praktikum pengganti ini. Saya berharap papan praktik ini bisa juga menjadi sarana latihan reverse engineering sederhana bagi mahasiswa.

Gambar 7. Rancangan/simulasi/dokumentasi rangkaian penyakelaran BJT NPN

Image result for BD139Gambar 8.  Pinout kaki BJT NPN BD139

Transistor yang dipergunakan pada papan percobaan adalah BD139.  Sebagiamana standar operasi untuk pekerjaan sistem elektrikan yang mengacu pada ‘katalog’, maka untuk banyak pekerjaan dan proses belajar di sistem elektronika perlu mengacu pada datasheet (data sheet). Selain dari application note, manual, white paper dan user’s guide. Hampir seperti obat-obatan medis yang memiliki tipe obat generik, beberapa komponen dengan tipe yang sama dibuat oleh produsen yang berbeda. Misalnya beberapa datasheet BD139 dikeluarkan oleh produsen yang berbeda, oleh Semiconductor Components Industries, LLC (ON Semi/ON Semiconductor), dan oleh STMicroelectronics. Mahasiswa perlu membiasakan diri untuk membuka, membaca, dan mengacu pada datasheet, selain dari melakukan pengukuran karakteristik komponen dengan instrumen.

 

Gambar 9. Papan percobaan penyakelaran transistor NPN

Pada Gambar 9, pin penanda satu sampai tiga adalah untuk tombol/switch pengaturan yang penggunaannya telah dijelaskan pada bagian sebelumnya di artikel ini. Pin 4 menunjukkan kabel USB yang memberikan daya melalui micro USB 2.0 port. Sumber daya bisa didapat misalnya dari charger telepon genggan yang telah diketahui memiliki pengaturan tegangan yang stabil. Pin 5 adalah kaki emitor dari BJT NPN BD139 yang terhubung dengan jalur GND dari port USB. Sekali lagi sebaiknya praktikan melihat dan mengacu pada datasheet. Pin penanda 6 menunjukkan resistor pada kaki kolektor dengan nilai nominal 330 Ω. Sedangkan pin penanda 7 adalah resistor pada kaki basis dengan nilai nominal 100 Ω. Agar dapat menghitung besar arus dengan benar, sebaiknya praktikan melakukan pengukuran kedua nilai resistor sebelum papan dihubungkan dengan catu daya.

Rating daya untuk kedua resistor sebenarnya tidaklah perlu sebesar yang saya pasang. Saya menggunakan resistor yang pada saat itu tersedia. Inilah contoh pentingnya memiliki sejumlah komponen untuk beberapa nilai yang sesuai, misalnya beberapa resistor dengan nilai resistansi yang berbeda yang paling umum sering dipergunakan. Kalau perlu memilih karena keterbatasan dana, pilihlah yang dayanya memadai agar bisa dipergunakan pada lebih dari satu skenario penggunaan.

Gambar 10. Male pin header

Pin penanda 1 pada Gambar 10 menunjukkan jalur GND dengan menggunakan male pin header, terhubung langsung dengan masukan lewat micro USB 2.0 port. Sedangkan pin 2 menunjukkan jalur tegangan +5V, juga dari USB port. Harap berhati-hati mengoperasikan peralatan/probe di sekitar jajaran pin header ini, jangan sampai terjadi hubung pendek.

Perhatikan juga bahwa male pin header berwarna putih di dekat BJT  NPN dan berada di samping (terhubung paralel) dengan LED tidak dihubung singkat dengan kabel. Jika kedua pin header yang berseberangan itu terhubung, maka untuk eksperimen ini lepaslah salah kabel dari salah satu pin header.

Percobaan pertama yang dilakukan dengan papan BJT NPN ini adalah percobaan sebgaimana pada Gambar 7 di atas yang dikutip ulang di bawah ini:

Pada dasarnya rangkaian ini adalah rangkaian penyakelaran LED yang dilindungi oleh resistor dengan nilai nominal 330 Ω. Jika diukur dengan benar sebelum dihubungkan dengan rangkaian daya nilai resistor yang terukur bisa jadi tidak sama (persis) nilainya.

Cara percobaan ini memudahkan untuk melihat pengaruh penyakelaran pada suatu komponen. Kedipan LED pada frekuensi rendah memberi umpan balik langsung kepada praktikan mengenai kerja penyakelaran oleh BJT NPN yang sedang berlangsung, bahkan (misalnya) tanpa bantuan instrumen oscilloscope. Alasan ini adalah dasar dari pengaturan rangkaian percobaan pada papan BJT NPN.

Jika anda menggunakan oscilloscope untuk melakukan experimen, ada beberapa konfigurasi yang bisa dilakukan. Jika menggunakan dua probe untuk dua kanal (channel) maka kanal satu dipergunakan untuk melakukan pengukuran terhadap Vbe , hubungkan probe ke kaki basis dari NPN. Probe kanal dua dihubungkan dengan kaki kolektor NPN untuk dapat mengukur perubahan teganan Vce. Jika anda bisa menggunakan tiga kanal, mana probe untuk kanal ketiga dihubungkan dengan keki anode dari LED. Jika anda menggunakan empat kanal, maka anda bisa menghubungkan kanal terakhit itu ke kutub positif catu daya. Semua ground dari kanal dihubungkan ke kaki emitor NPN atau ke sisi negatif dari catu daya.

Jika hanya memilki akses ke oscilloscope dengan dua kanal, penempatan kanal kedua dapat dilakukan bergantian antara kaki kolektor, kaki anode LED, dan sumber positif dari catu daya. Dengan metode ini anda masih bisa mengukur nilai arus kolektor yang mengaliri resistor dan LED. Dengan cara yang sama pula, penempatan probe kanal satu juga dapat dilakukan begantian di antara kaki-kaki resistor basis untuk dapat mengukur nilai arus basis.

Dengan mengetahui nilai atus kolektor dan arus basis, anda bisa menghitung penguatan, βdc atau hFE pada saat itu. Lalu bandingkan dengan informasi pada datasheet dan teori baku tentang bagaimana operasi suatu BJT NPN.

[/su_panel] [su_panel border=”3px solid #005ce6″ radius=”10″]

Eksperimen pertama menggunakan LED untuk bantuan visual (selain juga sebagai wawasan untuk biasa melakukan peyakelaran LED). Tetapi pada frekuensi yang lebih tinggi, kedipan LED itu tidak mudah terlihat. Dari sudut pandang ini, kegunaan keberadaan LED menjadi berkurang. Maka setelah bisa melihat dan membandingkan fenomena tampilan LED pada frekuensi yang lebih tinggi, akan lebih bermanfaat jika LED tidak lagi diaktifkan. Caranya adalah seperti pada Gambar 11, kaki anode pada LED dihubung singkat dengan kaki katode LED dengan bantuan kabel jumper

Gambar 11. Eksperimen kedua, tanpa LED

 

Lihat dan bandingkan anatara Gambar 10 di atas dengan Gambar 12 di bawah ini. Lihat pada Gambar 12 terdapat kabel berwarna abu-abu yang menghubungkan kedua male pin header sehingga kedua kaki LED (anode dan katode) terhubung singkat. 

Gambar 12. Eksperimen kedua, tanpa LED

Pin penanda 1 adalah male pin header yang terhubung paralel dengan kaki  katode LED, pin penanda 2 terhubung paralel dengan kaki anode LED. Pin 3 adalah LED daya rendah. Pin 4 adalah kaki basis NPN BJT BD 139 (tetaplah melihat dan mengacu pada datasheet). Pin 5 adalah penanda resistor basis dengan nilai sekitar 100 Ω.

Cara melakukan percobaan kali ini masih hampir sama dengan percobaan/eksperimen sebelumnya. Perbedaannya, sekarang kaki kolektor NPN (juga kaki katode LED) berada pada node yang sama dengan kaki anode LED. Ini dengan asumsi resistansi pada kabel jumper diabaikan.

[/su_panel] [su_panel border=”3px solid #bf80ff” radius=”10″]

Gambar 13. Mahasiswa sedang memulai eksperimen/percobaan

Pada saat saya menulis artikel ini, papan percobaan BJT NPN ini masih dipakai sebagai modul percobaan pengganti pada praktikum. Jika peralatan pengganti yang lebih baik yang sedang dibuat mahasiswa sudah selesai dengan baik, maka peralatan papan BJT NPN BD 139 ini direncakanan akan digeser untuk dipakai di mata kuliah teori Elektronika Daya 2. Dengan metode pembelajaran problem based learning, mahasiswa harus merekonstruksi sendiri pengetahuannya tentang penyakelaran BJT NPN dengan PWM. Dengan information literacy yang sudah diajarkan di semester 5 seharusnya mahasiswa yang sungguh-sungguh dalam belajar tidak akan menemui kesulitan untuk dapat memahami. Di Internet telah banyak sumber belajar audio-visual yang bisa dipelajari dan diperbandingkan satu-sama-lain. Papan ini akan membantu memudahkan mahasiswa untuk belajar secara mandiri di ruang laboratorium.

Pembiasaan belajar mandiri ini tidaklah unik. Telah berlaku lama di negara-negara yang maju dalam STEM (science, technology, engineering. and mathematics). Oleh karena itu pula mereka yang lebih siap untuk melakukan transisi ke Revolusi Industri 4.0. Diperkirakan di era ini bidang lapangan pekerjaan untuk tingkat lulusan perguruan tinggi akan mengalami pergeseran dan gangguan. Banyak pekerjaan baru yang muncul, umumnya menuntut kemampuan berpikir, kognitif, yang lebih baik. Pekerjaan rutin untuk level ini akan mulai berkurang. Kecuali lulusan perguruan tinggi (dengan sejumlah besar pengorbanan sumber daya seperti waktu dan biaya) hendak direlakan untuk fokus pada manual labour di level di bawahnya. Pekerjaan fisik berat memang masih akan banyak diperlukan mengingat biaya modal dan operasi robot masih akan lebih mahal dibandingkan dengan tenaga kerja manusia.

Selamat belajar !

[/su_panel] [su_panel border=”3px solid #990066″ radius=”10″]
Sumber belajar:
  • TBA
  • TBA
  • TBA
  • TBA
  • TBA
  • TBA
  • TBA
  • TBA
[/su_panel]

 

Praktik dasar PWM dengan Arduino

[ [ Contoh kode dasar untuk Arduino ] ]

Dalam upaya untuk dapat melakukan percobaan penyakelaran menggunakan PWM dengan baik, sejauh ini sudah ada dua artikel yang disusun untuk memudahkan proses belajar. Yang pertama fokus pada frekuensi, periode, dan duty cycle. Yang kedua lebih fokus pada proses pencarian nilai besaran rata-rata (average) dan rms.

Pembangkitan gelombang PWM dapat dilakukan dengan beberapa cara dan menggunakan beberpa komponen/alat yang berbeda. Di laboratorium beberapa peralatan yang berbeda sudah coba dipraktikkan agar mahasiswa memiliki wawasan lebih dan mampu melakukan evaluasi mengenai trade-off untuk masing-masing alat. Penting juga untuk diingat bahwa dalam proses pembelajaran di perguruan tinggi (baik akademik maupun vokasi), kepraktisan semata bukanlah satu-satunya pertimbangan utama. Ada hal-hal lain yang terkadang lebih penting, berkaitan dengan proses pembentukan sikap, pelatihan kemampuan untuk berpikir kritis, information literacy, dan cara berpikir ilmiah.

Untuk kepentingan pembelajaran, sistem Arduino sangat baik untuk dipakai sebagai sarana untuk memahami PWM (Pulse Width Modulation). Pada sistem ini pengguna dapat mempelajari dari pengaturan yang paling eksplisit sampai ke pengaturan yang otomatis dengan menggunakan pustaka (library).

Menurut saya ada dua cara dalam hal penggunaan Arduino untuk mempelajari PWM. Sebut saja pendekatan educational dan pendekatan practical. Banyak orang (termasuk mahasiswa) cenderung untuk langsung belajar hanya dengan pendekatan praktis. Cara ini sangat tidak menguntungkan, akan mengganggu pengubahan potensi menjadi capaian pembelajaran dengan kedalaman yang baik. Perlu diingat bahwa perguruan tinggi baik akademis maupun vokasi bukanlah lembaga kursus keterampilan. Ada hal-hal yang eksplisit maupun implisit, langsung maupun tidak langsung yang perlu dipelajari untuk memperoleh tingkat pemahaman yang lebih baik. Mengenai pengetahuan praktis (know-how) saat ini sering dapat dipelajari dengan mudah dan singkat dengan bantuan Internet. Beberapa contoh sudah sering diberikan di situs ini dan bahkan nanti di dalam artikel ini sendiri. Baik berupa kutipan, rujukan, maupun tautan (link).

Cara pertama, cara educational menggunakan contoh kode Blink yang telah tersedia sebagai cotoh di Arduino IDE. Pengguna dilatih untuk secara langsung melihat dampak/akibat dari perubahan parameter (variabel) atau bahkan perubahan kode. Cara pengaturan yang ‘eksplisit’ ini memang kurang praktis, baris kode menjadi lebih panjang. [Update] Bahkan akurasinya pun bukan yang paling baik. Tetapi sekali lagi perlu diingat tujuan utama pada lingkungan belajar di perguruan tinggi berbeda dengan di lingkungan produksi. Setelah pemahaman dasar yang cukup bisa diperoleh, setelah nuansa/’feel’ dan attitude yang tepat bisa didapat maka perlihan ke cara lain yang lebih praktis tidak begitu sulit untuk dilakukan.

Cara kedua adalah pendekatan cara produksi. Di bagian “Sumber belajar” di akhir artikel ini sudah saya coba kumpulkan cukup banyak bahan belajar lanjutan. Isinya antara lain pengembangan penggunaan PWM dengan mengacu pada fasilitas dasar yang disediakan oleh sistem Arduino, yaitu dengan memanggil fungsi analogWrite(). Penggunaan fungsi ini untuk mendapatkan sinyal PWM tentu jauh lebuh praktis dari cara pertama, lagi pula cara ini akan membebaskan prosesor untuk melakukan tugas yang lain. [Update] Selain dengan cara mempergunakan fungsi millis(). Namum dalam belajar cara standar ini sebaiknya dipakai setelah mempelajari cara pertama.

Untuk dapat memahami penggunaan cara pertama (modifikasi kode Blink) dengan baik, mahasiswa perlu benar-benar paham tentang frekuensi, periode, dan duty cycle

Kode contoh Blink dapat diperoleh di Arduino IDE dengan mencarinya seperti pada contoh berikut:

Gambar 1. Mencari kode contoh Blink di Arduino IDE

Berikut adalah isi kode asli dari Blink:

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Kode Blink yang asli dibuat untuk demonstrasi kedip LED. Umumnya tiap papan Arduino (semisal Uno atau Nano) telah dilengkapi LED yang dapat dipakai sebagai indikator. Pada Arduino Uno dan Arduino Nano, LED_BUILTIN merupakan konstanta yang mengacu pada Pin 13. Untuk keperluan praktik, pin 13 ini bisa diganti oleh pin lain selama pin pengganti tersebut juga merupakan pin yang memiliki kemampuan untuk mengeluarkan sinyal PWM. Pada gambar Arduino Uno pinout maupun Arduino Nano pinout pin-pin itu ditandai dan ditulis sebagai “PWM pin”.

Pada bagian ini kita bisa memulai secara bertahap melakukan modifikasi kode Blink sehingga bisa sesuai dengan keperluan pembelajaran praktik penyakelaran PWM. Misalnya bisa dipakai untuk pembelajaran praktik penyakelaran Mosfet.

Berikut adalah kode modifikasi pertama untuk Arduino Blink:

/*
	Kode modifikasi penyakelaran Mosfet dengan PWM
*/

// const uint8_t MOSFET_PWM = 3;
const byte MOSFET_PWM = 3;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin xxx as an output.
  pinMode(MOSFET_PWM, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(MOSFET_PWM, HIGH);  
  // delay(500);
  delayMicroseconds(500);         
  digitalWrite(MOSFET_PWM, LOW);   
  // delay(500);
  delayMicroseconds(500);        
}

Pada kode di atas, di baris 6 saya telah mempergunakan konstanta baru yaitu MOSFET_PWM. Penamaan ini bebas sepanjang mematuhi pengaturan dari tata cara kode oleh Arduino. Untuk penundaan (delay) terdapat dua pilihan, yaitu delay() dan delayMicroseconds(). Pendundaan yang pertama berlangsung dalam orde millisecond sedangkan yang kedua dalam orde microsecond. Penundaan yang kedua dipakai jika anda perlu untuk menghasilkan PWM dalam frekuensi yang lebih tinggi. Artinya periode satu siklus penuh sinyal akan semakin singkat.

Salah satu kelemahan cara ini adalah bahwa akan ada timing verhead, ada waktu yang dihabiskan untuk menjalankan kode beralih dari satu loop ke loop lain. Pada tahap mula belajar, ketidakakuratan ini gampang untuk diabaikan. Tetapi pada kode produksi, cara lain yang lebih baik perlu dilakukan/dipilih.

Kode kemudian bisa disimulasikan dengan UnoArdusim, sebuah simulator Arduino Uno yang bisa dipakai dengan bebas kerena secarala legal memang gratis. Sekadar agar tampilannya bisa dilihat dengan mudah maka pada simulasi waktu penundaan diganti menjadi lebih lama.

Gambar 2.  Simulasi dengan UnoArdusim

Berikut ini adalah capture simulasi untuk penundaan sebesar 50 ms.

Gambar 3.  PWM 50%, 50 ms, pin 3

Setelah berhasil melakukan simulasi dengan software berikutnya kita bisa melakukan simulasi dengan hardware. Bergantung pada beberapa faktor, dalam engineering (kerekayasaan) orang sering perlu melakukan simulasi dengan software terlebih dahulu bahkan sebelum mencobanya dengan prototype perangkat keras. Meskipun sepertinya ‘bertele-tele’ dan menyulitkan, langkah sistematis ini justru seringkali menyelamatkan dan menghindarkan banyak kesulitan yang tidak perlu.

Untuk bisa mempergunakan perangkat keras Arduino dengan aman, ada baiknya memperhatikan ilustrasi sistem Arduino Uno dan Arduino Nano berikut:

Gambar 4. Arduino Uno pinpout

Gambar 5. Arduino Nano pinout

 

Pengujian dengan perangkat keras

Pengujian dengan perangkat keras Arduino dilakukan dengan bantuan logic analyzer dan oscilloscope. Kedua instrumen itu memungkinkan kita untuk lebih mudah melihat aksi ON/OFF dari pin Arduino bahkan untuk rentang waktu yang sangat singkat.

Gambar 6. Pengujian dengan perangkat keras

Modifikasi kode untuk contoh penyakelaran yang lebih cepat.

/*
	Kode modifikasi penyakelaran Mosfet dengan PWM
*/

// const uint8_t MOSFET_PWM = 3;
const byte MOSFET_PWM = 3;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin xxx as an output.
  pinMode(MOSFET_PWM, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(MOSFET_PWM, HIGH);  
  // delay(500);
  delayMicroseconds(50);         
  digitalWrite(MOSFET_PWM, LOW);   
  // delay(500);
  delayMicroseconds(50);      
}

Hasilnya akan terlihat seperti berikut di logic analyzer:

Gambar 7. Hasil pengujian untuk penggaturan penundaan 50 μs

Gambar 8. Setup pengujian dengan oscillocope 100 MHz, 1 GSa/s

Gambar 9. Hasil pengukuran dengan oscilloscope

Dengan memberikan penundaan sebesar 50 μs saat rentang ON dan 50 μs saat rentang OFF, sepintas kita bisa berharap akan mendapatkan periode sebesar 100 μs (0,100 ms). Ini artinya gelombang itu akan memiliki frekuensi sebesar 10 kHz dengan duty cycle sebesar 50 %. Tetapi kalau melihat pada Gambar 7, frekuensi gelombang yang diukur tidak memiliki frekuensi setinggi 10 kHz, tetapi hanya 9,44 kHz (karena periodenya sebesar 0,1059 ms). Hal seperti ini dapat kita gunakan untuk berlatih penalaran dan penyusunan hipotesis.

Dugaan pertama adalah selisih terjadi karena keterbatasan kemampuan alat ukut logic analyzer yang dipakai. Dugaan kedua adalah karena memang gelombang penyakelaran yang dihasilkan oleh papan Arduino memang tidak secepat yang diharapkan. Untuk lebih mempersempit jumlah dugaan akan kemungkinan penyebab dan untuk melakukan pembuktian, diperlukan alat ukur yang berbeda dan diusahakan lebih baik dari yang dipakai sebelumnya.

Saya mempergunakan oscilloscope seperti pada Gambar 8 untuk mengukur sinyal yang sama. Hasilnya terlihat pada Gambar 9, frekuensi yang diukur juga tidak mencapai 10 kHz (periode 100 μs atau 0,10 ms). Sampai di sini, sudah patut diduga bahwa letak masalahnya bukan pada kedua alat ukur (meskipun kemungkinan itu memang masih ada). Kemungkinan terbesarnya ada pada papan Arduino itu sendiri.

Apakah yang menyebabkan papan/sistem Arduino tidak mampu membangkitkan penyakelaran hingga mencapai 10 kHz? Ada beberapa kemungkinan, tetapi untuk contoh ini sebenarnya mudah ditelusuri (salah satu) faktor yang menyebabkan. Cek fakta, lihat kembali ke kode program. Sekalipun memang benar penundaan untuk pulse width adalah sebesar 50 μs tetapi jangan dilupakan di sana terdapat baris-baris kode lain yang perlu dieksekusi oleh mikrokontroler. Kode-kode ini dalam dialek bahasa C memerlukan waktu untuk juga dieksekusi. Terlebih lagi untuk high-level language, waktu yang diperlukan umumnya lebih lama daripada bahasa rakitan (assembly). Hal semacam ini sering disebut sebagai overhead time.

Sudah sering disampaikan bahwa di engineering (rekayasa), pada banyak keadaan dengan kedalaman yang berbeda-beda, selalu diperlukan apa yang disebut sebagai model. Ini adalah wakil dari kondisi yang sebenarnya, dan tentu saja tidak sama persis dengan aslinya. Pemodelan ini membawa pada konsep lain, yaitu approximation. Untuk banyak hal, sistem fisik di alam semesta ini, hanya dapat ditangani dengan aproksimasi atau pendekatan. Misalnya suatu model diode tidak perlu harus sama persis dengan diode yang sesungguhnya. Ada hal-hal, ada aspek-aspek tertentu yang bisa diabaikan. Pengabaikan ini pun diatur/dilakukan dalam beberapa tingkat, sesuai keperluan kedalaman informasi.

Prinsip yang sama juga berlaku pada contoh kode program di atas ini. Penyakelaran dengan sinyal sebesar 10 kHz (periode 0,10 ms) dan duty cycle sebesar 50 % adalah pendekatan/aproksimasi (approximation).

Sebagaimana yang telah diulas di awal artikel, cara educational seperti ini sengaja dipilih untuk mengawali pembelajaran dan untuk awal praktik di laboratorium agar mahasiswa bisa melatih penalarannya dengan lebih baik. Juga berkenalan dengan ketidakidealan sistem perangkat lunak dan perangkat keras.

 

Langkah berikutnya bandingkan antara penyakelaran dengan cara educational yang telah dicoba sebelumnya dengan penggunaan fungsi analogWrite() pada pin 3.

Variasi kode yang ketiga:

/*
	Kode modifikasi penyakelaran Mosfet dengan PWM
*/

// const uint8_t MOSFET_PWM = 3;
const byte MOSFET_PWM = 3;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin xxx as an output.
  pinMode(MOSFET_PWM, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(MOSFET_PWM, HIGH);  
  // delay(500);
  delayMicroseconds(150);         
  digitalWrite(MOSFET_PWM, LOW);   
  // delay(500);
  delayMicroseconds(1870);     
}

Gambar 10. Pengukuran penyakelaran pin 3 dari variasi kode yang ketiga

Variasi kode yang keempat:

/*

Uji coba PWM


*/

#define PWM_PIN_A 3

const uint8_t pwmValue01 = 20;


void setup(void){
	pinMode(PWM_PIN_A, OUTPUT);
}


void loop(void){
	analogWrite(PWM_PIN_A, pwmValue01);
}

Gambar 11. Pengukuran penyakelaran pin 3 dari variasi kode yang keempat

Gambar 11 adalah hasil pengukuran terhadap variasi kode yang keempat, yang merupakan ‘kode produksi’. Cara ini lebih banyak akan dipergunakan saat pengembangan sistem yang praktikal daripada cara educational sebelumnya. Cara ini lebih singkat dalam penulisan kode program dan membebaskan mikrokontroler untuk dapat melakukan hal lain selain menunggu habisnya waktu tunda pada kode.

Pada Arduino Uno dan Arduino Nano terdafat dua frekuensi PWM secara default. Yang pertama adalah 490 Hz dan dan yang kedua 980 Hz (pin 5 dan pin 6). Kedua frekuensi ini berdasarkan pengaturan produsen dan tidak mudah untuk diubah. Cara pengubahan nilai frekuensi PWM ini dapat dicari di bagian link di akhir artikel.

Gambar 10 adalah hasil pengukuran pada pembangkitan PWM dengan menggunakan variasi kode yang ketiga. Bisa dilihat bahwa dengan cara ini pengguna dapat mendekati nilai frekuensi default Arduino (490 Hz) dan duty cycle yang hampir sama. Waku penundaan untuk tetap ON adalah sebesar 150 μs dan penundaan untuk tetap OFF sebesar 1870 μs. Jika saja waktu yang dipakai untuk semua kode lain dapat diabaikan, maka duty cycle akan sebesar 7,426 %. Ada pun hasil pengukuran pada pin 3 dengan logic analyzer menunjukkan duty cycle sebesar 7,502 %.

Pada kode variasi yang keempat, nilai 20 dari 256 (8-bit) menunjukkan perbandingan 7,813 %. Pada Gambar 11, nilai duty cycle terukur dan terhitung sebesar 7,845 %. Bandingkan hasil ini dengan hasil dari variasi kode yang ketiga.

Sampai di sini anda seharusnya sudah bisa menentukan nilai duty cycle, periode dan frekuensi berdasarkan nilai penundaan yang diberikan pada kode program variasi yang ketiga di atas. Jika masih ada kebingungan atau ada yang terlupakan, silakan baca kembali artikel di link ini. Nah bisakah anda melakukan hal yang sebaliknya? Jika anda diberikan sebuah nilai frekuensi dan sebuah nilai duty cycle, bisakah anda menentukan nilai masing-masing penundaan di kode program ‘variasi kode yang ketiga’?

 

Lihatlah kode program yang telah di-capture berikut ini, dapatkah anda memahaminya?

Gambar 12. Kode program pengembangan, variasi kelima

Gambar 13. Hasil pengukuran logic analyzer terhadap kerja kode variasi kelima

Gambar 14. Keluaran komunikasi serial

Anda bisa mengubah-ubah kode variasi kelima dan melakukan modifikasi yang sesuai untuk pembelajaran anda.

 

Kode dasar variasi ketiga ini dipakai untuk melakukan eksperimen pada praktikum penyakelaran Mosfet. Pada dasarnya variasi-variasi kode program ini dapat dipakai untuk penyakelaran BJT, Mosfet, IGBT, SCR, TRIAC, LED, dan komponen lain dengan rangkaian yang sesuai.

 

[intense_tabs direction=”right” active_tab_background_color=”#000000″ active_tab_font_color=”#ffff00″ trigger=”click”] [intense_tab title=”Video01″ border=”3px solid #e8e8e8″ link_target=”_self” content_background_color=”#000000″ content_font_color=”#ffffff” icon_size=”1″ icon_position=”left”]

[/intense_tab] [intense_tab title=”Video02″ border=”3px solid #e8e8e8″ link_target=”_self” icon_size=”1″ content_background_color=”#000000″ content_font_color=”#ffffff” icon_position=”left”]

[/intense_tab] [intense_tab title=”Video03″ border=”3px solid #e8e8e8″ link_target=”_self” icon_size=”1″ content_background_color=”#000000″ content_font_color=”#ffffff” icon_position=”left”]

[/intense_tab] [intense_tab title=”Video04″ border=”3px solid #e8e8e8″ link_target=”_self” icon_size=”1″ content_background_color=”#000000″ content_font_color=”#ffffff” icon_position=”left”]

[/intense_tab] [intense_tab title=”Video05″ border=”3px solid #e8e8e8″ link_target=”_self” icon_size=”1″ content_background_color=”#000000″ content_font_color=”#ffffff” icon_position=”left”]

[/intense_tab] [intense_tab title=”Video06″ border=”3px solid #e8e8e8″ link_target=”_self” icon_size=”1″ content_background_color=”#000000″ content_font_color=”#ffffff” icon_position=”left”]

[/intense_tab] [intense_tab title=”Video07″ border=”3px solid #e8e8e8″ link_target=”_self” icon_size=”1″ content_background_color=”#000000″ content_font_color=”#ffffff” icon_position=”left”]

[/intense_tab] [/intense_tabs]

 

Sumber belajar:

 

Save

PWM, average & rms

Motivasi

Pada artikel sebelumnya, telah dikumpulkan alur belajar tentang frekuensi, periode, duty cycle, dan PWM. Di artikel itu diharapkan sudah dapat terselesaikan permasalahan tentang pengukuran dan pengaturan waktu pada sinyal PWM.

Di instrumen oscilloscope hasil pengukuran rentang waktu yang berlalu ditampilkan pada sumbu horizontal. Pengaturan tampilan dilakukan dengan manipulasi pada knob time/div.

Langkah berikutnya adalah menentukan besar nilai sinyal. Bisa berupa nilai arus atau yang lebih sering adalah nilai tegangan. Di oscilloscope besar sinyal diukur pada sumbu vertikal. Pengaturan tampilan dilakukan dengan memanipulasi knob volt/div.

Dapatkah anda menghitung dan memahami nilai pengukuran dari simulasi pada Tina-TI di Gambar 1?


Gambar 1. [ Klik gambar untuk memperbesar tampilan ]

 Rectangular, Square, Pulse train 

Pengukuran besar sinyal tidak hanya memerlukan pengetahuan tentang besar nilai (absolut), tetapi juga memerlukan pengetahuan tentang bentuk gelombang dan polaritas.

Ada beberapa istilah yang bisa menimbulkan kebingungan, misalnya:

Rectangular wave, square wave, unidirectional waveforms, bidirectional waveforms, alernating waveforms, pulse, pulse train.

Penyebutan nama gelombang biasanya juga berdasar pada tipenya secara matematis.

Image result for Square and Rectangle difference.wiki"

Gambar di atas ini mungkin akan dapat cepat mengingatkan kita akan perbedaan keduanya.

Kata rectangle dapat ditermahkan menjadi segi empat atau (yang lebih tepat) persegi panjang. Berikut ini ilustrasi yang diambil dari Wikipedia:

Rectangle Geometry Vector.svg

Sedangkan segi empat yang sama sisi disebut sebagai square. Biasa diterjemahkan sebagai persegi atau (yang lebih umum) bujur sangkar. Berikut adalah gambar dari Urban Dictionary:

Image result for

Sudahkah menjadi jelas perbedaan antara square dengan rectangle? Jika belum, lihatlah gambar yang diperoleh dari Quora berikut ini:

Dalam bahasa Indonesia, kadang-kadang beberapa penyebutan berbeda mengacu pada geometri yang sama.

Silakan baca artikel menarik dengan penjelasan rinci dari mikirbae yang salah satu gambarnya saya kutip sebagai berikut:

aneka bangun datar

Juga penjelasan dan contoh soal dari situs “ukuran dan satuan“:

Istilah atau kata kotak sendiri memiliki konsekuensi adanya volume. Tetapi kata ini sering dipergunakan untuk menggambarkan sesuatu yang memiliki bentuk dua dimensi seperti persegi/bujur sangkar dan persegi panjang. Maka sering ditemui istilah ‘gelombang kotak’.

Setelah menyegarkan kembali ingatan tentang persamaan dan perbedaan antara square (persegi atau bujur sangkar) dengan rectangle (segi empat atau persegi panjang), kita bisa melanjutkan ke penerapannya pada penamaan gelombang.

Penamaan ‘gelombang kotak’ dapat menimbulkan kerancuan jika tidak diperhatikan dan dipilah dengan baik. Untuk itu setelah frekuensi dan periode dibahas di artikel sebelumnya, kali ini kita lanjutkan dulu pembahasan mengenai penamaan gelombang berdasarkan lebar pulsanya (pulse width) baru kemudian mempelajari mengenai polaritas sinyal.


Gambar 2. [ Klik gambar untuk memperbesar tampilan ]

Gambar 3. [ Klik gambar untuk memperbesar tampilan ]

Gambar 2 yang diperoleh dari Wikipedia memperlihatkan perbandingan antara square wave dengan bentuk gelombang yang lain. Abaikan terlebih dahulu amplitudo dan polaritas gelombang. Perhatikan dulu lebar pulsanya (pulse width), perbandingan antara waktu ON (high) terhadap waktu OFF (low).

Gambar 3, yang juga diperoleh dari Wikipedia menunjukkan gelombang yang dinamakan sebagai rectangular wave atau pulse wave atau pulse train. Bisa dilihat bahwa lebar pulsa tidak lagi 50 %, meskipun bentuknya sama-sama menyerupai ‘kotak’.

Dikatakan juga bahwa square wave (gelombang persegi atau bujur sangkar) merupakan ‘kasus khusus’ dari rectangular wave. Yaitu suatu rectangular wave yang memiliki duty cycle sebesar 50 %.

Setelah memahami persamaan dan perbedaan antara square wave dengan rectangular wave berdasarkan lebar pulsa (pulse width) arau duty cycle, berikutnya kita akan melihatnya dari sisi polaritas sinyal.

Suatu sinyal (signal) dikatakan memiliki polaritas yang berbalik (alternate) jika amplitudonya berubah/berpindah dari positif ke negatif, atau sebaliknya. Bisa juga disebut sebagai bidirectional waveforms atau alernating waveforms.

Sinyal yang tidak pernah mengalami perubahan polaritas disebut sebagai unidirectional waveforms. Baik square wave maupun rectangular wave (selain square wave) dapat merupakan sinyal  yang unidirectional maupun bidirectional/alternating/bipolar.


Gambar 4. [ Klik gambar untuk memperbesar tampilan ]

Gambar 4 diperoleh dari situs produsen instrumen elektronik Tektronix. Pada gambar itu baik square wave maupun rectangular wave merupakan alternating wave/bidirectional wave/bipolar. Berbeda dengan Gambar 3 yang menunjukkan rectangular wave yang unipolar.

Pemahaman ini penting karena kadang-kadang ditemui keterangan/gambar yang hanya menyampaikan kombinasi yang tidak lengkap. Misalnya pada Gambar 5 berikut ini yang diperoleh dari situs yang sangat bagus dalam membahas ilmu elektrikal milik James Irvine. Pada tabel di Gambar 5 di bawah ini square wave yang ditampilkan merupkan gelombang yang alternating wave/bipolar wave/bidirectional wave. Sedangkan rectangular wave yang ditampilkan adalah unidirectional wave. Yaitu gelombang yang nilainya positif saat high, dan akan bernilai 0 saat low.


Gambar 5. [ Klik gambar untuk memperbesar tampilan ]

 Unidirection Rectangular Wave 

Untuk memudahkan pembahasan, kita mengikuti filosofi bahwa sebaiknya kita belajar dengan sesuatu yang sederhana terlebih dahulu. Setelah bentuk yang sederhana dipahami barulah secara bertahap kita dapat menambah kompleksitas bahan belajar. Untuk itu, dalam belajar melakukan perhitungan amplitudo gelombang kotak (square wave/rectangular wave), kita sebaiknya mulai dari tipe unidirectional wave. Sinyal yang akan dihitung hanya berada dalam satu polaritas saja yaitu wilayah positif. Pada keadaan terendahnya sinyal ini akan bernilai 0 (nol) volt atau 0 (nol) ampere.


Gambar 6. [ Klik gambar untuk memperbesar tampilan ]

Dapatkah anda menghitung nilai average (rata-rata) dan rms pada Gambar 6, yang merupakan hasil simulasi dengan Tina-TI, di atas?

Gelombang pada Gambar 6 adalah square wave, yaitu sinyal PWM rectangular wave yang memilki duty cycle sebesar 50 %. Lebar pulsa, pulse width atau positive pulse width sebesar 10 ms. Periode untuk satu siklus penuh adalah 20 ms. Tegangan maksimum pada saat ON (high) adalah 5 V, sedangkan tegangan minimum saat OFF (low) adalah sebesar 0 V.

Persamaan berikut dipakai untuk mencari nilai rata-rata (average):

Untuk sinyal pada Gambar 6, perhitungan akan seperti ini:

Untuk mencari nilai rms (root-mean-square) dari gelombang kotak persegi (square wave) dapat dipakai persamaan berikut:

Untuk sinyal pada Gambar 6, akan didapat hasil:

Kedua perhitungan itu sebenarnya sama, tetapi berbeda cara dalam menyatakan pemisahan nilai desimal. Yang satu menggunakan ‘koma’ dengan tanda koma (,) sedang yang lain menggunakan tanda titik (.) untuk ‘koma’ (pemisah nilai desimal).


Gambar 7. [ Klik gambar untuk memperbesar tampilan ]

Pada Gambar 7, dapat dilihat gelombang kotak yang merupakan rectangular wave. Yaitu pulse train dari PWM yang duty cycle-nya tidak bernilai 50 %. Nilai pulse width (pulse active time) sebesar 5 ms, sedangkan nilai negative pulse width sebesar 15 ms, sehingga nilai periode sebesar 20 ms.

Pada bentuk sinyal seperti ini, nilai rata-rata (misalnya tegangan rata-rata) dapat dihitung dengan persamaan berikut:

Untuk Gambar 7, hasil perhitungan akan seperti ini:

Anda mungkin memperhatikan bahwa sekalipun hasilnya berbeda, tetapi persamaan untuk mencari nilai rata-rata pada Gambar 7 sama dengan persamaan rata-rata pada Gambar 6.  Bedanya pada square wave nilai positive pulse width selalu setengah dari besar nilai periode.

Untuk mencari nilai rms pada rectangular wave seperti pada Gambar 7 dipergunakan persamaan berikut:

Persamaan ini juga dapat dipergunakan pada unidirectionial square wave karena gelombang itu merupakan kasus khusus dari unidirectional rectangular wave.

Hasil perhitungan untuk Gambar 7 akan seperti ini:

 Bidirection Rectangular Wave 

Pada percobaan dasar di laboratorium elektronika daya, umumnya yang dipergunakan adalah unidirectionial wave. Tetapi kadang-kadang kita akan menemui gelombang yang bipolar, memiliki nilai positif dan negatif. Seperti simulasi dengan Multisim Live pada Gambar 8 berikut ini.


Gambar 8. [ Klik gambar untuk memperbesar tampilan ]

Gambar 9. [ Klik gambar untuk memperbesar tampilan ]

Gambar 10. [ Klik gambar untuk memperbesar tampilan ]

Untuk mempermudah belajar kita akan mencari contoh yang mudah untuk dipahami. Saya menemukan contoh yang bagus untuk dijadikan bahan belajar untuk menentukan nilai rata-rata bipolar/bidirectional rectangular wave. Gambar 9 adalah visualisasi dengan simulasi LTspice dari contoh perhitungan yang saya capture dan tampilkan pada Gambar 10. Kuncinya adalah perthitungan integral (jumlah) dari keseluruhan nilai amplitudo sinyal (misalnya tegangan) untuk seluruh rentang periode dibagi dengan periode. Pada kedua gambar dapat dilihat bahwa nilai rata-rata sama dengan 1,8 V.

Untuk mencari nilai rms pada Gambar 9 di atas (klik Gambar 9 untuk memperbesar tampilan), maka diperlukan persamaan sebagai berikut:

Pada contoh Gambar 9 hasil perhitungannya akan sama dengan hasil simulasi, yaitu:

Bagaimana dengan rectangular wave yang memiliki postur simetris seperti pada Gambar 8 di atas? Kita dapat melakukan simulasi kembali dengan LTspice seperti pada Gambar 11.


Gambar 11. [ Klik gambar untuk memperbesar tampilan ]

Hasil simulasi LTspice pada Gambar 11 dapat dibandingkan dengan perhitungan manual. Perhitungan untuk nilai rata-rata dapat menggunakan persamaan yang sama seperti pada Gambar 10. Baik hasil perhitungan maupun penalaran sederhana akan menghasilkan nilai yang sama, yaitu 0 (nol). Luas wilayah positif sama persis dengan luas wilayah negatif, karena itu nilai rata-ratanya sama dengan nol.

Adapun hasil pada Gambar 11 yaitu 9,1667 nV merupakan ketidakidealan yang dapat diabaikan dan diartikan sama dengan nol untuk gelombang ideal. Pengukuran pada sistem fisik juga akan memberikan nilai yang hampir selalu tidak ideal. Baik karena bentuk sinyal/gelombangnya ataupun karena akurasi & resolusi sistem alat ukurnya.

Pada Gambar 11 di atas pula bisa kita lihat nilai rms yaitu sebesar 5 V. Memang untuk bidirectional square wave/bipolar pulse waveform seperti itu, nilai rms selalu sama dengan nilai puncaknya.

Jika tertarik untuk lebih lanjut mempelajari tentang perhitungan rectangular wave/square wave baik yang unidirectional maupun yang alternating / bipolar / bidirectional, dapat membaca dua artikel berikut:

  1. How to derive the rms value of pulse and square waveforms
  2. RMS of A Square Pulse Train – John Dunn, Consultant, Ambertec, P.E., P.C.

 TEXT: 

  1. Square [Wikipedia]
  2. Square [Math is fun]
  3. Square [Britannica]
  4. Difference Between Square vs. Rectangle
  5. Rectangle [Wikipedia]
  6. Theorems about Quadrilaterals
  7. rectangle
  8. What is the difference between a square and a rectangle?
  9. Jenis dan Sifat Segiempat
  10. Berapa Jumlah Besaran Sudut dalam Suatu Bidang Segi Empat?
  11. Electropedia
  12. A Dictionary of Electronics and Electrical Engineering (5 ed.)
  13. KBBI Daring
  14. Frequency [Wikipedia]
  15. What is frequency?
  16. Frequency [earthguide]
  17. Wave Variables [Texas Gateway]
  18. Square pulse train [electropedia]
  19. Electrical Waveforms
  20. Square wave [Wikipedia]
  21. Pulse wave [Wikipedia]
  22. Square Wave
  23. Tutorial 2 – Waveforms
  24. How to derive the rms value of pulse and square waveforms
  25. RMS of A Square Pulse Train – John Dunn, Consultant, Ambertec, P.E., P.C.
  26. Waveform and Signal Analysis
  27. What is duty cycle?
  28. Pulse Width Modulation
  29. Duty cycle [Wikipedia]
  30. Laureate Duty Cycle & Pulse Width Modulation (PWM) Meter
  31. analogWrite()
  32. Secrets of Arduino PWM
  33. Arduino-PWM-Frequency
  34. What is a Pulse Width Modulation (PWM) Signal and What is it Used For?
  35. Pulse Width Modulation
  36. Pulse-width modulation [Wikipedia]
  37. Pulse Width Modulation
  38. PWM
  39. Pulse Width Modulation [Sparkfun]
  40. What is PWM (Pulse Width Modulation)?
  41. Basic – Pulse Width Modulation (Pwm)
  42. Introduction to Pulse Width Modulation
  43. PWM – Pulse Width Modulation Tutorial | CCP Module
  44. Pulse width modulation (PWM) components
  45. Pulse Width Modulation (PWM) [Comlab]
  46. Frequency-controlled induction motor drive systems

Frekuensi, Duty Cycle, PWM

Motivasi

Di ilmu elektronika daya (power electronics) terdapat tiga komponen yang lazim dipelajari untuk penyakelaran di sistem DC (direct current). Ketiganya adalah BJT, MOSFET, dan IGBT. Untuk dapat mempelajari dasar operasi penyakelaran ketiga komponen itu kita perlu mengerti beberapa hal mendasar. Hal-hal seperti frekuensi (frequency), periode (period), gelombang kotak (square wave/rectangular wave), pulsa (pulse), PWM (Pulse Width Modulation), rata-rata/rerata (average), dan RMS (Root-Mean-Square).

Saya amati, kesulitan utama beberapa mahasiswa dalam mempelajari dasar-dasar penyakelaran di elektronika daya adalah karena kurangnya kemauan membaca. Terutama membaca ulang bahan-bahan yang sudah disediakan. Padahal di dunia modern di era kemudahan telekomunikasi data saat ini, membaca adalah salah satu bagian penting dari proses pembelajaran. Membaca, melihat/menyimak/menonton, mendengar, dan mencoba adalah bagian penting dari proses pembelajaran. Juga bagian pertama dari tahapan ATM (Amati-Tiru-Modifikasi).

Tulisan ini dimaksudkan menjadi awalan dalam bagian proses keperluan dan kewajiban mahasiswa untuk membandingkan dan menyerap informasi yang sudah sangat banyak tersedia di Internet. Informasi yang dapat dieroleh secara murah (bahkan jika saat itu sedang dapat menggunakan jaringan wifi kampus, menjadi gratis). Jika pokok bahasan dalam artikel ini tidak dapat dipahami, maka praktik di laboratorium bisa dipastikan tidak dapat berlangsung dengan baik.


 Frekuensi 

Sebagai awalan, perlu terlebih dahulu dipahami tentang istilah frekuensi. Apakah frekuensi (frequency) dan periode (period) itu?





Selain dari definisi-definisi yang telah saya kutip di atas, anda juga dapat mengetahui definisi dari persamaan sederhana seperti kutipan (screenshots) di bawah ini.


Perhitungan konversi dari frekuensi ke periode, dan sebaliknya tidaklah rumit. Dapat dilakukan dengan kalkulator sederhana, jika diperlukan. Tetapi jika diinginkan, sudah terdapat cukup banyak app (aplikasi) di Android yang juga dapat melakukan perhitungan, seperti contoh di bawah ini.


Gelombang Sinus 

Untuk memahami frekuensi dan periode, salah satu cara yang paling mudah adalah dengan menggunakan gelombang sinus (sine wave).  Ini dikarenakan bentuk gelombang ini sudah sering diperkenalkan. Baik karena merupakan gelombang fundamental, maupun terlebih lagi pada dasarnya inilah bentuk gelombang listrik dari PLN.  Walaupun sebenarnya bisa dibahas lebih lanjut mengapa gelombang jala-jala PLN (transmisi dan distribusi) umumnya berbentuk sinus, tetapi itu untuk bahasan yang berbeda.


Gambar 1 [ Klik gambar untuk memperbesar tampilan ]

Gambar 1 adalah contoh simulasi dari suatu sumber tegangan gelombang sinus. Gambar bisa diklik untuk mendapatkan tampilan yang lebih besar dan jelas. Bisa dilihat bahwa selisih antara kursor 2 dengan kursor 1 adalah 19,981 ms (mendekati 20,000 ms). Selisih ini akibat dari resolusi dan pengaturan posisi kursor. Bisa dilihat bahwa kedua kursor tidak memotong persis tepat di garis 0 V.

Gambar 2 di bawah ini adalah gambar untuk sumber yang sama persis dengan Gambar 1. Tetapi alat ukur diganti dengan yang lebih menyerupai kerja dan tampilan dari oscilloscope sesungguhnya. Software simulator Multisim memang memiliki fasilitas seperti ini.

Secara sederhana untuk gelombang sinus seperti ini satu periode digambarkan sebagai satu ‘bukit’ dan satu ‘gelombang’. Meskipun pengukuran bisa dilakukan dari dua titik lain. Misalnya dari ‘titik’ puncak ke ‘titik’ puncak lain. Bisa juga dari satu ‘titik’ terendah di lembah ke ‘titik’ terendah di lembah lain.

Dapat dilihat bahwa periode gelombang sesungguhnya masih sama, yaitu 20 ms. Hal ini karenanya frekuensi dari gelombang adalah 50 Hz.


Gambar 2 [ Klik gambar untuk memperbesar tampilan ]

Gambar 3 [ Klik gambar untuk memperbesar tampilan ]

Sebagai tambahan yang penting, lihatlah Gambar 3. Tampilannya seolah-olah menunjukkan bahwa gelombang masukan hanya berupa sinyal datar. Padahal sebenarnya input berupa gelombang sinus 50 Hz.

Kesalahan seperti ini sering terjadi di lab, saat praktikum. Pengetahuan tentang frekuensi, periode dan pengaturan time/div masih sering diabaikan, akibatnya sangat mudah dilupakan.

Gambar 2 dan Gambar 3 sebenarnya memiliki masukan yang sama. Bedanya pada Gambar 2 nilai time/div adalah 5 ms. Artinya satu kotak (besar) di layar oscilloscope itu sebanding dengan rentang waktu 5 ms. Dengan pengaturan seperti ini, sinyal yang memiliki periode 20 ms (50 Hz) akan lebih mudah terlihat secara utuh. Sedangkan pada Gambar 3 terlihat bahwa pengaturan time/div adalah 2 μS (M 2 μS). Pengaturan ini nilainya terlalu kecil, efeknya gelombang terlalu di-zoomoverzoomed (over zoomed).

Analogi/perumpamaannya adalah seperti jika anda melihat mobil roda empat dengan jarak terlalu dekat, anda mungkin hanya melihat pintunya saja. Bahkan mungkin hanya akan dapat melihat bagian kecil dari pintu mobil itu.

Untuk menghindari hal serupa ini, akan sangat membantu kalau anda dapat mengetahui berapa nilai nominal frekuansi masukan. Atau setidaknya dapat menduga kisaran frekuensi/periode dari gelombang yang hendak diukur. Kalau sama sekali tidak memiliki dugaan kuat, maka kadang-kadang perlu malakukan percobaan perubahan nilai time/div dengan cara memperbesar dan kemudian lalu memperkecil nilainya.


 

Gelombang Kotak 

Sebelum melanjutkan membaca halaman ini, saran saya, bukalah beberapa tautan (link) berikut ini. Setidaknya lihat gambar/grafik yang baik di situs-situs ini. Gambar akan memudahkan kita memahami tentang sinyal gelombang kotak:

  1. www.electronics-tutorials.ws : Electrical Waveforms
  2. Tutorial 2 – Waveforms
  3. How to derive the rms value of pulse and square waveforms

Setelah membuka dan membaca ketiga link di atas, maka kita bisa melanjutkan ke langkah berikutnya.


Gambar 4 [ Klik gambar untuk memperbesar tampilan ]

Gambar 5 [ Klik gambar untuk memperbesar tampilan ]

Gambar 4 adalah simulasi gelombang kotak (pulse) yang dilakukan di PartSim (www.partsim.com). Simulasi seperti ini tentu dapat juga dilakukan di Multisim, seperti sebelumnya. Namun kita kali ini  menggunakan simulator yang gratis bebas pakai. Untuk menggunakannya tidak perlu proses instalasi program tetapi cukup akses Internet dan browser seperti Google Chrome. 

Gambar 5 adalah tampilan hasil dari simulasi. Telah diketahui sebelumnya dari Gambar 4 bahwa periode gelombang adalah 2 ms. Artinya, frekuensi dapat dihitung dan menghasilkan nilai frekuensi sebesar 500 Hz. Pada Gambar 5, penanda poin 1 menunjuk pada awal pengukuran salah satu periode, yaitu pada 0 second. Poin 2 menunjuk pada 2 ms. Gelombang ini periodik, terus berulang dengan nilai yang sama, Khusus untuk tampilan ini, diperlihatkan terakhir dari 8 ms sampai 10 ms. Tentu saja gelombang sebenarnya masih terus berlangsung setelah batas itu, hanya saja tidak diperlihatkan pada tampilan hasil simulasi.

Sebagai tambahan, Gambar 5 menunjukkan juga bahwa pulse berlangsung di antara dua nilai tegangan yaitu antara 0 V dan 5 V.  Gelombang juga merupakan sinyal yang memiliki duty cycle sebesar 50 %.

Apakah yang dimaksud dengan duty cycle itu?


Gambar 6 [ Klik gambar untuk memperbesar tampilan ]

Gambar 7 [ Klik gambar untuk memperbesar tampilan ]

Gambar 6 dan Gambar 7 berasal dari web site perusahaan peralatan instrumen elektrikal dan elektronik, Fluke.  Silakan mengunjungi situs itu untuk membaca keterangan yang menarik mengenai pulse width dan duty cycle.

Secara sederhana yang dimaksud dengan istilah pulse width untuk keperluan ini adalah waktu ON (aktif). Seperti yang diperlihatkan pada Gambar 6, rentang waktu OFF tidak dihitung sebagai pulse width.

Sebagai wawasan, penting untuk diketahui bahwa tidak semua sumber informasi menyatakan hal yang persis sama. Untuk itu perlu pengetahuan dan kewaspadaan untuk memahami apa yang sebenarnya yang dimaksud oleh para penulis. Sehingga kita bisa mengelompokkan tipe/jenis informasi.

Misalnya , pengertian mengenai pulse width di paragraf sebelumnya mengacu pada apa yang dikutip oleh Fluke. Tetapi perlu diketahui bahwa tidak semua menyatakan hal yang sama persis. Salah satunya adalah bagaimana situs www.electronics-tutorials.ws menyatakan satu siklus penuh pulsa (satu periode) sebagai berikut.

rectangular waveform

Pertama, mudah dilihat bahwa terdapat istilah Positive Half dan Negative Half. Meskipun sebenarnya tidak satu pun yang berada di wilayah polaritas negatif. Tetapi ini bahasan untuk lain waktu di lain artikel. Kedua, yang terpenting untuk artikel ini adalah tentang lebar pulsa.

Pada situs itu disebutkan istilah positive pulse width (yang kadang disebut sebagai Mark) dan negative pulse width (juga disebut sebagai Space). Ini tentu bebeda dengan penyampaian di situs Fluke yang tegas menyatakan bahwa, “Pulse width is a measure of the actual ON time, measured in milliseconds. The OFF time does not affect signal pulse width. The only value being measured is how long the signal is ON (ground-controlled).

Meskipun ada lebih dari satu pengertian mengenai pulse width, kita bisa memakai pengertian bahwa yang dimaksud dengan istilah duty cycle adalah perbandingan antara waktu ON (pulse width = pulse active time) dengan periode.

Kedua persamaan di atas saya salin dari Wikipedia, dan dapat ditemukan perbandingannya di banyak sekali sumber.

Notasi D adalah duty cycle, PW adalah pulse width (pulse active time), dan T adalah total periode dari sinyal.  Duty cycle umumnya diukur dalam % (persen) seperti pada persamaan pertama. Meskipun juga dapat ditampilkan seperti pada persamaan yang kedua.

Bandingkanlah antara Gambar 5, Gambar 7, dan Gambar 8 berikut ini. Pada Gambar 5, nilai duty cycle adalah 50 %. Rentang waktu ON (pulse width) sama dengan rentang waktu OFF. Pada Gambar 7, terdapat gambar tampilan tiga gelombang yang masing-masing bernilai 10%, 50 %, dan 90 %. Amati keterangan detail mengenai rentang waktu pada masing-masing gelombang. Lalu berapakah nilai duty cycle pada Gambar 8?

Terdapat tiga runtutan pulsa di Gambar 8, ini adalah gambar gelombang periodik. Jika gambar diperbesar dengan cara meng-kliknya, bisa lebih mudah dilihat bahwa bagian pertama adalah dari 0 ms sampai 20 ms, berikutnya dari 20 ms sampai 40 ms, lalu dari 40 ms sampai 60 ms. Ini adalah sinyal dengan periode sebesar 20 ms (artinya memiliki frekuensi sebesar 50 Hz).

Penanda poin satu menunjuk pada awal dari pulsa yang perama, yaitu di 0 ms. Poin kedua ada di 5 ms, ini menunjukkan batas rentang waktu ON (pulse width). Point ketiga adalah akhir dari satu gelombang penuh, nilainya adalah nilai periode. Pada pengaturan seperti ini dapat dihitung bahwa nilai duty cycle adalah:

hasilnya adalah 25 % (atau 0,25).


Gambar 8 [ Klik gambar untuk memperbesar tampilan ]

Gambar 9 [ Klik gambar untuk memperbesar tampilan ]

Ada banyak sumber sinyal yang bisa memberi variasi lebar pulsa. Misalnya komponen mikrokontroler, dan alat function generator. Gambar 9 adalah hasil pengukuran dari keluaran sinyal PWM dari sistem Arduino.

Dapat dilihat bahwa pada satu papan Arduino, terdapat dua frekuensi PWM. Yang pertama 490 Hz (490,3 Hz dalam pengukuran seperti yang ditampilkandi Gambar 9), dan yang kedua adalah 980 Hz (976,8 Hz dalam pengukuran). Lalu apakah PWM itu?


 

PWM (Pulse Width Modulation) 

Meskipun ada beberapa cara dan redaksi yang dipergunakan untuk membahas mengenai PWM, di artikel ini hanya akan disajikan yang sederhana dan paling operasional saja. Selebihnya, dapat dipelajari lebih dalam dari berbagai sumber. Bisa dimulai dari sejumlah link di bagian akhir artikel ini.

Pengertian tentang PWM dapat ditinjau dari berberapa sudut pandang. Misalnya dari sudut pandang filosofi dan dari sudut pandang operasional (aksi).

Dari sisi filosofi, salah satu sumber menyatakan pada prisipnya PWM adalah suatu upaya (cara/metode) untuk mendapatkan sinyal analog dari sumber digital. Sumber lain menyatakan PWM adalah cara/metode untuk mengatur jumlah daya (power) yang tepat untuk diberikan ke beban, sehingga dapat mengurangi energi yang terbuang sia-sia. Sumber lain lagi menyatakan bahwa PWM ada cara/metode untuk bisa mendapatkan level tegangan (tegangan rata-rata) yang lebih rendah daripada nilai tegangan maksimum masukan. 

Dari sisi operasional/aksi kendali, PWM adalah metode mencacah satu sinyal masukan dan membagi-baginya ke dalam serentetan sinyal modulasi digital yang terdiri dari ON dan OFF. Pada PWM frekuensi tetap tetapi lebar pulsa yang bervariasi, tergantung pada pengaturan. Gambar 9 dan gambar-gambar sebelumnya (yang serupa) merupakan contoh penerapan PWM.

Pembahasan mengenai PWM sangat erat kaitannya dengan pembahasan frekuensi, periode, dan duty cycle. Ketiganya telah dibahas sebelumnya dan merupakan fondasi untuk mempelajari dan memahami dasar mengenai PWM.

Cara-cara untuk membangkitkan sinyal PWM tidak dibahas di artikel ini. Begitu pula mengenai tipe-tipe sinyal PWM. Beberapa tautan yang disediakan di akhir artikel ini sudah memberikan keterangan awal mengenai hal-hal tersebut.


Gambar 10

Gambar 11 [ Klik gambar untuk memperbesar tampilan ]

Gambar 10 yang diperoleh dari Wikipedia memperlihatkan animasi bagaimana aksi pengubahan lebar pulsa pada PWM. Sedangkan Gambar 11 yang diperoleh dari situs Arduino menunjukkan beberapa gelombang dengan PWM dalam beberapa nilai lebar pulsa yang berbeda. Pada pengaturan yang ideal, saat 0 % tidak akan ada nilai high yang dihasilkan. Keluaran selalu dalam kondisi low (OFF). Sebaliknya pada saat 100 %, idealnya sinyal keluaran secara terus menerus tanpa jeda berada dalam kondisi high.

 

 TEXT: 

  1. Electropedia
  2. A Dictionary of Electronics and Electrical Engineering (5 ed.)
  3. KBBI Daring
  4. Frequency [Wikipedia]
  5. What is frequency?
  6. Frequency [earthguide]
  7. Wave Variables [Texas Gateway]
  8. Square pulse train [electropedia]
  9. Electrical Waveforms
  10. Square wave [Wikipedia]
  11. Pulse wave [Wikipedia]
  12. Square Wave
  13. Tutorial 2 – Waveforms
  14. How to derive the rms value of pulse and square waveforms
  15. RMS of A Square Pulse Train – John Dunn, Consultant, Ambertec, P.E., P.C.
  16. Waveform and Signal Analysis
  17. What is duty cycle?
  18. Pulse Width Modulation
  19. Duty cycle [Wikipedia]
  20. Laureate Duty Cycle & Pulse Width Modulation (PWM) Meter
  21. analogWrite()
  22. Secrets of Arduino PWM
  23. Arduino-PWM-Frequency
  24. What is a Pulse Width Modulation (PWM) Signal and What is it Used For?
  25. Pulse Width Modulation
  26. Pulse-width modulation [Wikipedia]
  27. Pulse Width Modulation
  28. PWM
  29. Pulse Width Modulation [Sparkfun]
  30. What is PWM (Pulse Width Modulation)?
  31. Basic – Pulse Width Modulation (Pwm)
  32. Introduction to Pulse Width Modulation
  33. PWM – Pulse Width Modulation Tutorial | CCP Module
  34. Pulse width modulation (PWM) components
  35. Pulse Width Modulation (PWM) [Comlab]
  36. Frequency-controlled induction motor drive systems

 VIDEO: 

  1. Wave Period and Frequency
  2. The equation of a wave | Physics | Khan Academy