Arreter la boucle. | Vos projets | FORUM

ATTENTION : Même si le site vous reconnait, il est possible que vous deviez vous connecter spécifiquement sur le forum pour pouvoir répondre ou poster un message!

A A A
Avatar

SVP pensez à vous inscrire
guest

sp_LogInOut Connexion sp_Registration S'inscrire

S'inscrire | Mot-de-passe perdu ?
Recherche avancée

— Activité du forum —




— Match —





— Options du forum —





La longueur du mot recherché est au minimum de 3 caractères et au maximum de 84 caractères

sp_Feed Flux RSS du sujet sp_TopicIcon
Arreter la boucle.
08/01/2016
15:23
Avatar
Mordi
Member
Membres utilistaeurs
Nombre de messages du forum : 8
Membre depuis :
20/05/2015
sp_UserOfflineSmall Hors ligne

Bonjour! Et bonne année à toutes et à tous!

Je suis en tain de préparer un projet pour faire marcher 5 servos.
Charque servo doit s’activer de manière decalé (une minute après le predécesseur). 
Une fois le cinquième s’est activé, le cycle doit se reinitier.

J’ai produit le script que je vous envoie ci-dessous (et en pièce jointe).

Le seul problème:

je voudrais qu’au bout de 15 cycles, le mouvement s’arrête.

j’ai essayé d’utiliser le command « for », mais, evidemment je ne le place pas correctement dans le scrpt, car le système ne s’arrête pas tant que je ne debranche pas l’alimentation.

Comment devrais je faire?

A bientôt,

Fernando.

 

———————–

#include <Servo.h>

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;

void setup()
{
  servo1.attach(3);
  servo2.attach(4);
  servo3.attach(5);
  servo4.attach(6);
  servo5.attach(7);
}

void loop()
{
  servo1.write(135);
  delay(2000);
  servo1.write(0);
  delay(3000);
  servo2.write(135);
  delay(2000);
  servo2.write(0);
  delay(3000);
  servo3.write(135);
  delay(2000);
  servo3.write(0);
  delay(3000);
  servo4.write(135);
  delay(2000);
  servo4.write(0);
  delay(3000);
  servo5.write(135);
  delay(2000);
  servo5.write(0);
  delay(3000);
}
  ————————

08/01/2016
16:39
Avatar
tuxun
Modérateur
Membres utilistaeurs

Membres Administratifs

Moderateurs
Nombre de messages du forum : 61
Membre depuis :
15/01/2014
sp_UserOfflineSmall Hors ligne

Bonjour Fernando, bonnes fêtes a toi aussi 🙂

la fonction « loop() » est la fonction en boucle qu’execute Arduino sans arrêt un fois qu’il a démarré et executé UNE FOIS la fonction « setup() ».

Tu as raison une boucle for te serait très utile. tu pourrais mettre ton cycle dans une fonction prenant en paramètre le servo que tu veux bidouiller:

#include <Servo.h>

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;

//setup() s’execute une fois au démarrage.

void setup()

{

  servo1.attach(3);
  servo2.attach(4);
  servo3.attach(5);
  servo4.attach(6);
  servo5.attach(7);

  //appelle 15 fois « cycle » sur chaque servo

  for (int counter=0;counter<15;counter++)

  {

    cycle(servo1);
    cycle(servo2);
    cycle(servo3);
    cycle(servo4);
    cycle(servo5);
  }
    //apres on appelle loop() indéfiniment
}

void loop()

{
  //avec un delay dedans c’est mieux 🙂
  delay(1000);
}

void cycle(Servo servotoexec)
{
  servotoexec.write(135);
  delay(2000);
  servotoexec.write(0);
  delay(3000);
}

par contre fait attention que l’alimentation de tous ces servos ne passent pas par l’arduino si ils mangent beaucoup de courant!

(tu peux utiliser fritzing pour faire des schemas et les poster ici 🙂 )

A bientot!

10/01/2016
18:59
Avatar
Mordi
Member
Membres utilistaeurs
Nombre de messages du forum : 8
Membre depuis :
20/05/2015
sp_UserOfflineSmall Hors ligne

Merci!

Comment dois je faire pour donner de l’alimentations aux servos sans les brancher à l’Arduino?

 

A bientôt,

Fernando

10/01/2016
22:53
Avatar
tuxun
Modérateur
Membres utilistaeurs

Membres Administratifs

Moderateurs
Nombre de messages du forum : 61
Membre depuis :
15/01/2014
sp_UserOfflineSmall Hors ligne

Bonsoir 🙂

Ca risque d’etre compliqué à expliquer par écrit mais en gros il faut brancher l’entrée d’alimentation de tes moteurs en parallèle avec l’alimentation de l’arduino. SI tes moteurs mangent trop de courant seulement, sinon on s’en fiche un peu^^

(tu dois trouver combien de courant ton arduino peut delivrer et combien tes moteurs en veulent ca doit etre ecrit dans leur datasheet)

A bientot

Fuseau horaire du forum :Europe/Paris

Nb max. d'utilisateurs en ligne : 22

Actuellement en ligne :
1 Invité(s)

Consultent cette page actuellement :
1 Invité(s)

Auteurs les plus actifs :

Gérard: 10

Mordi: 8

chb: 8

Quentin Drouin: 8

jean-marc-alain: 7

tholdak: 6

Greg: 5

badeyes: 5

Brigitte A: 3

Otaron: 3

Statistiques des membres :

Invités : 0

Membres : 242

Modérateurs : 6

Administrateurs : 8

Statistiques du forum :

Groupes : 5

Forums : 12

Sujets : 79

Messages :349

Nouveaux membres :

sylvie.vo, Berny3762, Julien Dcalk, cmaphoto37, ChantelleLecourt37, ChantelleLecourt, pascaleosty, Gwen37, clecle226, TyZef

Modérateurs : Séb Debeil: 4, Thierry SUTTON: 0, hervedecaux: 2, tuxun: 61, Romain Lalande: 7, Julien Kerlo: 2

Administrateurs : admin: 0, Didier Roudaut: 81, Cyrille: 21, Nico: 34, Shimegi: 28, Fabien Allanic: 6, jf.vigneron: 11, francois: 1

Les commentaires sont clos.