Langsung ke isi
Stasiun 3 · MikrokontrolerPWM: kecerahan dan kecepatan

Materi 8 dari 12 · Stasiun 3

PWM: kecerahan dan kecepatan

20 menit8 kartuDraf AI · belum direview

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.

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

  1. 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?

  1. "PWM menurunkan tegangan puncak pin."
    • Benar
    • Salah
    Jawaban

    Salah. Tegangan puncak tetap 3,3 V. Yang turun hanya rata-ratanya.

  2. "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