#include <WiFi.h>
// Definisikan SSID dan Password WiFi Anda
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Pin konfigurasi
const int LED1_PIN = 12;
const int LED2_PIN = 13;
const int LED3_PIN = 14; // Menggunakan pin valid GPIO14
const int POT_PIN = 34;
const int BUTTON_PIN = 2;
volatile bool led3State = LOW;
// Fungsi interrupt untuk push button
void IRAM_ATTR handleButtonInterrupt() {
led3State = !led3State;
digitalWrite(LED3_PIN, led3State);
}
void setup() {
// Inisialisasi serial monitor
Serial.begin(115200);
// Inisialisasi pin sebagai output
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(LED3_PIN, OUTPUT);
// Inisialisasi pin push button sebagai input dengan pull-up
pinMode(BUTTON_PIN, INPUT_PULLUP);
// Set up interrupt untuk push button
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), handleButtonInterrupt, FALLING);
// Mulai menghubungkan ke WiFi
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
// Tunggu hingga terhubung
while (WiFi.status() != WL_CONNECTED) {
digitalWrite(LED1_PIN, LOW); // LED1 mati jika belum terhubung
delay(500);
Serial.print(".");
}
// Ketika terhubung
Serial.println();
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
digitalWrite(LED1_PIN, HIGH); // LED1 nyala jika sudah terhubung
// Inisialisasi PWM untuk LED2
//ledcSetup(0, 5000, 8); // Channel 0, 5 kHz PWM, 8-bit resolution
//ledcAttachPin(LED2_PIN, 0);
}
void loop() {
// Membaca nilai dari potensiometer
int potValue = analogRead(POT_PIN);
// Mengubah nilai potensiometer menjadi nilai PWM (0-255)
int pwmValue = map(potValue, 0, 4095, 0, 255);
// Mengatur LED2 dengan nilai PWM
//ledcWrite(0, pwmValue);
analogWrite(LED2_PIN,pwmValue);
// Serial print nilai potensiometer dan PWM untuk debugging
Serial.print("Potentiometer value: ");
Serial.print(potValue);
Serial.print(" -> PWM value: ");
Serial.println(pwmValue);
delay(100); // Delay kecil untuk stabilitas
}