Materi 8 dari 12 · Stasiun 3
PWM: kecerahan dan kecepatan
Setelah materi ini, kamu bisa:
- Bisa menjelaskan PWM sebagai nyala-mati yang sangat cepat dengan perbandingan waktu nyala (duty cycle).
- Bisa mengatur kecerahan LED dengan analogWrite.
- Bisa menjelaskan kenapa PWM tidak menurunkan tegangan puncak, dan kenapa motor tetap butuh transistor.
Sebaiknya sudah belajar:
Pin digital yang bisa meredup
Pin ESP32 hanya bisa 0 V atau 3,3 V. Tapi lampu meja pintar bisa diredupkan halus, dan kipas bisa diatur kecepatannya. Bagaimana caranya dengan pin yang hanya punya dua keadaan?
Ingat papan virtual di materi Output digital: LED berkedip. Saat jedanya sangat kecil, LED tampak menyala redup. Itulah dasarnya.
Istilah PWM
Ketuk satu per satu.
- PWM
- Pulse Width Modulation. Pin dinyalakan dan dimatikan sangat cepat, ratusan sampai ribuan kali per detik.
- Duty cycle
- Persentase waktu nyala dalam satu siklus. 25% berarti nyala seperempat waktu, mati tiga perempat.
- Rata-rata
- Beban yang lambat (mata, motor) merasakan rata-ratanya. Duty 50% dari 3,3 V terasa seperti sekitar 1,65 V.
Tebak dulu
- Duty cycle 50% pada pin 3,3 V. Berapa tegangan pin saat sedang menyala?
- 1,65 V
- 3,3 V
- Berubah-ubah antara 0 dan 3,3 V secara halus
Jawaban
3,3 V. Saat nyala, tetap penuh 3,3 V. Yang berubah hanya lama nyalanya. Rata-ratanya baru 1,65 V.
Atur duty cycle
Geser duty cycle dan lihat gelombang, rata-rata, dan LED. Kartu terbuka setelah kamu mencoba empat duty cycle berbeda.
Simulasi interaktif tersedia saat JavaScript aktif.
Tegangan puncak selalu 3,3 V. Yang diatur adalah lebar pulsanya. Mata kita melihat rata-ratanya sebagai kecerahan.
Meredup dan menerang
analogWrite tersedia di Arduino-ESP32 versi 2.0.x ke atas. Versi lama memakai ledcSetup dan ledcWrite. Namanya "analog", tapi keluarannya tetap PWM digital.
const int LED = 2;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
for (int d = 0; d <= 255; d++) {
analogWrite(LED, d);
delay(5);
}
} - Baris 7: analogWrite memberi duty 0 (mati) sampai 255 (nyala penuh). 128 ≈ 50%.
- Baris 6: Perulangan for (lihat [[p3]]) menaikkan duty sedikit demi sedikit. LED menerang dalam sekitar 1,3 detik.
Sekarang motor
Motor kecil digerakkan lewat transistor (lihat Transistor sebagai saklar), dengan PWM di basisnya. Coba duty cycle rendah. Kartu terbuka setelah kamu mencoba tiga duty cycle.
Simulasi interaktif tersedia saat JavaScript aktif.
Pada duty rendah, motor bisa diam karena dorongannya belum cukup melawan gesekan. Kecepatan tidak selalu sebanding lurus dengan duty. Arus motor tetap mengalir lewat transistor, bukan lewat pin.
Benar atau salah?
- "PWM menurunkan tegangan puncak pin."
- Benar
- Salah
Jawaban
Salah. Tegangan puncak tetap 3,3 V. Yang turun hanya rata-ratanya.
- "Dengan PWM, motor boleh langsung disambung ke pin."
- Benar
- Salah
Jawaban
Salah. PWM tidak menambah kemampuan arus pin. Motor tetap butuh transistor atau driver, plus dioda flyback (lihat Magnet, elektromagnet, relay, motor).
Selesai
- PWM = nyala-mati cepat. Duty cycle = persentase waktu nyala.
- Tegangan puncak tetap, rata-ratanya yang berubah.
- analogWrite(pin, 0–255). Beban besar tetap lewat transistor.
Pancingan
Motor, relay, dan servo semuanya disebut aktuator. Bagaimana mengendalikan masing-masing dengan aman? Itu Aktuator: relay, motor, servo.
Berikutnya
Referensi
- Dokumentasi Arduino-ESP32, LEDC (PWM) API dan analogWrite.
- Horowitz dan Hill, The Art of Electronics, edisi ke-3, bagian PWM dan pengendalian motor.
Draf AI. Belum direview manusia. Frekuensi PWM bawaan analogWrite di ESP32 bergantung versi core.
Kode materi p7 · versi 0.1 · 2026-10-06