bonjour à tous, je m'appel stéphane, je suis encore un novice de 41 ans qui cherche de l'aide.
je travaille sur un projet de photos d'insectes en vol.
afin de gratter quelques centièmes de seconde sur le déclenchement j'utilise le verrouillage du miroir.
actuellement la partie "else" fonctionne bien, mais tourne en boucle. Le "if" me se fait jamais.
j'ai détaillé le problème dans les commentaires du code.
si une bonne âme à une idée
merci à vous.
/*
*allumer led sur pin 10 lorque le sensor detecte quelque chose
*et bascule le relais en pin 3
*switch on led in pin 10 when sensor detect sth
*switch the relay on pin 10 for shooting*/
int ledPin = 10; // LED connected to digital pin 10
int Relay = 3; // relay connected to digital pin 3
const int InfraredSensorPin = 4;//Connect the signal pin to the digital pin 4void setup() {
pinMode(ledPin, OUTPUT); // initialize the digital pin as an output:
pinMode(Relay, OUTPUT); //Set Pin3 as output
pinMode(InfraredSensorPin,INPUT); // initialize the digital pin as an input:
digitalWrite(ledPin, LOW); // led on pin 10 switch off start
}void loop()
{
if(digitalRead(InfraredSensorPin) == LOW)
// déclechement lorsqu'un objet passe
// detect smth condition{
digitalWrite(ledPin,HIGH);
digitalWrite(Relay,HIGH);
// déclechement
// shooting
delay(50);
// l'appareil photo à besoin d'un minimum de temps pour reconnaitre un signal de déclecnchement
// dlsr need some 'time' to start shooting action
}else
// le probleme commence ici, il faut lancer un signal de déclenchement pour lever le miroir, et relancer l'action toute les 30 secondes.
// en effet le boitier ne peut maintenir le miroir que 30 secondes!
// je n'arrive pas à 'briser' le else, le progamme s'obstine à terminer le delay 30500, même si le capteur infrarouge detect quelquechose
// issue start here, to earn time for shooting, i use the top miror option on the DLSR, the camera can't hold the miror more than 30 sec
//but if the senor detect smth the signal on pin 4 can't break the 'else loop' and it want to finish de delay(30500)
{digitalWrite(Relay,HIGH);
delay(50);
digitalWrite(Relay,LOW);
delay(30500);}
}