Arduino: code pour un moteur DC !
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Arduino: code pour un moteur DC !



  1. #1
    urtechnic

    Arduino: code pour un moteur DC !


    ------

    Bonjours, j'en vient a vous pour vous demander un peu d'aide; j'ai un montage avec arduino (qui fonctionne parfaitement) avec un moteur DC et 2 pas a pas, le problème c'est que malgré que le DC marche, il est plus compliqué a commander avec le code que les pas a pas ! J'ai quand même trouvé mais je me pause quelque questions:
    -quel est le code pour stopper le moteur ? car souvent il continue son mouvement même si j'ai mis un delay, et digitalWrite(enablePin, LOW); ne marche pas !
    -le HIGH et le LOW sont fait pour envoyer le courant sur le + ou le - du moteur c'est sa ?
    -doit-je obligatoirement mettre digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); pour stopper le moteur ?

    voici mon code (ne prenez compte que du moteur DC en bas)

    Code:
    #include <Stepper.h>
    
    const int stepsPerRevolution = 245;
                                         
    
    Stepper Stepper1(stepsPerRevolution, 2,3,4,5);       
    Stepper Stepper2(stepsPerRevolution, 6,7,8,9);      
    
    int motor1Pin1 = 11;
    int motor1Pin2 = 12;
    int enablePin = 10;
    
    
    void setup() {
    
       // set all the other pins you're using as outputs:
      pinMode(motor1Pin1, OUTPUT);
      pinMode(motor1Pin2, OUTPUT);
      pinMode(enablePin, OUTPUT);
    
    
      Stepper1.setSpeed(80);
      Stepper2.setSpeed(80);
      Serial.begin(9600);
    }
    
    void loop() {
    /*
       Stepper1.step(stepsPerRevolution);
      delay(500);
    
       Stepper2.step(stepsPerRevolution);
      delay(500);
      
       Stepper1.step(-stepsPerRevolution);
      delay(500); 
    
       Stepper2.step(-stepsPerRevolution);
      delay(500); 
    
    */
      digitalWrite(enablePin, HIGH);
    
     // Le moteur tourne dans un sens 
      digitalWrite(motor1Pin1, LOW);
      digitalWrite(motor1Pin2, HIGH);
    
      delay( 700 );
    
      digitalWrite(motor1Pin1, LOW);
      digitalWrite(motor1Pin2, LOW);
    
    
      // Le moteur tourne dans l'autre sens 
      digitalWrite(motor1Pin1, HIGH);
      digitalWrite(motor1Pin2, LOW);
      
      delay(110);
       
        
    
      digitalWrite(motor1Pin1, LOW);
      digitalWrite(motor1Pin2, LOW);
      
      
    
    while(1){}
    }
    Merci !

    -----

  2. #2
    r4ph

    Re : Arduino: code pour un moteur DC !

    Salut,

    Pour arrêter le moteur tu peux aussi écrire
    DigitalWrite(motorPin1,HIGH);
    DigitalWrite(motorPin2,HIGH);

    Pour savoir ce que fait enablePin il manque le schéma....

  3. #3
    dje8269

    Re : Arduino: code pour un moteur DC !

    Bonjour,

    Je ne connais pas trop encore le langage C . Mais si tu ne met pas de pause après l'extinction, tu n'as pas le temps de voir qu'il s'est éteint . Peut etre qu'avec l'inertie, il lui faut une pause un peu plus longue genre de 1 seconde pour bien le voir.
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  4. #4
    urtechnic

    Re : Arduino: code pour un moteur DC !

    merci, j'ai trouvé, dje8269: c'était bien sa mon problème !

    Par contre quand je veut stop le moteur dc j'écris DigitalWrite(motorPin1,LOW); DigitalWrite(motorPin2,LOW);
    avec un delay (par ex 5 sec) puis je demande ensuite a un pas a pas de bouger, mais le probleme c'est que je ne peut pas bouger le PaP pendant ce temp la, en gros, est il possible de faire fonctionner un moteur pendant qu'un autre est en pause avec delay ? ou y a til une autre commande ?

  5. A voir en vidéo sur Futura
  6. #5
    mkh.mourad

    Re : Arduino: code pour un moteur DC !

    la fonction delay() est une fonction bloquante. le microcontrôleur entre dans une boucle et fais rien pendants la durée du délai.
    pour un moteur DC, on l'arrête avec un frein électromagnétique qui agit mécaniquement sur sont arbre ( c'est une solution pour les grands moteur!! à oublier certainement). toute l'énergie cinétique est transformée en énergie thermique par frottement.
    sinon tu as d'autres solutions d'arrêt moins précise: mettre les deux fils du moteur au même potentiel ( c'est comme un cour circuit ), le moteur dc devient une petite génératrice court-circuitée.
    ou mettre un réducteur à engrenages, ca aide a réduire la grandeur d'inertie

  7. #6
    r4ph

    Re : Arduino: code pour un moteur DC !

    Citation Envoyé par urtechnic Voir le message
    est il possible de faire fonctionner un moteur pendant qu'un autre est en pause avec delay ? ou y a til une autre commande ?
    Il est possible de le faire. La fonction step() est bloquante comme la fonction delay(). C'est à dire que le programme ne fera rien dd´autre jusqu'à ce que le nombre de pas soit complété. Mais suivant temps que cela lui prends, mettons 0,5 s. Et que tu veux un delay de 5 sec. Fais une boucle de 10 fois la commande de x temps pour arriver au délai désiré tout en faisant tourner un moteur pas à pas:

    for(i=0;i<Y;i++) // prends Y fois un certain temps tout en faisant tourner le moteur
    Stepper1.step(Xpas); // prends un certain temps

  8. #7
    urtechnic

    Re : Arduino: code pour un moteur DC !

    merci ! j'essayerai, et comment puis je commander 2 moteurs en même temps ?

  9. #8
    r4ph

    Re : Arduino: code pour un moteur DC !

    Rajoute simplement la commande du 2ème moteur dans la boucle for... Le certain temps sera celui du 1er + du 2ème moteur.

  10. #9
    urtechnic

    Re : Arduino: code pour un moteur DC !

    merci vraiment ! Si j'ai bien compris: for(i=110;i<90;i++) où 110 et 90 sont 2 moteur differents ? et le i++ c'est quoi ?
    et Stepper1.step(Xpas) ces pour le faire tourner sa non ?

  11. #10
    r4ph

    Re : Arduino: code pour un moteur DC !

    Pas touts fait... Il te manque probablement quelques bases. Tu pourra trouver ici une liste assez exhaustive des fonctions Arduino. Dont quelques bases de C comprenant par exemple la boucle for. Regarde ça et reviens avec des questions si besoin.
    http://arduino.cc/en/Reference/HomePage
    A+

  12. #11
    urtechnic

    Re : Arduino: code pour un moteur DC !

    merci j'ai trouvé la même chose traduite: http://www.mon-club-elec.fr/pmwiki_r...Main.Reference
    ainsi que la partie sur for: http://www.mon-club-elec.fr/pmwiki_r...php?n=Main.For
    en effet je suis novice en arduino, j'ai regardé j'essayerai plus tard, par contre je ne comprend pas a quoi sert le i++

  13. #12
    r4ph

    Re : Arduino: code pour un moteur DC !


  14. #13
    urtechnic

    Re : Arduino: code pour un moteur DC !

    merci ! plus qu'a tester

Discussions similaires

  1. code barrière IR + écran LCD avec arduino
    Par kobelakers dans le forum Électronique
    Réponses: 9
    Dernier message: 14/03/2014, 07h17
  2. Dé-compiler le code Arduino d'une Attiny85 .?
    Par qcastl32 dans le forum Électronique
    Réponses: 5
    Dernier message: 21/06/2013, 22h07
  3. Arduino moteur pas a pas
    Par Aminux100 dans le forum Électronique
    Réponses: 0
    Dernier message: 24/04/2013, 22h26
  4. Protection d'un Arduino UNO avec hacheur pour moteur
    Par inviteef8d9eb8 dans le forum Électronique
    Réponses: 19
    Dernier message: 12/08/2011, 16h39
  5. Programmer un carte Arduino pour contrôler un moteur pas à pas
    Par JFSGeneva dans le forum Électronique
    Réponses: 2
    Dernier message: 22/05/2008, 06h28
Découvrez nos comparatifs produits sur l'informatique et les technologies.