2.5 Exercice : alerte sur seuil (LED rouge si temp > 30°C ou son > 70 dB)

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);

Se connecter pour suivre votre progression.