Go Down

Topic: PROGRAMME URGENT (Read 6651 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy