#include <Arduino.h>
const int ledPin = 5;
const int buzzerPin = 12;
// Declare Task Handles
TaskHandle_t Task1Handle;
TaskHandle_t Task2Handle;
void setup() {
Serial.begin(115200);
delay(1000);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.println("Starting tasks...");
xTaskCreate(Task1, "LED Task", 1024, NULL, 2, &Task1Handle); // Priority 2
xTaskCreate(Task2, "Buzzer Task", 1024, NULL, 1, &Task2Handle); // Priority 1
// No need to start the scheduler manually, as it's already started in ESP32
}
void loop() {
}
// Task 1: LED Blinking Task
void Task1(void *pvParameters) {
(void) pvParameters;
while (1) {
// Log LED task execution
Serial.println("LED Task: Turning LED ON");
digitalWrite(ledPin, HIGH);
vTaskDelay(500 / portTICK_PERIOD_MS);
Serial.println("LED Task: Turning LED OFF");
digitalWrite(ledPin, LOW);
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}
// Task 2: Buzzer Beeping Task
void Task2(void *pvParameters) {
(void) pvParameters;
while (1) {
// Log Buzzer task execution
Serial.println("Buzzer Task: Turning Buzzer ON");
digitalWrite(buzzerPin, HIGH);
vTaskDelay(200 / portTICK_PERIOD_MS);
Serial.println("Buzzer Task: Turning Buzzer OFF");
digitalWrite(buzzerPin, LOW);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}