#define LED1 D2     // GPIO2 (D2 di board)
#define BUZZER D3     // GPIO3 (D3 di board)
#define BUTTON D4   // GPIO4 (D4 di board)

void TaskBlinkLED1(void *pvParameters) {
  pinMode(LED1, OUTPUT);
  bool state = LOW;

  while (true) {
    state = !state;
    digitalWrite(LED1, state);
    vTaskDelay(pdMS_TO_TICKS(1000));  // 1 detik delay
  }
}

void TaskButtonBUZZER(void *pvParameters) {
  pinMode(BUZZER, OUTPUT);
  pinMode(BUTTON, INPUT);

  while (true) {
    if (digitalRead(BUTTON) == HIGH) {
      digitalWrite(BUZZER, HIGH);
    } else {
      digitalWrite(BUZZER, LOW);
    }
    vTaskDelay(pdMS_TO_TICKS(50));  // debounce dan responsif
  }
}

void setup() {
  xTaskCreatePinnedToCore(TaskBlinkLED1, "Blink", 1024, NULL, 1, NULL, 1);
  xTaskCreatePinnedToCore(TaskButtonBUZZER, "ButtonLED", 1024, NULL, 1, NULL, 1);
}

void loop() {

}
Loading
xiao-esp32-s3