La flemme de tout redémonter pour simplifier et mettre juste le cablage minimum, je fais avec les photos que j'ai déjà:
Moteur NEMA 17 + Stepper TB6600 genre + Arduino (Nano, Uno, Mega, ...) + alim entre 9 et 40V (1 vieille de PC portable pour moi):
https://www.amazon.fr/gp/product/B07FKJ ... UTF8&psc=1
Rq.: 2 choses bof avec les moteurs pas à pas :
- ici le couple est de 40Ncm, ce qui n'est pas énorme, avec ma démultiplication, celui de la hauteur peut parfois sauter.
- pas de grandes vitesses de rotation si besoin.
Tu branches :
- L'alim de PC au 2 1ere bornes du Stepper : VCC+ et GND-
- Les 4 fils du moteur aux 4 bornes suivantes A+A-B+B-, elles fonctionnent 2 par 2. Le plus simple pour savoir lesquelles, tu en branches 2 et si le moteur résiste lorsque tu essayes de le faire tourner à la main, c'est bon, tu peux brancher les 2 autres sinon, essayes une autre combinaison.
- Les PULL+ et DIR+ (fil blanc) au +5V de ta carte Arduino (en série).
- Le PULL- à la borne Digitale 2 (D2)
- Le DIR- à la borne Digitale 3 (D3)
- Ton Arduino à ton PC

- IMG_20201226_135138.jpg (81.75 Kio) Consulté 1211 fois
Ci-après le code minimal, (j'ai pas pu tester si j'avais correctement simplifié) avec quelques commentaires.
Le tuto spécifique Arduino sera pour une autre fois, ou facile à trouver sur internet.
Avec la librairie AccelStepper à ajouter dans Arduino. Ce n'est pas la seule possibilité, c'est ce que j'ai pris moi.
Pour info, la borne 'Step' / 'Pull' donne une impulsion pour avancer et la borne Dir donne le sens.
Code : Tout sélectionner
#include <AccelStepper.h> // Librairie à ajouter
#define C_MotorAzimuteStepPin 2 //Pin raccordé
#define C_MotorAzimuteDirPin 3 //Pin raccordé
#define motorInterfaceType 1 // Type de moteur
AccelStepper V_StepperAzimute = AccelStepper(motorInterfaceType, C_MotorAzimuteStepPin, C_MotorAzimuteDirPin); // Definition du moteur
void setup() {
Serial.begin(57600); // Pour la connexion au PC
V_StepperAzimute.setMaxSpeed(1000); // Vitesse maxi
V_StepperAzimute.setAcceleration(100); // Acceleration desiree
}
void loop() {
V_StepperAzimute.move(2000); // Nombre de pas a faire
V_StepperAzimute.run(); // Avance de 1 pas à chaque Loop
}
Voila le principe de base.