Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #30 on: December 09, 2012, 11:57:27 am » |
Je ne comprends pas ce que tu veux dire par: J'aurais simplement utilisé un if avec un changement de la valeur bool à la fin du if. Est ce que le système compteur que j'ai mis en place fonctionne? Comme ça, ça pourrait me permettre d'avoir un répétition de boucle plus importante qu'avec une variable booléenne.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #31 on: December 09, 2012, 11:59:39 am » |
Mets déjà exactement ce que tu veux par écrit..... et pas dans la version simplifiée !!
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #32 on: December 09, 2012, 12:08:01 pm » |
Avec une variable booléenne je peux faire: *Marche moteur 5mins 300t/mins *Arret moteur Alors que avec un compteur je peux faire: quand le coompteur est réglé sur 3: *Marche moteur 5mins 300t/mins *Arret moteur *Marche moteur 5mins 300t/mins *Arret moteur *Marche moteur 5mins 300t/mins *Arret moteur Non? const byte PIN_VITESSE = 3; // Broche de contrôle du moteur par PWM
// Fonction d'initialisation hardware void setup() { pinMode(PIN_VITESSE, OUTPUT); // Mise en sortie de la broche connecté au moteur } void loop() { analogWrite(PIN_VITESSE, 12); // Génération d'un signal PWM contrôlant la vitesse du moteur a 300t/mins delay(300000); // le moteur reste allumé 5mins int compteur = 0; while(compteur != 1) { compteur++; } } Et est ce code marche correctement?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #33 on: December 09, 2012, 12:16:11 pm » |
les deux accolades autour de compteur ne servent à rien, tu est toujours dans la même condition. lorsque tu passes sur le "int compteur=0" tu mets compteur à "0" ensuite tu passes sur compteur ++ qui le mets à "1", la boucle suivant, tu passes sur tu passes sur le "int compteur=0" tu mets compteur à "0" ensuite tu passes sur compteur ++ qui le mets à "1", la boucle suivant, tu passes sur tu passes sur le "int compteur=0" tu mets compteur à "0" ensuite tu passes sur compteur ++ qui le mets à "1", la boucle suivant, tu passes sur tu passes sur le "int compteur=0" tu mets compteur à "0" ensuite tu passes sur compteur ++ qui le mets à "1", la boucle suivant, tu passes sur tu passes sur le "int compteur=0" tu mets compteur à "0" ensuite tu passes sur compteur ++ qui le mets à "1", la boucle suivant, tu passes sur ....... je coupe le courant  Fais un petit dessin avec des barrières qui se lèvent et se baissent lorsque ta variable compteur change de valeur. la barrière est en haut lorsque tu veux que ton moteur tourne et en bas lorsque Il doit être à l'arrêt. Avec un ligne de temps sur laquelle se déroule ton "scénario", tu mets une case où sera décrit l'action envisagée (test de la position de ta "barrière", mise en marche de ton moteur ou autre). Mais je pense sincèrement que tu perdrais moins de temps à lire les bases et comprendre les exemples plutôt que de faire du copier coller de bouts de code.... là il est pas long et tu n'as pas l'air d'avoir intégré l'essentiel
|
|
|
|
« Last Edit: December 09, 2012, 12:21:19 pm by Jean-François »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #34 on: December 09, 2012, 12:23:46 pm » |
Donc si je suis ce que tu as dis, je dois mettre int compteur = 0 en variable au tout début puis enlever les deux accolades, ce qui donne le code suivant: const byte PIN_VITESSE = 3; // Broche de contrôle du moteur par PWM int compteur = 0;
// Fonction d'initialisation hardware void setup() { pinMode(PIN_VITESSE, OUTPUT); // Mise en sortie de la broche connecté au moteur } void loop() { analogWrite(PIN_VITESSE, 12); // Génération d'un signal PWM contrôlant la vitesse du moteur a 300t/mins delay(300000); // le moteur reste allumé 5mins while(compteur != 1)
compteur++;
}
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #35 on: December 09, 2012, 12:28:24 pm » |
C'est mieux, mais ton while() est toujours faux (regarde les opérateurs de comparaison): http://arduino.cc/en/Reference/IfEt pas au bon endroit : http://arduino.cc/en/Reference/WhileEt ne mets pas ton compteur dans ton while().... il ne fonctionnera qu'un fois
|
|
|
|
« Last Edit: December 09, 2012, 12:32:49 pm by Jean-François »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #36 on: December 09, 2012, 12:35:04 pm » |
Comme cela? Mais j'ai toujours un petit doute sur les accollades! const byte PIN_VITESSE = 3; // Broche de contrôle du moteur par PWM int compteur = 0;
// Fonction d'initialisation hardware void setup() { pinMode(PIN_VITESSE, OUTPUT); // Mise en sortie de la broche connecté au moteur } void loop() { analogWrite(PIN_VITESSE, 12); // Génération d'un signal PWM contrôlant la vitesse du moteur a 300t/mins delay(300000); // le moteur reste allumé 5mins while(compteur < 1) compteur++; }
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #37 on: December 09, 2012, 12:51:26 pm » |
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #38 on: December 09, 2012, 01:18:45 pm » |
Ok, merci Le code est-il quand même bon?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #39 on: December 09, 2012, 01:23:00 pm » |
C'est un peu comme si tu construisais un mur en mettant des briques du ciment, du sable et de l'eau.... si c'est pas mis dans le bon ordre, malgré que les éléments soient bon, c'est pas bon.....
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #40 on: December 09, 2012, 01:26:20 pm » |
Donc, il y a des choses qui ne sont pas dans le bon ordre?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #41 on: December 09, 2012, 01:28:35 pm » |
C'est un peu ce que je t'explique depuis un moment 
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #42 on: December 09, 2012, 01:35:45 pm » |
Je ne vois vraiment pas ce qui peut-être dans le désordre.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #43 on: December 09, 2012, 01:42:17 pm » |
Pourtant avec les exemples donnés tu devrais trouver. Un autre explication : Imagine le while() comme une boite (de nuit pour l'exemple  ) il y a un portier à l'entrée, il ne laisse passer que les hommes accompagné d'une femme. Un couple rentre dans la boite.... il se passes des choses (comme ton moteur qui devrait tourner, mais là on censure  ). Le mec content d'avoir fait son affaire sort pour fumer une cigarette..... mais comme il n'est plus accompagné, il ne peut plus rentrer. Alors, il fait un tour de quartier et embarque une autre copine avec lui.... il peut à nouveau rentrer et youpi tralalala.... Si il ne trouve personne, il continue à marcher en rond autour du paté de maison. Avec ça, tu peux écrire ton programme, ça se passe de la même façon et le portier, il est à l'entrée, pas à la sortie de la boite de nuit 
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #44 on: December 09, 2012, 01:47:23 pm » |
C'est vrai que c'est plus clair: Ca devarit être bon maintenant: const byte PIN_VITESSE = 3; // Broche de contrôle du moteur par PWM int compteur = 0;
// Fonction d'initialisation hardware void setup() { pinMode(PIN_VITESSE, OUTPUT); // Mise en sortie de la broche connecté au moteur } void loop() { while(compteur < 1) analogWrite(PIN_VITESSE, 12); // Génération d'un signal PWM contrôlant la vitesse du moteur a 300t/mins delay(300000); // le moteur reste allumé 5mins compteur++; }
|
|
|
|
|
Logged
|
|
|
|
|
|