#include <Arduino.h>
#include <Arduino_FreeRTOS.h>
#define capteur 2
#define interrupteur 3
#define GREEN_LED 4
#define RED_LED 5
#define BUZZER 6
void interruptTask(void *pvParameters);
void capteurTask(void *pvParameters);
void setup() {
pinMode(capteur, INPUT);
pinMode(interrupteur, INPUT_PULLUP);
pinMode(GREEN_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
// Create tasks
xTaskCreate(interruptTask, "Interrupt Task", 100, NULL, 1, NULL);
vTaskStartScheduler();
}
void loop() {
}
void interruptTask(void *pvParameters) {
while (1) {
if ((digitalRead(interrupteur) == HIGH) && (digitalRead(capteur) == HIGH)) {
xTaskCreate(capteurTask, "CAPTEUR Task", 100, NULL, 2, NULL);
} else {
digitalWrite(GREEN_LED, HIGH);
}
}
}
void capteurTask(void *pvParameters) {
while (1) {
digitalWrite(GREEN_LED, LOW);
digitalWrite(BUZZER, HIGH);
digitalWrite(RED_LED, HIGH);
if (digitalRead(interrupteur) == LOW) {
digitalWrite(GREEN_LED, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(RED_LED, LOW);
vTaskDelete(NULL);
}
}
}