Problème résolu 😅
Mon câblage avait un souci , le reset et le sleep n'était pas relié.
C'était pourtant sous mes yeux mais bon
Aller savoir 😌
- Mike118 aime ceci
Posté par Victorien - 20 novembre 2022 - 07:37
Posté par Victorien - 01 juillet 2022 - 08:25
coucou les copins .
alors voilas ,je me suis l'ansé dans la motorisation de mon télescope .
j'ais donc deux moteurs pas a pas nema ( un pour le suivi de l'astre a observer ) et ( un pour la mise au point du focus )
je pilote c'est moteur avec une carte arduino et deux driver ( un pour chaque moteur)
grasse a vous j'ais pu réaliser ce programme avec accelstepper .
#include <AccelStepper.h> #define suiviDirPin 4 #define suiviStepPin 5 #define boutonAccelererPin 6 #define boutonRalentirPin 7 #define boutonMarchePin 8 #define boutonArretPin 9 AccelStepper stepperSuivi(1, suiviStepPin, suiviDirPin); #define zoomDirPin 2 #define zoomStepPin 3 #define boutonZoomInPin 10 #define boutonZoomOutPin 11 AccelStepper stepperZoom(1, zoomStepPin, zoomDirPin); void setup() { pinMode(suiviDirPin, OUTPUT); pinMode(suiviStepPin, OUTPUT); pinMode(boutonAccelererPin, INPUT_PULLUP); // L'autre cote du bouton au GND pinMode(boutonRalentirPin, INPUT_PULLUP); // " " " pinMode(boutonMarchePin, INPUT_PULLUP); // " " " pinMode(boutonArretPin, INPUT_PULLUP); // " " " pinMode(zoomDirPin, OUTPUT); pinMode(zoomStepPin, OUTPUT); pinMode(boutonZoomInPin, INPUT_PULLUP); // L'autre cote du bouton au GND pinMode(boutonZoomOutPin, INPUT_PULLUP); // " " " } void loop() { stepperSuivi.setMaxSpeed(2000); if (digitalRead(boutonAccelererPin) == LOW) { // Si le bouton Accelerer est pressed stepperSuivi.setSpeed(1000); } else if (digitalRead(boutonRalentirPin) == LOW) { // Si le bouton Ralentir est pressed stepperSuivi.setSpeed(20); } else if (digitalRead(boutonMarchePin) == LOW) { // Si le bouton Marche est pressed stepperSuivi.setSpeed(100); } else if (digitalRead(boutonArretPin) == LOW) { // Si le bouton Arret est pressed stepperSuivi.setSpeed(0); } else { } stepperSuivi.runSpeed(); // fait tourner le moteur a vitesse réglée stepperZoom.setMaxSpeed(2000); if (digitalRead(boutonZoomInPin) == LOW) { // Si le bouton Zoom In est pressed stepperZoom.setSpeed(200); } else if (digitalRead(boutonZoomOutPin) == LOW) { // Si le bouton Zoom Out est pressed stepperZoom.setSpeed(-200); } else { stepperZoom.setSpeed(0); } stepperZoom.runSpeed();// fait tourner le moteur à la vitesse réglée. }
mais j'ais deux soucis
-souci numero 1 , mon moteur de suivi chauffe beaucoup trop
avant j'utilisais ce programme qui ne me faisais pas de surchauffe .
/* Name: Vitesse MPAP Auteur: vitou */ #define tempoDepart 2080; int tempo = 0; // Moteur arrete int tempoAccelerer = -800; int tempoRalentir = 900; int tempoAddition = 0; #define driverDirPin 4 #define driverStepPin 5 #define boutonAccelererPin 6 #define boutonRalentirPin 7 #define boutonMarchePin 8 #define boutonArretPin 9 void setup() { pinMode(driverDirPin, OUTPUT); pinMode(driverStepPin, OUTPUT); pinMode(boutonAccelererPin, INPUT_PULLUP); // L'autre cote du bouton au GND pinMode(boutonRalentirPin, INPUT_PULLUP); // " " " pinMode(boutonMarchePin, INPUT_PULLUP); pinMode(boutonArretPin, INPUT_PULLUP); digitalWrite(driverDirPin, LOW); // On met la broche DIR a l'etat bas } void loop() { for (int i = 0; i <= 200; i++) { tempoAddition = 0; if (digitalRead(boutonAccelererPin) == LOW) // Si le bouton accelerer est presse { tempoAddition = tempoAccelerer; } else if (digitalRead(boutonRalentirPin) == LOW) // Si le bouton freiner est presse { tempoAddition = tempoRalentir; } else if (digitalRead(boutonMarchePin) == LOW) // Si le bouton marche est presse { tempo = tempoDepart; } else if (digitalRead(boutonArretPin) == LOW) // Si le bouton marche est presse { tempo = 0; } if (tempo > 0) { digitalWrite(driverStepPin, LOW); delayMicroseconds(tempo + tempoAddition); digitalWrite(driverStepPin, HIGH); delayMicroseconds(tempo + tempoAddition); } } }
- souci numero 2 , mes boutonZoom in et out ne fonctionnes pas tout le temps ( une fois sur deux )
pourquoi c'est problème surviennes t'ils ?
pourtant notre programme a l'air bien ?
si vous vouler je peut vous donner le cablage et toute les infos que vous me demenderer .
merki d'avence les copin(e)s
Posté par Victorien - 26 février 2022 - 06:57
SUPER mes deux moteurs tourne
je met le programme
tu me diras si mes devoir sont bien fait
#include <AccelStepper.h> #define zoomDirPin 2 #define zoomStepPin 3 #define suiviDirPin 5 #define suiviStepPin 4 AccelStepper stepper(1, zoomStepPin, zoomDirPin); AccelStepper stepper2(1, suiviDirPin, suiviStepPin); void setup() { stepper.setMaxSpeed(2000); //vitesse max du moteur en nombre de steps par seconde stepper.setSpeed(1000);//Réglage de la vitesse du moteur stepper2.setMaxSpeed(2000); stepper2.setSpeed(1000); } void loop() { stepper.runSpeed();// fait tourner le moteur à la vitesse réglée. stepper2.runSpeed(); }
enfin quelque chose que j'ai pu avancer "tous seule" c'est pas grand chose mais ca fait plaisir .
bon reste plus qua faire le reste .
Posté par Victorien - 19 février 2022 - 02:21
alors j'ais essayé d'initialiser les boutons pins 10 et 11
pour faire tourné dans un sens ou l'autre mais rien ne se passe avec ce programme
/* Name: Vitesse MPAP Auteur: vitou */ #define tempoDepart 0; int tempo = 500; // Moteur arrete int tempoAccelerer = 500; int tempoRalentir = 500; int tempoAddition = 0; #define driverDirPin 2 #define driverStepPin 3 #define boutonAccelererPin 10 #define boutonRalentirPin 11 void setup() { pinMode(driverDirPin, OUTPUT); pinMode(driverStepPin, OUTPUT); pinMode(boutonAccelererPin, INPUT_PULLUP); // L'autre cote du bouton au GND pinMode(boutonRalentirPin, INPUT_PULLUP); // " " " digitalWrite(driverDirPin, LOW); // On met la broche DIR a l'etat bas } void loop() { tempoAddition = 0; if (digitalRead(boutonAccelererPin) == LOW) // Si le bouton accelerer est presse { tempoAddition = tempoAccelerer; } else if (digitalRead(boutonRalentirPin) == HIGH) // Si le bouton freiner est presse { tempoAddition = tempoRalentir; } { tempo = 0; } if (tempo > 0) { digitalWrite(driverStepPin, LOW); delayMicroseconds(tempo + tempoAddition); digitalWrite(driverStepPin, HIGH); delayMicroseconds(tempo + tempoAddition); } }
j'ai voulut me basser sur l'enssien programme .
mais je doit dire que je patine un peu
Posté par Victorien - 09 février 2022 - 12:28
Posté par Victorien - 05 février 2022 - 07:37
bonjour .
j'ai un souci avec ma carte programmable .
je m'explique , je voudrais piloter un moteur pas a pas nema 17 avec un driver a4988 et une carte arduino uno (vue que je manoeuvre dejas un axe de mon télescope de cette fasson je voulais faire de meme pour le focus )
MAIS voila .
je me suis tromper dans ma commende et a la place d'une arduino uno ,j'ai pris une carte WeMos D1 .
donc elle ce ressemble mais es que ce sont les meme et comment la programmé ?
de la meme manière que l'arduino classique ?
et meme pour raccorder sur mon driver , je trouve rien comme schéma avec la WeMos .
vous pouvez m'aider svp ?
Posté par Victorien - 24 novembre 2020 - 08:23