Ligne 67 : |
Ligne 67 : |
| | | |
| {{ambox-stop|text=Connecter ou déconnecter le moteur pas-à-pas pendant que la carte est sous tension peut la détruire. D'une façon générale ce n'est jamais une bonne idée modifier les raccordements d'un montage si celui-ci est sous tension.}} | | {{ambox-stop|text=Connecter ou déconnecter le moteur pas-à-pas pendant que la carte est sous tension peut la détruire. D'une façon générale ce n'est jamais une bonne idée modifier les raccordements d'un montage si celui-ci est sous tension.}} |
− |
| |
− | === Le code ===
| |
− | Le seul point a relever dans ce code est le comportement de la broche ''ENABLE'' branché sur la sortie 13 d'Arduino.
| |
− |
| |
− | ''Enable'' fonctionne en logique inverse!
| |
− |
| |
− | Cela signifie que:
| |
− | * Le module est activé lorsque la sortie 13 est LOW (niveau bas) - L'axe du moteur est donc maintenu bloqué en attente du prochain pas.
| |
− | * Le module est désactivé lorsque la sortie 13 est HIGH (niveau haut) - L'axe du moteur est donc totalement libre de tout mouvement puisque le moteur est désactivé.
| |
− |
| |
− | <nowiki>// --- Commande d'un StepStick/Driver A4988 ----------------------
| |
− | // DRV8825_Test.ino
| |
− | //
| |
− | // Commande d'un moteur pas-à-pas à l'aide d'un pilote DRV8825 avec
| |
− | // Arduino.
| |
− | //
| |
− | // Un projet www.mchobby.be (vente de kit et composant)
| |
− | // Meurisse D. - Licence CC-SA-BY
| |
− | //
| |
− | // Un tutoriel http://wiki.mchobby.be/index.php?title=DRV8825
| |
− | // Ou Acheter un StepStick DRV8825
| |
− | // http://shop.mchobby.be/product.php?id_product=454
| |
− | //
| |
− |
| |
− | #define pinEnable 13 // Activation du driver/pilote
| |
− | #define pinStep 9 // Signal de PAS (avancement)
| |
− | #define pinDir 8 // Direction
| |
− |
| |
− |
| |
− | void setup(){
| |
− | Serial.begin(9600);
| |
− | Serial.println("Test DRV8825");
| |
− |
| |
− | pinMode( pinEnable, OUTPUT );
| |
− | pinMode( pinDir , OUTPUT );
| |
− | pinMode( pinStep , OUTPUT );
| |
− | }
| |
− |
| |
− | void loop(){
| |
− | int i = 0;
| |
− |
| |
− | digitalWrite( pinDir , HIGH); // Direction avant
| |
− | digitalWrite( pinStep , LOW); // Initialisation de la broche step
| |
− |
| |
− | // Avance de 200 pas
| |
− | for( i=0; i<200; i++){
| |
− | Serial.println( i );
| |
− | digitalWrite( pinStep, HIGH );
| |
− | delay( 10 );
| |
− | digitalWrite( pinStep, LOW );
| |
− | delay( 10 );
| |
− | }
| |
− |
| |
− | // Changer de direction
| |
− | digitalWrite( pinDir , LOW); // Direction avant
| |
− |
| |
− | // Refaire 200 pas dans l'autre sens
| |
− | for( i=0; i<200; i++){
| |
− | Serial.println( i );
| |
− | digitalWrite( pinStep, HIGH );
| |
− | delay( 1 );
| |
− | digitalWrite( pinStep, LOW );
| |
− | delay( 1 );
| |
− | }
| |
− |
| |
− | // Pas de step et pas d'ordre...
| |
− | // l'axe du moteur est donc bloqué
| |
− | Serial.println("Axe bloqué + attendre 5 sec");
| |
− | delay( 5000 );
| |
− |
| |
− | // déblocage de l'axe moteur
| |
− | Serial.println("Deblocage axe");
| |
− | digitalWrite( pinEnable, HIGH ); // logique inversée
| |
− |
| |
− | // Fin et blocage du programme
| |
− | // Presser reset pour recommander
| |
− | Serial.println("Fin de programme");
| |
− | while( true );
| |
− | }</nowiki>
| |
| | | |
| == Step et micro-Stepping == | | == Step et micro-Stepping == |