-
Bonjour,
Je débute sur Arduino avec un châssis roulant de chez EasyRobotics.
Voici mon premier programme qui fait avancer et reculer sans cesse le robot :
-
int moteurGauche = 3 ; int moteurDroit = 11 ; int dirGauche = 12 ; int dirDroite = 13 ; void setup() { pinMode(moteurGauche, OUTPUT) ; pinMode(moteurDroit, OUTPUT) ; pinMode(dirGauche, OUTPUT) ; pinMode(dirDroite, OUTPUT) ; analogWrite(moteurGauche, 175) ; analogWrite(moteurDroit, 140) ; } void loop() { avance() ; delay(5000) ; recule() ; delay(5000) ; } //fonction pour faire avancer, reculer, etc... void avance() { digitalWrite(dirGauche, HIGH) ; digitalWrite(dirDroite, HIGH) ; } void recule() { digitalWrite(dirGauche, LOW) ; digitalWrite(dirDroite, LOW) ; }
Après plusieurs essai je me suis aperçu que c'était la fonction delay qui fixer le temps de fonctionnement
-
de chaque moteur donc la distance qu'il allait parcourir.
Et c'est la que je ne comprend pas pourquoi. La fonction delay est censé arrêter le programme en cours de la valeur entre parenthèse.
-
Donc pourquoi le faite d'arrêté le programme durant 5s fait que ce sont les moteurs qui fonctionne durant 5s.....??????
Quand j'ai écrit ce programme je me suis dit que sa ne pourrait pas marcher vu que rien n'indiquer au moteur combien de temps devais il tourner et pourtant malgré sa...
Merci de m'éclairer

Probleme de compréhension de ce programme...
Débuté par Stephane Durant, oct. 15 2014 03:34
2 réponses à ce sujet
#1
Posté 15 octobre 2014 - 03:34
#3
Posté 22 octobre 2014 - 05:39
Pour arrêter il faut mettre
digitalWrite(moteurGauche, LOW) ;
digitalWrite(moteurDroit, LOW) ;
je pense que tu peux aussi essayer avec Delay (0) au lieu de 5000
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users