#110Pemula

LED Fade dengan PWM ESP32

Mengubah kecerahan LED secara halus dari 0 ke maksimum, dan dari maksimum ke 0. Kita mengendalikan PWM dengan analogWrite() seperti di Arduino; sintaks yang sama bekerja tanpa masalah di ESP32 Arduino Core 3.0+. Definisi pin + pinMode + analogWrite sudah cukup.

4.8(36)
54 selesai
LED Fade dengan PWM ESP32
Alih-alih menyalakan dan mematikan lampu sekaligus, kamu menaikkan dan menurunkannya perlahan, seperti matahari yang terbit di pagi hari. LED yang tersambung ke ESP32 berubah dari gelap ke terang penuh dalam sekitar dua detik, lalu meredup sama lembutnya, dan cahaya yang bernapas ini tidak pernah berhenti. Teknik dasar di balik lampu tidur dan lampu dekorasi.

Video

Skema rangkaian

LED Fade dengan PWM ESP32 - Circuit

Kode sumber

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   LED Fade dengan PWM ESP32
4// ─────────────────────────────────────────
5// Memakai PWM analogWrite() untuk menaikkan kecerahan LED perlahan dari 0
6// ke 255, lalu menurunkannya perlahan kembali ke 0.
7//
8// Pin:
9//   GPIO 5 -> LED biru (dengan resistor 330 ohm)
10//   GND    -> Kaki pendek LED (katode)
11
12const int LED_PIN = 5;   // Output PWM
13
14void setup() {
15  pinMode(LED_PIN, OUTPUT);
16}
17
18void loop() {
19  // Menerang perlahan
20  for (int brightness = 0; brightness <= 255; brightness++) {
21    analogWrite(LED_PIN, brightness);
22    delay(8);   // 8 ms per langkah, ~2 s total
23  }
24  // Meredup perlahan
25  for (int brightness = 255; brightness >= 0; brightness--) {
26    analogWrite(LED_PIN, brightness);
27    delay(8);
28  }
29}
30

FAQ

Apakah `analogWrite` benar-benar bekerja di ESP32?

Ya, analogWrite() didukung di ESP32 Arduino Core 3.x maupun beberapa versi 2.x, dan memakai hardware LEDC. Cek dukungannya untuk versi core yang kamu pakai; ledcSetup dan ledcAttachPin tidak diperlukan di semua versi 2.x.

Pin mana yang mendukung PWM?

Hampir semua pin GPIO ESP32 yang bisa berfungsi sebagai output bisa menghasilkan PWM. Pin GPIO 34–39 tidak bisa menghasilkan PWM karena hanya input.

Perubahan kecerahannya tidak terlihat linear; kenapa?

Mata merasakan kecerahan secara logaritmik; perubahan pada nilai rendah lebih terasa. Jika kamu mengubah nilainya dengan tabel gamma, transisinya terlihat lebih alami.

Bisakah aku mengubah frekuensi PWM?

Bisa, kamu bisa mengatur frekuensi dan resolusi dengan analogWriteFrequency() atau fungsi LEDC. Frekuensi tinggi, seperti 5 kHz, sepenuhnya menghilangkan kedipan di LED.