Go Down

Topic: Utiliser valeur du potentiomètre pour décaler une action (Read 8 times) previous topic - next topic

B@tto


gunsman76

La fonction delay ne va pas trop bloquer mon programme ?


1 --> déclenchement

2 --> action 1 + 1,2 secondes sur pin 5
3 --> action 2 + 1,4 secondes sur pin 6
4 --> action 3 + 1,8 secondes sur pin 7

les secondes peuvent être plus ou moins importante et toujours par rapport au déclenchement.

Christian_R

// déclenchement à  t=0
delay(1200;)  //Attendre t=1.2 s
// Action 1,2 secondes sur pin 5

delay(200);  // 200 ms plus tard, soit t=1.4 s
//Action 1,4 secondes sur pin 6

delay(400); //400 ms plus tard soit t = 1.8 s
// action 1,8 secondes sur pin 7

Sinon avec la fonction millis() et des tests sur t
Christian

gunsman76

Merci à tous pour vos réponses, mais en fait soit je me suis mal exprimé, soit vous m'avez mal compris.

Les temps que je donne ne sont pas figé... c'est pour ça qu'il me faut un potard pour justement pouvoir intervenir sur le temps entre le moment ou la cellule détecte l'objet et le moment ou l'on passe à l'action.

Sinon je n'aurais embêter personne, j'aurais justement joué avec la fonction delay.


J'ai un déclenchement A, je souhaite que ce déclenchement déclenche une action X seconde plus tard. Sachant que X est déterminé par la position du Potard.


Voilà en espérant avoir été plus clair.


Donc dans le programme, il ne faut pas que j'ai une fonction delay


Merci encore pour votre aide

B@tto

Interruption temporelle :
Code: [Select]

long Depart;
boolean Flag;
....
if(digitalRead(10)==HIGH){ // un bouton est appuyé
Depart=millis();
Flag=TRUE;  // on lève le flag pour signigier une nouvelle action
}

if((millis()-Depart)>analogRead(Potar*Facteur) && Flag==TRUE){   // si le temps est écoulé et que l'action ne s'est pas déjà produite
Action();
Flag=FALSE; // le flag est abaissé pour eviter de relancer Action() au prochain passage
}


Go Up