J'ai ce programme pour contrôler un moteur courant continu de 9V, le programme le fait accélérer et déccélérer , jusqu'à la, tout va bien mais le problème ce que je veux qu'au bout de 5 secs, il s'arrête complètement et ne redémarre plus. Comment faire?
// déclarer la variable pour contenir la pin associée au moteur
int pinMoteur = 9;
void setup()
{
// spécifier que la pin liée au moteur est une sortie
pinMode(pinMoteur, OUTPUT);
}
void loop()
{
// boucle pour faire accélérer le moteur
for (int i = 0 ; i <= 255 ; i++)
{
//envoyer la valeur de 0 à 255
analogWrite( pinMoteur, i);
// attendre 10 millisecondes pour donner le temps de réaliser l'accélération
delay(10);
}
// boucle pour faire décélérer le moteur
for (int j = 0 ; j <= 255 ; j++)
{
//envoyer la valeur de 255 à 0
analogWrite( pinMoteur, 255 - j);
// attendre 10 millisecondes pour donner le temps de réaliser l'accélération
delay(10);
}
}
Ensuite, je voudrais savoir comment faire pour au lieu contrôler un moteur, en contrôler deux.
Dans mon circuit, j'utilise un transistor NPS BC337, une résistance de 2.2 Kohm, une diode de roue libre, une pile de 9 V et une arduino mega.
le branchement est comme en pièce jointe. Et il marche très bien en réalité.
Merci.
Edwin
Tu crée une fonction que tu appellera a chaque fois que tu veut que ton moteur s’arrête, c'est pas très compliqué avec le PWM car 0% signifie en quelque sorte 0v et 100% Vmax
J'ai essayé de mettre la boucle millis et delay mais il ne s'arrête toujours pas:
// déclarer la variable pour contenir la pin associée au moteur
int pinMoteur = 9;
void setup()
{
// spécifier que la pin liée au moteur est une sortie
pinMode(pinMoteur, OUTPUT);
}
void loop()
{
unsigned long time = millis();
while( millis() - time < 5000)
{
// boucle pour faire accélérer le moteur
for (int i = 0 ; i <= 255 ; i++)
{
//envoyer la valeur de 0 à 255
analogWrite( pinMoteur, i);
// attendre 10 millisecondes pour donner le temps de réaliser l'accélération
delay(10);
}
// boucle pour faire décélérer le moteur
for (int j = 0 ; j <= 255 ; j++)
{
//envoyer la valeur de 255 à 0
analogWrite( pinMoteur, 255 - j);
// attendre 10 millisecondes pour donner le temps de réaliser l'accélération
delay(10);
}
}
}
Et quelle valeur de résistance je dois mettre dans le circuit (2.2 K ohm suffit?)?
Comment ça? La fonction millis? Je ne l'ai jamais utilisée, comment faire pour ce programme? Je veux juste qu'après que le moteur deccélère, il se stoppe complètement et ne redémarre surtout pas ou ne recommance pas la boucle.