Conseil programmation moteur pas à pas débutant

demandeinfos
sam, 09/15/2018 - 07:12
Bonjour,
Je vais bientôt réaliser les 2 montages suivants :
Montage 1 :
TB6600 + carte Arduino UNO + Nema 17 + Alimentation 12V400, Microstepper TB6600 sur 1A et « Microstep » sur 1/8, et avec les branchements entre la carte Arduino et le pilote ainsi :
ENA-(ENA), DIR-(DIR) & PULL-(PULL) --> relié à l'un des ports GND de la carte Arduino Uno
ENA+(+5V) --> relié à DIGITAL PORT 8 de la carte Arduino Uno
DIR+(+5V) --> relié à DIGITAL PORT 7 de la carte Arduino Uno
PULL+(+5V)-- > relié à DIGITAL PORT 4 de la carte Arduino Uno
Montage 2 :
TB6560 + carte Arduino UNO + Nema 17 + Alimentation 12V400, Microstepper TB6560 sur SW1 On, SW2 Off, SW3 On, S1 Off, S2 On, S3 Off, S4 Off, S5 On, S6 On, et avec les branchements entre la carte Arduino et le pilote ainsi :
CLK-, CW-, EN- pin GND de la carte Arduino Uno
CLK+ pin 4 de la carte Arduino Uno
EN+ pin 8 de la carte Arduino Uno
CW+ pin 7 de la carte Arduino Uno
Ma question concerne la programmation dans Arduino comme je débute. Je souhaiterais pour l’instant uniquement faire tourner les moteurs et pouvoir faire varier la vitesse.
Dans ce tuto, j’ai trouvé ce programme :
#include <AccelStepper.h>
AccelStepper stepper(1,9,2); //le 9 représente la sortie de l'arduino avec laquelle tu controles la vitesse, et le 2 le sens de rotation.
void setup()
{
stepper.setMaxSpeed(2000);V//vitesse max du moteur en nombre de steps par seconde
stepper.setSpeed(100);//Réglage de la vitesse du moteur
}
void loop()
{
stepper.runSpeed();// fait tourner le moteur à la vitesse réglée.
}
Mes questions sont les suivantes :
- pourrai-je utiliser en copier-coller ce programme pour l’utiliser compte tenu de mon montage (moyennant les questions ci-dessous) ?
- « AccelStepper stepper » : comment adapter cette ligne de commande à mes montages ?
- « stepper.setMaxSpeed » : comment définir cette vitesse ?
- comment arrêter le moteur (quelle procédure) lorsque le programme a été lancée ?
Je vous remercie d’avance d’un premier retour sur ce post, si vous pouviez me donner quelques explications pour que je puisse comprendre les grands principes. Je peux aussi en plus dans un second temps consulter des tutos pour débutant si vous en connaissiez spécifiquement sur la programmation Arduino pour ce type de montage.
Bonne journée.
demandeinfos
sam, 09/15/2018 - 13:48
Merci !!
Par contre c'est un peu confus pour moi, je ne comprends pas la terminologie, et je m'aperçois que je vais devoir aller consulter quelques tutos.
Auriez-vous connaissance de "bons" tutos spécifiquement sur le sujet ?
Bon après-midi.
demandeinfos
dim, 09/16/2018 - 09:27
Bonjour,
Je ne connaissais ce document mais bravo à l’auteur car toutes les bases sont données, beaucoup d'infos aussi pour bien comprendre les notions de de base en programmation et électricité, mais 400 pages de tutos faut s’accrocher quant on démarre ;)
Jusqu’à p50 j’ai appris plein de choses, ok pour le fonctionnement de la carte, je trouve aussi p51/p52 très claires sur les commandes setup/void.
Après je m'y perds un peu ce n'est pas ce que recherche (affichage écran, clignotement de LED ...). ll faut aller p419 pour découvrir la fonction « Stepper », je n’ai pas trouvé d’informations sur « Accelstepper » et la différence entre les deux.
Suite à ma lecture, je peux essayer de faire ci-dessous deux propositions pour mon montage, en espérant respecter vos consignes pour la diffusion du code :
ou alors
Dans le 1er code "stepper.setMaxSpeed" et dans le 2ème pour "moteur.setSpeed(30)", comment sait-on si c'est des tours/sec ou tours/ min ?
Je profite d'avoir lu le tuto pdf pour vous demander si avec ce genre de montage, c'est envisageable d'utiliser Ardublock ?
Grand merci d'avance pour vos conseils.
demandeinfos
dim, 09/16/2018 - 14:23
Pour le pilote, j'ai les deux, mais je partirai d'abord sur le TB6600.
J'ai joint mon schéma au post (obtenu en me faisant aideré, peut-être à (re)valider).
Sinon depuis ce matin je poursuis mes lectures, et je me demande si mon programme va ressembler à quelque chose comme ça ? :
Après mes lectures, inclure une bibliothèque ok, fonction setup et loop ok, lancer un programme ok, je crois que setSpeed() c'est ok.
Par contre, pour ces fonctions je n'ai pas compris leur utilité/principe et réglage : Stepper objet (x, x, x, x), step () et delay().
Merci d'avance pour votre retour, de mon côté, je poursuis.
demandeinfos
dim, 09/16/2018 - 17:06
Merci beaucoup pour ce retour, nous avons beaucoup échangé mais il me reste 2-3 petites questions :
- pour le pin 9, ne serait-ce pas 7 selon mon schéma, donc AccelStepper stepper(1, 8, 7) ? (ou peut-être que je n'ai pas compris et peu importe que ce soit sur 7 ou 9 ?)
- je souhaiterais aussi savoir à quoi servent "unsigned long temp" et "long Speed" ?
- dans " stepper.setMaxSpeed(10000) " je vois pas d'où vient le "10000" ?
je me demandais du coup si le programme ne pourraît pas être sans potentiomètre :
Merci d'avance, bonne soirée.
demandeinfos
ven, 09/28/2018 - 15:07
Erratum - supprimé
demandeinfos
dim, 09/16/2018 - 17:12
si j'arrivais à faire ça ce serait top +1, je mets ce programme bien de côté
bon, je vais essayer une fois que j'aurai réussi au moins à faire tourner le moteur :)
juste pour info, où je peux commander ce type de bouton (et le potar aussi), si je pouvais avoir un exemple sur le web ?
je voudrais bien svp aussi si c'était possible un retour sur mes questions :
- pour le pin 9, ne serait-ce pas 7 selon mon schéma, donc AccelStepper stepper(1, 8, 7) ? (ou peut-être que je n'ai pas compris et peu importe que ce soit sur 7 ou 9 ?)
- je souhaiterais aussi savoir à quoi servent "unsigned long temp" et "long Speed" ?
- dans " stepper.setMaxSpeed(10000) " je vois pas d'où vient le "10000" ?
bonne fin d'après-midi
demandeinfos
dim, 09/16/2018 - 17:28
Merci beaucoup.
Me reste plus que ça à comprendre :
- je souhaiterais aussi savoir à quoi servent "unsigned long temp" et "long Speed" ?
- dans " stepper.setMaxSpeed(10000) " je vois pas d'où vient le "10000" ?
mais pas d'urgence
Bonne soirée
demandeinfos
dim, 09/16/2018 - 21:27
Merci encore, je commence à y voir plus clair.
J'ai compris votre retour pour les 10000 mais je me demandais aussi quelle est l'unité de cette valeur (tr/s, tr/min, pas/s ...) et du coup comment on sait combien on peut mettre mas/min (si ce n'était pas claire, je peux reformuler) ?
Bonne soirée
demandeinfos
lun, 09/17/2018 - 10:38
Bonjour,
Est-ce que ce ne serait pas ça l'histoire des 10 000 ??
dans " stepper.setMaxSpeed(10000) "
10000 en pas/s, donc si mon moteur fait 200 pas, ça correspond à 50 tours/s, or, s'il est configuré en microstepping 1/16, il a dans ce cas comme 3200 pas donc 10000 pas/s correspond dans ce cas à ~3 tours/s ou ~180 tours/min, qui est le maximum fixé dans le programme
dans " stepper.setSpeed(Speed)",
si je remplace par stepper.setSpeed(3200) (si le TB6600 est sur 1/16) par exemple, il fera 1 tour/s soit 60 tour/min dès lors que le programme sera lancé, dans les faits il tournera à cette vitesse.
Si c'était bien ça, je n'ai par contre pas trop d'idées à combien peut tourner au maximum un moteur Nema 17 comme je vais utiliser ?
Merci d'avance pour votre retour,
Bonne journée.
demandeinfos
ven, 09/28/2018 - 15:06
Bonjour,
Je reviens sur le post car depuis j'ai réussi à faire tourner mon moteur avec UNO+TB6600+Nema17, et
avec le programme suivant
dans l'idée de pouvoir arrête/stopper et de faire varier la vitesse selon l'envie j'ai acquis ces deux matériels :
- https://www.robot-maker.com/shop/composants/90-potentiometre-multitour.h...
- https://www.robot-maker.com/shop/composants/36-interrupteur-miniature.ht...
Pourriez-vous svp me dire si c'était possible de réaliser un branchement, vous m'aviez déjà donné quelques notions mais pour moi c'est nouveau et avec potentiomètre + interrupteur ça devient un peu compliqué ?
Pour info en matériel supplémentaire j'ai des fils breadboards et une breadboard, je ne pourai pas faire de soudure.
Merci d'avance.
RichardV
mer, 12/12/2018 - 10:16
Bonjour
J'arrive un peut tard, mais j'ai réalisé une interface de commande avec un arduino uno et ou 1 moteur pas a pas Nema 17 avec une interface L298N ou 1 moteur pas 28BJ-48 et une interface ULN2003. C'est visible sur le site de Fritzing a l'adresse http://fritzing.org/projects/commande-moteur-pas-a-pas-ver-20
il y a 3 BP de commande
* commande marche arrêts avec 2 possibilités
- 1 appuie et le moteur tourne et un autre appuie le moteur s' arrête
ou
- tant que le bouton est appuyé le moteur tourne
* 1 bouton d'inversion du sens de marche
* 1 bouton pour faire tourner le moteur d'un seul pas a la fois
De plus il y une résistance variable pour adapter la vitesse du moteur le tout en 5V (avec possibilité de le mettre en 12V)
J'ai rassemblé tout ces boutons sur un petit circuit imprimé pour le coté pratique
en fichier joint il y a tout ce qu'il faut pour la création de l'ensemble
Walter
mer, 12/12/2018 - 10:15
Je ne comprend pas ta réponse Spy, il me semblait qu'un double pont en H pouvait piloté 2 moteur DC ou 1 moteur pas à pas (2 phases, 4 fils)?
De mémoire je crois que la datasheet du L298, le précise.
Walter
mer, 12/12/2018 - 11:05
Oui, mais peux tu détailler pourquoi cela n'est pas adapté.
Puisque cela est possible d'après le fabriquant, quelles sont les limites et les problèmes potentiels?
Walter
mer, 12/12/2018 - 12:22
Nickel, en plus avec un code d'utilisation près à l'emploi!, sur AliExpress le A4948 semble être à moins d'1€, c'est ça?
Effectivement pourquoi ce priver :)
Jetfuzz
mer, 12/12/2018 - 13:09
Hello
je m'étais posé la même question que Walter.
je me suis arrêté sur le couple L297 + L298 lorsque j'ai fait ma commande num, (version coquery).
Effectivement bien jolie ce petit 4948.
je vais peux être faire un upgrade.
Merci pour toutes ces infos
Jetfuzz
meuh
jeu, 12/13/2018 - 21:33
Salut Spy,je viens juste de faire l essai de ton premier soft, encore impressionnant effectivement la vitesse max est impressionnante les accélération et décélération aussi j. Je voulais l essayer avant de"m' immiscer " dans le tutos .Je n ai pas tous compris mais je pense que le deuxième soft va clarifier cela .Encore bravo moi qui fait des essai avec accelstepper depuis un petit moment sur une manip ....
A+
demandeinfos
dim, 02/23/2020 - 16:12
Bonjour,
Je reviens sur mon post car ce montage est toujours d'actualité.
Il est comme ceci : avec l'arduino Uno j'ai réussi à faire tourner avec petit sketch 2 Nema 17 relié à 2 TB6600 (réglés sur 16 pas/3200 pulses et 1.5 A), et le tout est rélié sur une breadbord où il y a un interrupteur et un potentiomètre (pour les 2 Nema 17).
J'ai ajouté sur ce montage un Nema 23 avec son TB6600 (réglé aussi sur 16 pas/3200pulses et 3A). Les fils qui sortent du Nema 23 (bleu, rouge, vert, jaune) sont branchés comme ceci sur le TB660 : Bleu = B-, Rouge = B+, Vert = A-, Jaune = A+. Et pour les fils reliés à la Breadboard, ils sont positionnés comme pour ceux des Nema 17.
L'alimentation du tout est toujours assurée par une alim 400W (input 220V AC 3.62A ; output +12V----33A).
Quand je mets en route, les 2 Nema17 tournent bien mais le Nema23 ne tournent pas et vibre en faisant du bruit ?
Auriez-vous une idée de où je pourrai avoir un problème ?
Merci d'avance pour vos retours.
Anonyme
dim, 02/23/2020 - 19:03
Essaye d'inverser le fil bleu et le fil rouge !
demandeinfos
dim, 02/23/2020 - 19:13
bonsoir
ça n'a rien fait
Anonyme
lun, 02/24/2020 - 06:56
Alors c'est que tu as inversé Pul avec Dir ou autre vérifie bien tous tes branchements. Pour t'en assuré bascule le connecteur du Nema 23 (uniquement celui qui comporte l'alimentation et les quatre fil du moteur sur un autre TN6600 qui fonctionne avec un Nema 17.
demandeinfos
lun, 02/24/2020 - 08:32
Bonjour,
En effet, c'était une inversion, des fils du moteur, ça fonctionne maintenant.
Merci pour vos réponses.
Bonne journée.
Anonyme
mar, 02/25/2020 - 09:07
De rien c'est avec plaisir.