Projet fin d'année

Bonjour, j’aurais besoin de votre aide pour programme une balise.
Je m’explique il faut que j’arrive à programme la balise de façon à qu’elle éclaire seulement à partir
du luminosité inférieur à 500 et à la détection d’une personne ainsi qu’un relay pour une commande manuel de sur la LED de la balise.

Outil : une carte arduino mega, 1 Led, 2 capteur de présence (infrarouge), 1 capteur light sensor, un relay relié à un interrupteur.

j’ai commence un programme mais je suis pas sûr qu’il est bon :

// le temps que met le capteur à ce calibrer ( 10-60 secondes selon la fiche technique )
int calibrationTime = 30;
// Le temps le dispositif restera sur
int delayTime = 5000;

int ledPin = 13; // LED
int inputPin = 2; // capteur de présence
int relayPin = 3; // relay
int pirState = LOW; // état iniale du capteur (aucun movement détecté)
int stateRelay = HIGH;
int val = 0; // Variable pour la lecture de l’état de la broche
const int pinLDR = 6; // capteur de luminosité
int LDRValue = 0;
int light_sensitivity = 500;

void setup() {
pinMode(ledPin, OUTPUT); // Déclare LED en sortie
pinMode(relayPin, OUTPUT);
pinMode(inputPin, INPUT); // Déclarer le capteur entrée
Serial.begin(9600);
digitalWrite(relayPin, stateRelay);
// donner au capteur un certain temps pour qu’il ce calibre
Serial.print(“calibrage du capteur “);
for(int i = 0; i < calibrationTime; i++){
Serial.print(”.”);
delay(1000);
}
Serial.println(“CAPTEUR ACTIVÉ”);
delay(50);
}

void loop(){
LDRValue = analogRead(pinLDR);
Serial.println(LDRValue);
delay(100);

if (LDRValue < light_sensitivity) // vérifier la luminosité

val = digitalRead(inputPin); // Lire la valeur d’entrée

if (val == HIGH) { // Vérifier si l’entrée est HAUT
digitalWrite(ledPin, HIGH); // allume la led
delay(300);

if (pirState == LOW) {

Serial.println(“Personne detecté!”);

pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // éteindre la led
delay(300);
if (pirState == HIGH){

Serial.println(“Aucune personne detecté!”);

pirState = LOW;
}
}

Serial.println(pirState);
if(pirState == HIGH){
digitalWrite(relayPin, LOW);
delay(delayTime);
} else {
digitalWrite(relayPin, HIGH);
}
}

Merci d’avance :wink: .

bonjour, utilises la balise code pour le programme, merci

j'ai commence un programme mais je suis pas sûr qu'il est bon :

si tu le compile pas et l'essaye pas, comment veux tu savoir? ;)