#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);
pinMode(GREEN_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
Serial.println(" début de Système .");
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);
Serial.println("Surveillance activée.");
}
}
}
void capteurTask(void *pvParameters) {
while (1) {
digitalWrite(GREEN_LED, LOW);
digitalWrite(BUZZER, HIGH);
digitalWrite(RED_LED, HIGH);
Serial.println("Alarme activée.");
if (digitalRead(interrupteur ==LOW)) {
digitalWrite(GREEN_LED, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(RED_LED, LOW);
Serial.println("Alarme désactivée.");
vTaskDelete(NULL);
}
}
}