Go Down

Topic: PROGRAMME URGENT (Read 5 times) previous topic - next topic

edwinre

Je ne comprends pas ce que tu veux dire par:

Quote
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.

Jean-François

Mets déjà exactement ce que tu veux par écrit..... et pas dans la version simplifiée !!
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 Pa

edwinre

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?

Code: [Select]
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?

Jean-François

#33
Dec 09, 2012, 06:16 pm Last Edit: Dec 09, 2012, 06:21 pm by Jean-François Reason: 1
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  :smiley-mr-green:


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
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 Pa

edwinre

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:

Code: [Select]
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++;

}

Go Up