// Pins de contrôle des LEDs pour le bargraphe
const int ledPin1 = 18;
const int ledPin2 = 19;
const int ledPin3 = 17;
const int ledPin4 = 21;
static int taskCore0 = 0;
static int taskCore1 = 1;
// Définition des pins des capteurs PIR
const int pirSensorPin1 = 25;
const int pirSensorPin2 = 26;
const int pirSensorPin3 = 27;
const int pirSensorPin4 = 14;
void ledTask(void * pvParameters) {
int pirState1 = 0;
int pirState2 = 0;
int pirState3 = 0;
int pirState4 = 0;
while(true) {
pirState1 = digitalRead(pirSensorPin1);
pirState2 = digitalRead(pirSensorPin2);
pirState3 = digitalRead(pirSensorPin3);
pirState4 = digitalRead(pirSensorPin4);
digitalWrite(ledPin1, pirState1);
digitalWrite(ledPin2, pirState2);
digitalWrite(ledPin3, pirState3);
digitalWrite(ledPin4, pirState4);
delay(1000); // Peut être ajusté selon la fréquence désirée
}
}
void setup() {
// Initialisation des pins des LEDs en sortie
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
// Initialisation des pins des capteurs PIR en entrée
pinMode(pirSensorPin1, INPUT);
pinMode(pirSensorPin2, INPUT);
pinMode(pirSensorPin3, INPUT);
pinMode(pirSensorPin4, INPUT);
Serial.begin(9600);
delay(1000);
Serial.print("Starting to create task on core ");
Serial.println(taskCore1);
// Création de la tâche pour l'affichage des états des capteurs sur le bargraphe
xTaskCreatePinnedToCore(
ledTask, // Fonction de la tâche
"ledTask", // Nom de la tâche
10000, // Taille de la pile en mots
NULL, // Paramètre d'entrée de la tâche
1, // Priorité de la tâche
NULL, // Handle de la tâche
taskCore1 // Core où la tâche doit s'exécuter
);
Serial.println("LED Task created...");
}
void loop() {
Serial.println("Starting main loop...");
while(true){
delay(1000);
} // no delay – CPU is occupied 100%
}