start:arduino:moteur:paspas
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:arduino:moteur:paspas [2025/02/01 19:43] – [TB6560] admin | start:arduino:moteur:paspas [2025/02/01 20:06] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ======== | + | ======== |
- | === L298 === | + | ===== L298 ===== |
{{ : | {{ : | ||
Ligne 13: | Ligne 13: | ||
{{ : | {{ : | ||
- | === TB6560 === | + | ===== TB6560 ===== |
+ | |||
+ | Équipé d'un large dissipateur thermique, ce driver de moteur pas à pas permet de piloter un moteur pas à pas consommant jusqu' | ||
+ | |||
+ | De plus, cette carte est équipée de dip switch permettant un réglage aisé et pratique des différents paramètres de pilotage du moteur dont le courant par phase et la méthode d' | ||
+ | |||
+ | Les 3 entrées de la cartes sont protégées par 3 optocoupleurs et peuvent être connectées aussi bien en cathode commune qu'en anode commune si on veut inverser la logique de fonctionnement. | ||
{{ : | {{ : | ||
- | {{ : | + | {{ : |
+ | |||
+ | [[https:// | ||
+ | |||
+ | ====Câblage du TB6560 3A avec Arduino==== | ||
+ | |||
+ | Pour tirer pleinement parti du contrôleur TB6560 avec Arduino, il est essentiel de comprendre les connexions appropriées. Voici comment réaliser les connexions de base : | ||
+ | ===Connexions Requises=== | ||
+ | |||
+ | Les connexions essentielles à effectuer sont les suivantes : | ||
+ | |||
+ | *VCC (Tension d’Alimentation) : Connectez une source d’**alimentation de 10 à 35 VDC à la broche VCC du TB6560** pour alimenter le moteur. | ||
+ | *GND (Masse) : Assurez-vous de connecter la masse de l’alimentation à la broche GND pour une référence de tension commune. | ||
+ | *EN- et EN+ : Ces broches permettent de désactiver le moteur pas à pas en reliant EN- à GND. Si vous ne les utilisez pas, le moteur sera toujours activé. | ||
+ | *CW- et CW+ : Connectez CW- à la masse (GND) d’Arduino et CW+ à une broche d’Arduino (par exemple, broche 2) pour contrôler la direction de rotation. | ||
+ | *CLK- et CLK+ : Connectez CLK- à la masse (GND) d’Arduino et CLK+ à une broche d’Arduino (par exemple, broche 3) pour générer les impulsions de pas. | ||
+ | *A- et A+ ainsi que B- et B+ : Ces broches sont utilisées pour connecter les bobines du moteur pas à pas. La polarité n’a pas d’importance, | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ====Exemple de code Arduino TB6560==== | ||
+ | |||
+ | Maintenant que vous avez connecté le pilote et réglé les commutateurs DIP, il est temps de connecter l' | ||
+ | |||
+ | Ce croquis contrôle à la fois la vitesse, le nombre de tours et le sens de rotation du moteur pas à pas. | ||
+ | |||
+ | Vous pouvez copier le code en cliquant sur le bouton dans le coin supérieur droit du champ de code. | ||
+ | |||
+ | <code c exemple001.ino> | ||
+ | /* Example sketch to control a stepper motor with TB6560 stepper motor driver and Arduino without a library. More info: https:// | ||
+ | |||
+ | // Define stepper motor connections and steps per revolution: | ||
+ | #define dirPin 2 | ||
+ | #define stepPin 3 | ||
+ | #define stepsPerRevolution 1600 | ||
+ | |||
+ | void setup() { | ||
+ | // Declare pins as output: | ||
+ | pinMode(stepPin, | ||
+ | pinMode(dirPin, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // Set the spinning direction clockwise: | ||
+ | digitalWrite(dirPin, | ||
+ | |||
+ | // Spin the stepper motor 1 revolution slowly: | ||
+ | for (int i = 0; i < stepsPerRevolution; | ||
+ | // These four lines result in 1 step: | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(2000); | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(2000); | ||
+ | } | ||
+ | |||
+ | delay(1000); | ||
+ | |||
+ | // Set the spinning direction counterclockwise: | ||
+ | digitalWrite(dirPin, | ||
+ | |||
+ | // Spin the stepper motor 1 revolution quickly: | ||
+ | for (int i = 0; i < stepsPerRevolution; | ||
+ | // These four lines result in 1 step: | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(1000); | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(1000); | ||
+ | } | ||
+ | |||
+ | delay(1000); | ||
+ | |||
+ | // Set the spinning direction clockwise: | ||
+ | digitalWrite(dirPin, | ||
+ | |||
+ | // Spin the stepper motor 5 revolutions fast: | ||
+ | for (int i = 0; i < 5 * stepsPerRevolution; | ||
+ | // These four lines result in 1 step: | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(500); | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(500); | ||
+ | } | ||
+ | |||
+ | delay(1000); | ||
+ | |||
+ | // Set the spinning direction counterclockwise: | ||
+ | digitalWrite(dirPin, | ||
+ | |||
+ | // Spin the stepper motor 5 revolutions fast: | ||
+ | for (int i = 0; i < 5 * stepsPerRevolution; | ||
+ | // These four lines result in 1 step: | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(500); | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(500); | ||
+ | } | ||
+ | |||
+ | delay(1000); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====Comment fonctionne le code :==== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Le croquis commence par définir les broches de pas (CLK-) et de direction (CW-). Je les ai connectées aux broches 3 et 2 de l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | J'ai également défini une stepsPerRevolution constante. Comme j'ai réglé le pilote sur le mode micropas de 1/8, je l'ai réglé sur 1600 pas par tour. Modifiez cette valeur si votre configuration est différente. | ||
+ | |||
+ | <code c 001.ino> | ||
+ | // Définir les connexions du moteur pas à pas et les pas par tour : | ||
+ | #define dirPin 2 | ||
+ | #define stepPin 3 | ||
+ | #define stepsPerRevolution 1600 | ||
+ | </ | ||
+ | |||
+ | Dans la setup() section du code, toutes les broches de contrôle du moteur sont déclarées comme SORTIE numérique avec la fonction | ||
+ | |||
+ | <code c 002.ino> | ||
+ | void setup() { | ||
+ | // Declare pins as output: | ||
+ | pinMode(stepPin, | ||
+ | pinMode(dirPin, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Dans cette loop() section du code, nous laissons le moteur faire un tour lentement dans le sens horaire et un tour rapide dans le sens antihoraire. Ensuite, nous laissons le moteur faire 5 tours dans chaque sens à grande vitesse. Alors, comment contrôler la vitesse, le sens de rotation et le nombre de tours ? | ||
+ | |||
+ | <code c 003.ino> | ||
+ | // Set the spinning direction clockwise: | ||
+ | digitalWrite(dirPin, | ||
+ | |||
+ | // Spin the stepper motor 1 revolution slowly: | ||
+ | for(int i = 0; i < stepsPerRevolution; | ||
+ | { | ||
+ | // These four lines result in 1 step: | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(2000); | ||
+ | digitalWrite(stepPin, | ||
+ | delayMicroseconds(2000); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===Contrôler le sens de rotation :=== | ||
+ | |||
+ | Pour contrôler le sens de rotation du moteur pas à pas, nous définissons la broche DIR (direction) sur HIGH ou LOW. Pour cela, nous utilisons la fonction | ||
+ | |||
+ | ===Contrôler le nombre de pas ou de tours :=== | ||
+ | |||
+ | Dans cet exemple de schéma, les boucles for contrôlent le nombre d' | ||
+ | |||
+ | Notez que vous pouvez modifier le deuxième terme de la boucle for selon le nombre d' | ||
+ | |||
+ | ===Contrôler la vitesse :=== | ||
+ | |||
+ | La vitesse du moteur pas à pas est déterminée par la fréquence des impulsions que nous envoyons à la broche STEP. Plus la fréquence est élevée, plus le moteur tourne vite. Vous pouvez contrôler la fréquence des impulsions en modifiant | ||
+ | |||
+ | ====Installation de la bibliothèque AccelStepper==== | ||
+ | |||
+ | La bibliothèque AccelStepper écrite par Mike McCauley est une bibliothèque géniale à utiliser pour votre projet. L'un de ses avantages est qu' | ||
+ | |||
+ | Vous pouvez télécharger la dernière version de cette bibliothèque |
/home/chanteri/www/fablab37110/data/attic/start/arduino/moteur/paspas.1738435435.txt.gz · Dernière modification : de admin