Mengenal PWM Arduino: Cara Kerja dan Cara Membuat Output Analog di Pin Digital
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