Go Down

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

Jean-François

#45
Dec 09, 2012, 07:49 pm Last Edit: Dec 09, 2012, 07:50 pm by Jean-François Reason: 1
C'est mieux.

Maintenant ta boite de nuit, il faut lui mettre des portes :

- les accolades.



C'est marrant dès qu'on parle de s'envoyer en l'air, on comprend mieux.....  XD
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

edwinre

Les portes ont été rajoutés:

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() {
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++;
}
}

Jean-François

Ton compteur va fonctionner qu'un fois  :smiley-mr-green:

Le reste devrait fonctionner.

Ensuite si tu utilises un while, autant utiliser millis() plutôt que delay(), mais c'est un peu plus compliqué à utiliser  XD

En utilisant millis(), le programme ne se fige pas comme avec delay(), mais continue et peut traiter d'autres choses..... mais c'est pour plus tard  XD
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

Il manque encore la partie qui arrête le moteur....
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

edwinre

Quote
Ton compteur va fonctionner qu'un fois 

Le reste devrait fonctionner.
Coment ca, il devrait fonctionner le nombre de fois que j'aurais mis dans while?

Pour l'arrêt du moteur:

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() {
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++;
if (compteur == 1)
{
analogWrite(PIN_VITESSE, 0)
}
}
}


ou sinon:

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() {
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++;
if (compteur == 1)
{
analogWrite(PIN_VITESSE, 0)
}
else
{
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++;
}
}
}


Mais je pencherais plutôt pour le second code, qui est plus général et qui marchera beaucoup mieux.

Jean-François


Mais je pencherais plutôt pour le second code, qui est plus général et qui marchera beaucoup mieux.


Effectivement, tu maitrises bien le sujet....  :smiley-mr-green:

Ton while étant à 1 la boucle ne passera qu'un fois....

Pourquoi mettre un if tout d'un coup ?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

edwinre

oui mai si jamais je veux mettre un while à 3, il vaut mieux mettre la deuxième proposition, non?

Jean-François

#52
Dec 09, 2012, 10:18 pm Last Edit: Dec 09, 2012, 10:21 pm by Jean-François Reason: 1
Et comme ça ton moteur ne s'arrêtera plus  :smiley-mr-green: mais bon... voilà  XD

Edit : j'avais pas vu que tu avais rajouté un deuxième while.... tu as mis un sas à l'entrée de ta boite de nuit  ? XD
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

edwinre

Donc quelle moyen je dois utiliser pour que mon moteur s'arrête?

Jean-François

tu mets simplement ta pin_vitesse à 0 en dehors du while.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

edwinre

Ce qui donnerai ça:


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() {
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++;
}
analogWrite(PIN_VITESSE, 0)
}

Jean-François

#56
Dec 10, 2012, 07:06 am Last Edit: Dec 10, 2012, 07:09 am by Jean-François Reason: 1
Ton compteur ne fonctionnera que de la valeur du while.....
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

edwinre


Jean-François

Le while dit : tant que la valeur est inférieur à ce qui est écrit dans ma configuration, ça rentre dans ma boite.... autrement ça passe tout droit.

Disons que tu mette ton while à 3, à chaque boucle ça rentre dans la boite et ça incrémente ton compteur de 1, à la troisième boucle, ton compteur est à 3, correspondant à la valeur du while.... et ça passe tout droit, sans incrémenter ton compteur, donc ton compteur ne fonctionne que 3 fois si il est dans la boucle du while.

Mets le en dehors et il continuera à fonctionner.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

edwinre

En dehors du void loop() alors?

Go Up