Bonjour a tous,
débutant en arduino, mais aussi sur ce forum, j’espère poster dans la bonne section
j'ai des soucis concernant le codage, et je vais tenter d’être clair.
*entre temps j'ai modifié le code, *
je vais essayer par étape ça évitera de tout mélanger.
tout fonctionne sauf les tempos
le relai => A5
capteur lumiere => A0
lors du démarrage, le capteur de lumière s'active automatiquement et teste la présence de lumière
si la lumiere est presente je souhaite qu'il attente 5 seconde avant d'activer le relai... pour l'activer pendant 4 secondes
mais il active immédiatement..
voici le code qui fonctionne en partie (detection lumiere, pilotage relai...)
le soucis c'est les tempos
int pinCapteur = A0; // le capteur Lumiere
int pinRelay = A5; // le relais ELECTRO AIMANT
int photocellReading = analogRead(pinCapteur);
int Ordre_Tempo = 0;
unsigned long Tempo_Repos = 5000; // tempo repos de 8s
unsigned long Temps_Actuel;
unsigned long Temps_Precedent;
void setup() {
Serial.begin(115200); //initialisation moniteur série à 115200baud
pinMode(pinCapteur, INPUT); // on veut lire le capteur
pinMode(pinRelay, OUTPUT);
digitalWrite(pinRelay, HIGH); // éteint le relai ELECTRO AIMANT
Serial.println("--- Initialisation");
}
void loop() {
Temps_Actuel = millis();
//photocellReading = analogRead(pinCapteur);
// **** DETECTION LUMIERE *****
if (digitalRead(pinCapteur) == LOW)
{ // Si presence lumiere
Ordre_Tempo = 1;
}
if (Ordre_Tempo ==1){
if ((Temps_Actuel - Temps_Precedent) < Tempo_Repos) {
digitalWrite(pinRelay, HIGH); // Allume relai
Serial.println("** Electro Aimant");
}
else {digitalWrite(pinRelay, LOW);
}
}
}