Memahami PWM: Mengapa 2,5 V Bisa “Terlihat” dari Pulsa 0–5 V?

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:

Kalau pin Arduino hanya ON atau OFF, bagaimana kita bisa mendapatkan efek seperti 2,5 V, 1,5 V, atau 4 V?

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
Ini poin penting: PWM tidak mengubah dua keadaan tersebut menjadi tiga atau lebih keadaan tegangan. Pin tetap berpindah antara 0 V dan 5 V.

🔄 Lalu Apa yang Dilakukan PWM?

PWM membuat pin berpindah sangat cepat antara:



5 V ────┐      ┌──────┐      ┌──────
│      │      │      │
0 V     └──────┘      └──────┘
ON     OFF    ON     OFF 

Jadi bukan:

5 V → 2,5 V → 0 V

tetapi:

5 V → 0 V → 5 V → 0 V → 5 V → 0 V ...

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%.

Tegangan rata-rata = 5 V × 50% = 2,5 V

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.

Namun kerannya tetap hanya memiliki dua keadaan: terbuka penuh atau tertutup.

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.

LED tidak menerima tegangan analog 2,5 V ketika duty cycle 50%. LED menerima pulsa 5 V dan 0 V secara bergantian.

🔢 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:

5 V × 50% ≈ 2,5 V

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.

Jadi terjadi dua hal yang berbeda:

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
Kalimat kunci:
PWM tidak membuat tegangan baru. PWM mengatur berapa lama tegangan 5 V diberikan dibandingkan dengan 0 V.

🎓 Kesimpulan

Kita mulai dari pertanyaan sederhana:

Kalau Arduino hanya mengenal 0 V dan 5 V, bagaimana bisa menghasilkan efek seperti 2,5 V?

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.

Inti konsep:

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.

Post a Comment

0 Comments