Go Down

Topic: Gérer le temps du void loop (Read 249 times) previous topic - next topic

Brozher

Apr 17, 2019, 11:44 pm Last Edit: Apr 18, 2019, 12:43 am by Brozher
Salut,
Je suis un débutant et ce programme permet de faire tourner mon moteur pas à pas qui tourne à l'infini, mais moi je veux juste le faire tourner pendant 10 secondes est-ce possible ? avec une fonction millis

Code: [Select]
int v = 2 ;
unsigned long chrono ;

void setup()
{
 
  pinMode(12, OUTPUT); //CH A
  pinMode(13, OUTPUT); //CH B
 
  pinMode(9, OUTPUT); //brake CH A
  pinMode(8, OUTPUT); //brake CH B
  chrono = millis () ;
}
void loop()

{
 {
  while (millis() - chrono < 10000ul) {             
  digitalWrite(9, HIGH);  //CH A
  digitalWrite(8, HIGH); //CH B
  digitalWrite(12, LOW);   //direction CH A
  digitalWrite(13, LOW);   //direction CH B
  analogWrite(3, 255);   //Bouger CH A 3
  delay(v);
  digitalWrite(9, LOW);  // CH A
  digitalWrite(8, HIGH); //CH B
   digitalWrite(12, HIGH);   //direction CH A
  digitalWrite(13, LOW);   //direction CH B
  analogWrite(11, 255);   //Bouger CH B 11
  delay(v);
  digitalWrite(9, LOW);  //CH A
  digitalWrite(8, LOW); //CH B
  digitalWrite(12, HIGH);   //direction CH A
  digitalWrite(13, HIGH);   //direction CH B
  analogWrite(13, 255);   //Bouger CH A 13
  delay(v);
  digitalWrite(9, HIGH);  //CH A
  digitalWrite(8, LOW); //CH B
   digitalWrite(12, LOW);   //direction CH A
  digitalWrite(13, HIGH);   //direction  CH B
  analogWrite(11, 255);   //Bouger CH B 11
  delay(v);
  }
}
}

lesept

#1
Apr 17, 2019, 11:56 pm Last Edit: Apr 17, 2019, 11:58 pm by lesept
Oui
Tu crées une variable globale
Code: [Select]
unsigned long chrono ;
Et tu l'initialises dans le setup, à la fin
Code: [Select]
chrono = millis () ;
Puis au début de la loop tu ajoutes
Code: [Select]
while (millis() - chrono < 10000ul) {
Et tu fermes l'accolade à la fin de la loop

Mais avant tout ça, édite ton message pour mettre ton code entre balises code sinon il va finir à la poubelle... Pour savoir comment faire ça, lis les messages épinglés en haut du forum
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Brozher

Déjà merci d'avoir répondu si rapidement et je ne vois pas où sont les messages épinglés  :smiley-confuse:

icare

#3
Apr 18, 2019, 12:12 am Last Edit: Apr 18, 2019, 12:13 am by icare
Bonjour,
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Brozher

#4
Apr 18, 2019, 12:39 am Last Edit: Apr 18, 2019, 12:45 am by Brozher
lesept,

le moteur ne tourne pas il fait du surplace :/

icare

2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Brozher

Ca y est j'ai réussi !
Merci beaucoup icare :D

Brozher

C'est bon j'ai réussi sa marche !!!
Merci lesept  :D

Go Up