Tuesday, 1 July 2025
Arduino Belajar IOT

Mengontrol Kecerahan LED dengan PWM Menggunakan Arduino

control led via web - esp32

Pada proyek sebelumnya, kita telah mempelajari cara menyalakan dan mematikan LED dengan menggunakan pin digital Arduino. Namun, bagaimana jika kita ingin mengontrol kecerahan LED? Salah satu cara untuk melakukannya adalah dengan menggunakan Pulse Width Modulation (PWM). Dalam artikel ini, kita akan mempelajari apa itu PWM dan bagaimana menggunakannya untuk mengatur kecerahan LED dengan perintah analogWrite() di Arduino.

Apa Itu PWM?

Pulse Width Modulation (PWM) adalah teknik untuk menghasilkan sinyal analog menggunakan pin digital. Alih-alih mengirimkan tegangan konstan, PWM menghasilkan sinyal tegangan yang berubah secara cepat antara tinggi (HIGH) dan rendah (LOW).

Dengan PWM, kita bisa mengontrol seberapa lama sinyal tinggi dibandingkan dengan sinyal rendah dalam satu siklus (disebut sebagai duty cycle). Jika sinyal lebih sering berada pada posisi tinggi, kita akan mendapatkan kecerahan LED yang lebih terang. Jika sinyal lebih sering berada pada posisi rendah, LED akan terlihat lebih redup.

  • 0% duty cycle berarti sinyal selalu LOW (LED mati).
  • 100% duty cycle berarti sinyal selalu HIGH (LED menyala penuh).
  • 50% duty cycle berarti sinyal separuh waktu HIGH dan separuh waktu LOW, menghasilkan setengah kecerahan LED.

Pin PWM pada Arduino

Pada Arduino Uno, pin digital yang mendukung PWM adalah: 3, 5, 6, 9, 10, dan 11. Pin ini ditandai dengan simbol “~” di papan Arduino. PWM pada Arduino menggunakan perintah analogWrite() untuk mengatur tingkat duty cycle, yang nilainya berkisar antara 0 (0% duty cycle) hingga 255 (100% duty cycle).

Alat dan Bahan yang Dibutuhkan

  • 1 x Arduino Uno (atau model Arduino lainnya)
  • 1 x LED
  • 1 x Resistor 220Ω atau 330Ω
  • Breadboard
  • Kabel jumper

Diagram Rangkaian

  1. Anoda (kaki panjang) LED dihubungkan ke salah satu pin PWM pada Arduino (misalnya pin 9).
  2. Katoda (kaki pendek) LED dihubungkan ke GND melalui resistor 220Ω atau 330Ω.

Diagram Koneksi:

  • Pin 9 (Arduino) → ResistorAnoda (kaki panjang LED)
  • GND (Arduino)Katoda (kaki pendek LED)

Kode Program Mengontrol Kecerahan LED dengan PWM

Berikut adalah kode untuk mengontrol kecerahan LED menggunakan PWM dan perintah analogWrite():

// Deklarasi pin PWM untuk LED
int ledPin = 9;

void setup() {
  // Mengatur pin LED sebagai output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Meningkatkan kecerahan LED
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledPin, brightness);
    delay(10); // Menunggu 10 milidetik
  }

  // Mengurangi kecerahan LED
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledPin, brightness);
    delay(10); // Menunggu 10 milidetik
  }
}

Penjelasan Kode:

  • int ledPin = 9;
    Mendeklarasikan variabel ledPin yang merujuk ke pin 9, salah satu pin PWM di Arduino.
  • pinMode(ledPin, OUTPUT);
    Mengatur pin 9 sebagai output di fungsi setup().
  • analogWrite(ledPin, brightness);
    Fungsi analogWrite() digunakan untuk mengirimkan sinyal PWM ke LED. Nilai brightness berkisar dari 0 hingga 255, di mana 0 berarti LED mati dan 255 berarti LED menyala dengan kecerahan maksimal.
  • for (int brightness = 0; brightness <= 255; brightness++)
    Pada bagian ini, kecerahan LED akan meningkat secara bertahap dari 0 hingga 255 dalam loop, dengan penambahan nilai brightness setiap kali loop berjalan.
  • delay(10);
    Menambahkan jeda 10 milidetik antara setiap perubahan kecerahan, memberikan efek transisi kecerahan yang halus.
  • for (int brightness = 255; brightness >= 0; brightness–)
    Setelah kecerahan mencapai maksimum, LED akan mulai redup secara bertahap hingga kembali ke nilai 0.

Mengunggah Program ke Arduino

  1. Sambungkan Arduino ke komputer menggunakan kabel USB.
  2. Buka Arduino IDE dan salin kode di atas.
  3. Pilih port dan board yang sesuai (Tools → Board → Arduino Uno, Tools → Port → pilih port yang sesuai).
  4. Klik Upload untuk mengunggah program ke Arduino.
  5. Setelah program berhasil diunggah, LED akan menyala dengan kecerahan yang meningkat secara bertahap, kemudian akan meredup kembali dalam siklus yang terus berulang.

Modifikasi Program

Setelah berhasil menjalankan program dasar, kamu bisa bereksperimen lebih jauh. Beberapa modifikasi yang bisa dilakukan termasuk:

  1. Mengubah Kecepatan Transisi Kecerahan:
    Kamu bisa menambah atau mengurangi nilai pada fungsi delay() untuk membuat transisi kecerahan lebih cepat atau lebih lambat. Misalnya:
   delay(5); // Transisi lebih cepat
   delay(20); // Transisi lebih lambat
  1. Menambahkan Kontrol dengan Potensiometer:
    Kamu bisa menambahkan potensiometer untuk mengontrol kecerahan LED secara manual dengan mengubah nilai PWM berdasarkan input dari potensiometer. Berikut adalah contoh kode jika menggunakan potensiometer:
   int potPin = A0; // Pin analog untuk potensiometer
   int ledPin = 9;

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

   void loop() {
     int potValue = analogRead(potPin); // Membaca nilai dari potensiometer (0 hingga 1023)
     int brightness = map(potValue, 0, 1023, 0, 255); // Konversi nilai menjadi 0 hingga 255
     analogWrite(ledPin, brightness); // Mengatur kecerahan LED
     delay(10);
   }

Kesimpulan

Mengontrol kecerahan LED dengan PWM adalah langkah penting dalam memahami bagaimana mikrokontroler seperti Arduino dapat mengontrol perangkat elektronik secara lebih halus dan presisi. Dengan menggunakan perintah analogWrite(), kita dapat mengubah intensitas cahaya LED secara bertahap, yang berguna untuk banyak aplikasi, seperti pencahayaan yang dapat disesuaikan, motor servo, dan banyak lagi.

Dengan latihan dan eksperimen lebih lanjut, kamu dapat memperdalam pemahaman tentang PWM dan cara menggunakannya dalam berbagai proyek Arduino yang lebih kompleks. Selamat bereksperimen!

Fredy Siswanto

Fredy Siswanto

About Author

Leave a Reply

Your email address will not be published. Required fields are marked *