#include <Arduino.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
int sensorValue;
void SensorTask(void *pvParameters) {
while (true) {
sensorValue++;
vTaskDelay(1000 / portTICK_PERIOD_MS); // Penundaan 100 ms
}
}
void BlinkTask(void *pvParameters) {
pinMode(5, OUTPUT);
while (true) {
digitalWrite(5, HIGH);
vTaskDelay(500 / portTICK_PERIOD_MS); // LED menyala selama 500 ms
digitalWrite(5, LOW);
vTaskDelay(500 / portTICK_PERIOD_MS); // LED mati selama 500 ms
}
}
void setup() {
Serial.begin(115200);
pinMode(18, OUTPUT);
xTaskCreate(SensorTask, "Sensor Task", 2048, NULL, 1, NULL);
xTaskCreate(BlinkTask, "Blink Task", 2048, NULL, 1, NULL);
}
void loop() {
// Kosong, tugas dijalankan oleh FreeRTOS
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
digitalWrite(18, HIGH);
delay(3000);
digitalWrite(18, LOW);
delay(3000);
}