#include <Arduino_FreeRTOS.h> // Thêm thư viện FreeRTOS
// Định nghĩa chân kết nối cho cảm biến và LED
const int SENSOR_PIN = A0; // Cảm biến kết nối chân A0
const int LED_PIN = 13; // LED kết nối chân 13
TaskHandle_t SensorTaskHandle; // Biến để theo dõi tác vụ cảm biến
void SensorTask(void *pvParameters) {
(void)pvParameters; // Đảm bảo tham số không được sử dụng
pinMode(SENSOR_PIN, INPUT); // Thiết lập chân cảm biến là input
pinMode(LED_PIN, OUTPUT); // Thiết lập chân LED là output
for (;;) {
// Đợi 1 giây trước khi đọc cảm biến một lần nữa
vTaskDelay(pdMS_TO_TICKS(1000));
// Đọc giá trị từ cảm biến analog
int sensorValue = analogRead(SENSOR_PIN);
// Hiển thị giá trị cảm biến lên Serial Monitor
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
// Điều khiển LED dựa trên giá trị đọc được
if (sensorValue > 500) {
digitalWrite(LED_PIN, HIGH); // Bật LED nếu giá trị cảm biến lớn hơn 500
} else {
digitalWrite(LED_PIN, LOW); // Tắt LED nếu giá trị cảm biến nhỏ hơn hoặc bằng 500
}
}
}
void setup() {
Serial.begin(9600); // Khởi tạo giao tiếp Serial với tốc độ baud 9600
xTaskCreate(SensorTask, "SensorTask", 100, NULL, 1, &SensorTaskHandle); // Tạo tác vụ cảm biến
vTaskStartScheduler(); // Bắt đầu thực thi tác vụ
}
void loop() {
// Không có nội dung trong hàm loop vì các tác vụ được quản lý bởi FreeRTOS
}