Memahami PWM: Mengapa 2,5 V Bisa “Terlihat” dari Pulsa 0–5 V?
Memahami hubungan antara ON/OFF, duty cycle, nilai rata-rata, dan analogWrite() pada Arduino.
🎯 Pertanyaan Dasar
Kita sering mendengar bahwa Arduino bekerja dengan logika digital:
LOW = 0 V HIGH = 5 V
Lalu muncul pertanyaan:
Jawabannya adalah PWM (Pulse Width Modulation).
Tetapi ada satu hal yang harus benar-benar dipahami: PWM tidak membuat pin Arduino menghasilkan tegangan DC 2,5 V secara langsung.
⚡ Pin Digital Sebenarnya Hanya ON dan OFF
Misalnya kita menggunakan pin digital Arduino pada kondisi HIGH. Pin tersebut menghasilkan sekitar 5 V.
Ketika LOW, pin berada sekitar 0 V.
HIGH 5 V ───────────────────────── LOW 0 V ─────────────────────────
Jadi secara sesaat, pin digital memang hanya berada pada dua keadaan:
| Kondisi | Tegangan |
|---|---|
| LOW | ≈ 0 V |
| HIGH | ≈ 5 V |
🔄 Lalu Apa yang Dilakukan PWM?
PWM membuat pin berpindah sangat cepat antara:
5 V ────┐ ┌──────┐ ┌────── │ │ │ │ 0 V └──────┘ └──────┘ ON OFF ON OFF
Jadi bukan:
tetapi:
Perubahan tersebut dilakukan sangat cepat dan teratur.
⏱️ Kunci PWM: Berapa Lama ON?
Yang diubah oleh PWM bukan besar tegangannya, melainkan lama waktu pin berada pada kondisi ON dibandingkan dengan waktu keseluruhan satu siklus.
Perbandingan tersebut disebut duty cycle.
Duty Cycle 25% 5 V ──┐ ┌── │ │ 0 V └──────────────┘ ON OFF Duty Cycle 50% 5 V ──────┐ ┌────── │ │ 0 V └──────┘ Duty Cycle 75% 5 V ───────────┐ ┌── │ │ 0 V └────┘
| Duty Cycle | Waktu ON | Waktu OFF |
|---|---|---|
| 25% | 25% | 75% |
| 50% | 50% | 50% |
| 75% | 75% | 25% |
| 100% | 100% | 0% |
🧮 Dari Duty Cycle ke Nilai Rata-rata
Sekarang kita bisa memahami dari mana istilah seperti 2,5 V rata-rata berasal.
Misalnya sumber kita adalah 5 V dan PWM memiliki duty cycle 50%.
Tetapi ingat: pin tidak benar-benar menghasilkan 2,5 V DC.
Pin tetap menghasilkan:
5 V ─────┐ ┌──────┐ ┌────── │ │ │ │ 0 V └──────┘ └──────┘ ON OFF ON OFF
Nilai 2,5 V adalah nilai rata-rata dari pola tersebut.
💡 Analogi Sederhana: Keran Air
Bayangkan sebuah keran yang hanya mempunyai dua keadaan:
Keran ON
Air mengalir penuh.
Keran OFF
Air berhenti.
Sekarang buka-tutup keran dengan sangat cepat.
Kalau keran terbuka 50% dari keseluruhan waktu, jumlah air rata-rata yang keluar akan setara dengan kondisi seolah-olah keran terbuka setengah.
Begitulah cara sederhana membayangkan PWM.
💡 Contoh pada LED
Sekarang kita terapkan pada LED.
Duty Cycle 100%
5 V ████████████████████████ 0 V
LED selalu ON → LED terlihat sangat terang.
Duty Cycle 50%
5 V █████ █████ █████ 0 V █████ █████
LED ON selama setengah waktu → LED terlihat lebih redup.
Duty Cycle 25%
5 V ██ ██ ██ 0 V █████████ █████████
LED ON hanya seperempat waktu → LED terlihat semakin redup.
🔢 Hubungan dengan analogWrite()
Pada Arduino Uno, kita dapat menggunakan:
analogWrite(9, 128);
Nilai PWM berada pada rentang:
0 127 255 │---------│---------│ OFF 50% ON
Nilai 128 kira-kira menghasilkan duty cycle sekitar 50%.
Dengan sumber 5 V, nilai rata-ratanya kira-kira:
Sekali lagi, angka 2,5 V tersebut adalah nilai rata-rata, bukan tegangan DC yang secara langsung keluar dari pin.
🎛️ Hubungannya dengan Potensiometer
Sekarang kita bisa menghubungkan materi ini dengan praktik potensiometer.
POTENSIOMETER │ ▼ Tegangan 0–5 V │ ▼ analogRead() │ ▼ 0–1023 │ ▼ map() │ ▼ 0–255 │ ▼ analogWrite() │ ▼ PWM │ ▼ LED
Potensiometer menghasilkan tegangan analog nyata pada A0.
Arduino mengukurnya menjadi angka 0–1023.
Program kemudian mengubah angka tersebut menjadi 0–255 untuk menentukan duty cycle PWM.
Potensiometer → menghasilkan tegangan analog 0–5 V.
PWM → menghasilkan pulsa 0–5 V dengan duty cycle tertentu.
🧠 Jangan Samakan Tegangan Sesaat dan Nilai Rata-rata
Ini adalah konsep paling penting dari materi ini.
| Istilah | Artinya |
|---|---|
| Tegangan sesaat | Tegangan yang sedang terjadi pada saat tertentu |
| Duty cycle | Persentase waktu sinyal berada pada kondisi HIGH |
| Tegangan rata-rata | Nilai rata-rata dari pola ON/OFF selama satu periode |
| PWM | Pengaturan ON/OFF cepat untuk mengendalikan nilai rata-rata |
PWM tidak membuat tegangan baru. PWM mengatur berapa lama tegangan 5 V diberikan dibandingkan dengan 0 V.
🎓 Kesimpulan
Kita mulai dari pertanyaan sederhana:
Jawabannya adalah PWM.
Arduino tidak benar-benar mengeluarkan 2,5 V dari pin digital. Arduino menghasilkan pulsa:
5 V ─── ON ─── OFF ─── ON ─── OFF ─── 0 V
Dengan mengatur perbandingan waktu ON dan OFF, kita mendapatkan nilai rata-rata yang berbeda.
0% duty cycle → rata-rata ≈ 0 V
25% duty cycle → rata-rata ≈ 1,25 V
50% duty cycle → rata-rata ≈ 2,5 V
75% duty cycle → rata-rata ≈ 3,75 V
100% duty cycle → rata-rata ≈ 5 V
Dengan pemahaman ini, kita sudah memiliki dasar untuk memahami
mengapa analogWrite() dapat digunakan untuk mengatur
kecerahan LED meskipun pin Arduino sebenarnya hanya menghasilkan
kondisi HIGH dan LOW.
0 Comments