Go Down

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

fdufnews

Quote
Par exemple, je veux que mon moteur aille a 300t/mins pendant 5 mins, dois-je faire comme ça?

Je voudrais pas faire mon désagréable mais dans le post juste au-dessus je t'ai mis un lien vers la référence de la commande delay(). Il y a un exemple commenté qui n'est quand même pas difficile à adapter à ton besoin s'il est aussi basique que ça. Il faudrait peut être lire les exemples et comprendre ce que tu fais. je pense que cela te ferait gagner un temps précieux (et à nous aussi d'ailleurs).

edwinre

Ok, donc si je suis l'explemple:

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
}

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
analogWrite(PIN_VITESSE, 12); // Génération d'un signal PWM contrôlant la vitesse du moteur a 0t/mins



Et j'ai enlevé la boucle voidloop() pour que le moteur ne recommence pas le cycle: allume 300t/mins pdt 5 mins - arret à l'infini

Jean-François

Sans void loop() ça n'ira pas....

Il faut absolument que tu commences  par les bases  :smiley-mr-green:
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

Alors je remets void loop():

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
analogWrite(PIN_VITESSE, 12); // Génération d'un signal PWM contrôlant la vitesse du moteur a 0t/mins
}


Mais si je le laisse, le moteur va faire:
Allumer 5 mins a 300t/mins
Arret
Allumer 5 mins a 300t/mins
Arret
Allumer 5 mins a 300t/mins
Arret
...

Non?

Jean-François

Le void loop() est une boucle infinie.

A toi de déterminer les conditions pour que ton moteur tourne selon ce que tu veux.

Commence par mettre par écrit ce que tu veux, Ex :

-moteur tourne à droite pendant 5 minutes
-stop pendant 30 secondes
-moteur tourne à gauche pendant 2 minutes
-pendant que le moteur tourne, faire un café.... (suivant comment tu programmes ton contrôleur peut faire des autres choses...  ;))
-stop 0,5 secondes
-moteur tourne à droite pendant 1 minute
-...

Ensuite tu simplifies :

-D300000
-S30000
-etc


Et ensuite tu élabores tes conditions :

-si le moteur tourne à droite, il devra tourner dans l'autre sens au démarrage suivant.
-si il à fait deux démarrage, il peux démarrer dans un sens ou dans l'autre suivant une autre condition.
-si le café n'est pas chaud, il faut remettre la séquence à 0.... etc

Ensuite, tu commences à regarder la prog et à comprendre un peu mieux ce que tu fais.... et nous aussi  XD
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

Go Up