#define BLYNK_TEMPLATE_ID "TMPL67BnprQn2"
#define BLYNK_TEMPLATE_NAME "Tugas ESP 32 brightness"
#define BLYNK_AUTH_TOKEN "W-PBT_Stp05xVJXr9jvb3Qmjch6aYscC"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#define pin_led 25 // Pin LED
#define LEDC_CHANNEL 0 // Kanal LEDC untuk PWM
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; // SSID WiFi
char pass[] = ""; // Kata sandi WiFi (kosong untuk jaringan terbuka)
// Faktor penguat kecerahan
const float brightnessGain = 2.0; // Anda dapat menyesuaikan faktor penguat sesuai kebutuhan
void setup() {
Serial.begin(115200);
Serial.println("Memulai kontrol LED Blynk");
// Setup WiFi
Blynk.begin(auth, ssid, pass);
// Setup PWM untuk mengontrol kecerahan LED
ledcSetup(LEDC_CHANNEL, 5000, 8); // Frekuensi PWM 5 kHz, resolusi 8-bit
ledcAttachPin(pin_led, LEDC_CHANNEL); // Memasangkan pin dengan kanal LEDC
}
void loop() {
Blynk.run(); // Memproses semua perintah Blynk
// Dalam loop ini, Anda juga dapat menambahkan kode lain yang perlu dieksekusi secara berkala
}
// Fungsi ini akan dipanggil setiap kali Widget Slider di aplikasi Blynk menulis nilai ke Pin Virtual V0
BLYNK_WRITE(V0) {
int brightness = param.asInt(); // Mendapatkan nilai kecerahan dari perintah Blynk
// Anda juga dapat menggunakan: int brightness = param[0].asInt();
// Menambahkan faktor penguat ke nilai kecerahan
brightness = int(brightness * brightnessGain);
// Memastikan nilai kecerahan tidak melebihi 255 (resolusi 8-bit)
if (brightness > 255) {
brightness = 255;
}
// Menulis nilai kecerahan yang sudah ditingkatkan ke pin LED menggunakan PWM
ledcWrite(LEDC_CHANNEL, brightness);
}