Mengenal PWM Arduino: Cara Kerja dan Cara Membuat Output Analog di Pin Digital

Table of Contents

Tahukah kamu bahwa pin digital Arduino bisa digunakan untuk menghasilkan sinyal seperti analog? Teknik ini disebut PWM (Pulse Width Modulation), atau dalam bahasa sederhana: cara meniru sinyal analog menggunakan pulsa digital.

PWM sangat berguna ketika kamu ingin:

  • Mengatur kecerahan LED
  • Mengatur kecepatan motor DC
  • Mengendalikan suara buzzer

Mari kita bahas lebih dalam.

Apa Itu PWM?

PWM (Pulse Width Modulation) adalah teknik mengirim sinyal digital ON dan OFF secara cepat dan teratur. Walaupun pin hanya punya dua kondisi (HIGH dan LOW), rata-rata waktu ON dibandingkan dengan OFF membuatnya terlihat seperti sinyal analog.

Contohnya:

  • PWM 0%: pin selalu OFF → hasil = 0V
  • PWM 50%: pin ON setengah waktu → hasil = ~2.5V
  • PWM 100%: pin selalu ON → hasil = 5V

Ini disebut duty cycle — persentase waktu pin dalam keadaan HIGH selama satu siklus PWM.

Ilustrasi PWM

Bayangkan kamu menyalakan dan mematikan lampu sangat cepat:

  • Kalau lampu nyala 10% waktu dan mati 90% → redup
  • Kalau lampu nyala 90% waktu dan mati 10% → terang

Mata manusia tidak bisa menangkap kecepatan pulsa ini, jadi terlihat seperti perubahan tingkat kecerahan yang halus — padahal aslinya digital.

Pin Digital Mana yang Mendukung PWM?

Tidak semua pin digital di Arduino bisa digunakan untuk PWM. Di Arduino Uno, pin yang mendukung PWM adalah:

Pin 3, 5, 6, 9, 10, dan 11

Biasanya ada tanda ~ di dekat nomor pin di papan Arduino. 

Contoh Kode: Mengatur Kecerahan LED dengan PWM

int ledPin = 9; // pin PWM

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

void loop() {
  // Naikkan kecerahan LED
  for (int i = 0; i <= 255; i++) {
    analogWrite(ledPin, i); // Kirim PWM duty cycle
    delay(10);
  }

  // Turunkan kecerahan LED
  for (int i = 255; i >= 0; i--) {
    analogWrite(ledPin, i);
    delay(10);
  }
}

Penjelasan:

  • analogWrite(pin, value) mengirim nilai PWM antara 0–255 (bukan voltase langsung).
  • Nilai 0 berarti 0% duty cycle (OFF), 255 berarti 100% duty cycle (ON penuh).

PWM adalah cara cerdas untuk membuat efek analog dari pin digital. Kamu bisa mengontrol LED, motor, dan perangkat lainnya secara halus, tanpa benar-benar menggunakan sinyal analog. PWM memperluas kemampuan Arduino tanpa perlu perangkat tambahan .

Posting Komentar