6. 2.5 Exercice : alerte sur seuil (LED rouge si temp > 30°C ou son > 70 dB)
Créez une tâche FreeRTOS alertTask qui vérifie les seuils toutes les 500 ms et allume une LED rouge (GPIO 39) en cas d'alerte, et une LED verte (GPIO 38) sinon.
#define LED_GREEN 38
#define LED_RED 39
void alertTask(void *param) {
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
for (;;) {
if (currentTemp >= 30.0 || currentDB >= 70.0) {
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
} else {
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
}
vTaskDelay(pdMS_TO_TICKS(500));
}
}
Ajoutez dans setup() :
xTaskCreatePinnedToCore(alertTask, "Alert", 2048, NULL, 1, NULL, 1);