Ligne 64 : |
Ligne 64 : |
| | | |
| == Connecter le moteur == | | == Connecter le moteur == |
− | Four, six, and eight-wire stepper motors can be driven by the DRV8825 if they are properly connected; a [http://www.pololu.com/product/2133/faqs FAQ answer] explains the proper wirings in detail.
| + | Vous pouvez piloter des moteurs pas-à-pas à 4, 6 et 8 fils avec le DRV8825 si vous les branchez correctement; La [http://www.pololu.com/product/2133/faqs Foire Aux Questions (FAQ)] de Pololu explique comment réaliser ce montage en détail. |
| | | |
− | {{ambox-stop|text=Connecting or disconnecting a stepper motor while the driver is powered can destroy the driver. (More generally, rewiring anything while it is powered is asking for trouble.)}} | + | {{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.}} |
| + | |
| + | === Exemple Arduino === |
| + | Vous trouverez ci-dessous deux montages types de moteurs pas-à-pas bipolaires à 4 fils. |
| + | Ces exemples sont issus de notre tutoriel sur le [[A4988#Exemple_Arduino|pilote de moteur pas-à-pas A4988]] (moins puissant) qui dispose d'un brochage compatible avec le DRV8825 :-) |
| + | |
| + | ==== Codification rouge, bleu, vert, noir ==== |
| + | [[fichier:Montage Rouge-Bleu-Vert-Noir.jpg|640px]]<br />Cliquez pour agrandir |
| + | |
| + | ==== Codification rouge, jaune, vert, gris ==== |
| + | Cette codification est utilisé pour les {{pl|236|moteurs pas-à-pas que nous proposons ici chez MC Hobby}}. |
| + | |
| + | [[fichier:Montage Rouge-Jaune-Vert-Gris.jpg|640px]]<br />Cliquez pour agrandir |
| + | |
| + | === 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 == |