[RESOLU] Probleme de Switch/Case
je suis à la fois content de moi et à la fois très frustré.
dans un de highspeed photography, j'ai réussi à faire un montage qui tient la route et un code qui fait ce que je veux.
sauf qu'il ne le fait pas quand je veux.
normalement, il doit attendre un premier bruit fort pour déclencher l'appareil photo (qui est en mode bulb)
le son est géré par en sensor qui me renvoie un signal digital si je dépasse un seuil réglé par un potentiomètre intégré au sensor. pas de threshold dans le code donc puis géré dans le sensor directement.
au boum suivant, il doit déclencher le flash.
puis après une petite pause, il doit couper l'appareil photo.
seulement, avant qu'il y ait du bruit, il me déclenche le flash. ensuite l'appareil photo, ensuite il coupe l'appareil photo. mais il n'attend aucun bruit pour faire les choses, dans le mauvais ordre qui plus est (mais je n'en suis pas sur à 100% il les fait peut-être presque en même temps et le flash est plus rapide que l'appareil).
voici mon code
dans un de highspeed photography, j'ai réussi à faire un montage qui tient la route et un code qui fait ce que je veux.
sauf qu'il ne le fait pas quand je veux.
normalement, il doit attendre un premier bruit fort pour déclencher l'appareil photo (qui est en mode bulb)
le son est géré par en sensor qui me renvoie un signal digital si je dépasse un seuil réglé par un potentiomètre intégré au sensor. pas de threshold dans le code donc puis géré dans le sensor directement.
au boum suivant, il doit déclencher le flash.
puis après une petite pause, il doit couper l'appareil photo.
seulement, avant qu'il y ait du bruit, il me déclenche le flash. ensuite l'appareil photo, ensuite il coupe l'appareil photo. mais il n'attend aucun bruit pour faire les choses, dans le mauvais ordre qui plus est (mais je n'en suis pas sur à 100% il les fait peut-être presque en même temps et le flash est plus rapide que l'appareil).
voici mon code
code: [select]
int flashpin = 13; // pin qui declenche le flash
int soundpin = 7; // pin qui capte le signal du son
int boutonpin = 7; // pin qui lit le bouton. idem que son en attendant achat bouton
int dslrpin = 5; // pin qui declenche la cam
int lightpin = 3; // pin qui capte la variation lumineuse
int relaypin = 2; // pin qui coupe la lumiere dans la piece
int bruit = 0; // variable de lecture du son
int bouton = 0; // variable de lecture du bouton start
int etape = 1; // variable d'etat
void setup()
{
pinmode(soundpin, input); // capteur du son est une entree
pinmode(lightpin, input); // capteur de lumiere est une entree
pinmode(boutonpin, input); // bouton de mise en route (soundtrigger en attendant achat)
pinmode(dslrpin, output); // declenchement de la cam est une sortie
pinmode(flashpin, output); // declenchement du flash est une sortie
pinmode(relaypin, output); // relais 220v pour couper ou allumer la lampe dans la piece
}
void loop()
{
switch(etape) {
case 1: {
// on attend le bouton de mise en route qui existe pas encore donc sound la place
bruit = digitalread(soundpin); // lecture du son
if (bruit = high)
{
// digitalwrite(relaypin, low); // on coupe la lumiere via le relais
delay(50); // on attend 50 millisecondes pourrait etre remplace par lecture lightpin
digitalwrite(dslrpin, high); // on ouvre obturateur du dslr
etape++; //increment pour etape suivante
}
break;
}
case 2: {
// on ecoute le son de declenchement
bruit = digitalread(soundpin); // lecture du son
if (bruit = high)
{
digitalwrite(flashpin, high); // declenchement du flash
delay(20);
digitalwrite(flashpin, low); // arret envoi signal au flash
etape++; //increment pour etape suivante
}
break;
}
case 3: {
// on revient dans le monde normal
delay(50); // petite pause
digitalwrite(dslrpin, low); // fermeture obturateur
delay(50); // petite pause
// digitalwrite(relaypin, high); // on allume la lumiere
etape++; //increment pour etape suivante
break;
}
default: {
break; // on ne fait rien
}
}
}
il n'y aucun délai en fin de boucle, quand un bruit est détecté, il peut faire toutes les étapes et le bruit ne sera toujours pas fini
pour ton problème de déclenchement sans qu'aucun bruit n'ai été fait, tu es sur d'avoir bien réglé le potentiomètre de ton sensor ?
pour ton problème de déclenchement sans qu'aucun bruit n'ai été fait, tu es sur d'avoir bien réglé le potentiomètre de ton sensor ?
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > [RESOLU] Probleme de Switch/Case
arduino
Comments
Post a Comment