Problème de fusion de programme
Bonjour à tous
Je vous explique mon problème (je précise que je suis débutant en Arduino)
Voila, j'ai voulu motoriser ma monture télescope avec un moteur pas à pas.
Il a fallu faire un programme Arduino (Uno) pour déterminer la vitesse de suivi des astres à observer (avec boutons marche ; arret ;accel ; frein du moteur).
Cela a bien fonctionné et j'ai donc voulu par la suite motoriser la mise au point (mon focus) de mon télescope , de la même manière que précédemment.
Les deux programmes fonctionne très bien séparément mais il faudrait les fusionner .
J'ais donc essayé mais il m'arrive un souci (avec les deux programme fusionner).
Quand je lance mon moteur de suivi, aucun problème, mais je ne peux pas faire la mise au point sans freiner les deux moteurs. Idem dans le sens contraire.
Pour faire simple je ne peux pas faire tourner mes deux moteurs en même temps, mais un par un oui. Et c'est un problème.
Et je n'arrive pas à trouver pourquoi
pourtant mon câblage a été vérifié revérifié correctement
voici le programme fusionné en question
(je reprécise que je suis débutant)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| // zoom
#define zoomDirPin 2
#define zoomStepPin 3
#define boutonZoomInPin 10
#define boutonZoomOutPin 11
#define tempoZoom 500
bool zoom = false;
// suivi
#define suiviDirPin 4
#define suiviStepPin 5
#define boutonAccelererPin 6
#define boutonRalentirPin 7
#define boutonMarchePin 8
#define boutonArretPin 9
#define normal 2080
#define rapide 1580
#define lent 2780
int tempo;
void setup() {
pinMode(zoomDirPin, OUTPUT);
pinMode(zoomStepPin, OUTPUT);
pinMode(suiviDirPin, OUTPUT);
pinMode(suiviStepPin, OUTPUT);
pinMode(boutonZoomInPin, INPUT_PULLUP); // L'autre cote du bouton au GND
pinMode(boutonZoomOutPin, INPUT_PULLUP); // " " "
pinMode(boutonAccelererPin,INPUT_PULLUP); // L'autre cote du bouton au GND
pinMode(boutonRalentirPin, INPUT_PULLUP); // " " "
pinMode(boutonMarchePin, INPUT_PULLUP);
pinMode(boutonArretPin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(boutonAccelererPin) == LOW) // Si le bouton accelerer est pressé
tempo = rapide;
else if (digitalRead(boutonRalentirPin) == LOW) // Si le bouton freiner est pressé
tempo = lent;
else if (digitalRead(boutonMarchePin) == LOW) // Si le bouton marche est pressé
tempo = normal;
else if (digitalRead(boutonArretPin) == LOW) // Si le bouton arrêt est pressé
tempo = 0;
if (tempo > 0) {
digitalWrite(suiviStepPin, LOW);
delayMicroseconds(tempo);
digitalWrite(suiviStepPin, HIGH);
delayMicroseconds(tempo);
}
if (zoom > 0 ) {
digitalWrite(zoomStepPin, LOW);
delayMicroseconds(tempoZoom);
digitalWrite(zoomStepPin, HIGH);
delayMicroseconds(tempoZoom);
zoom = false;
}
if (digitalRead(boutonZoomInPin) == LOW) { // Si le bouton Zoom In est presse
digitalWrite(zoomDirPin, LOW);
zoom = true;
} else if (digitalRead(boutonZoomOutPin) == LOW) { // Si le bouton Zoom Out est presse
digitalWrite(zoomDirPin, HIGH);
zoom = true;
}
} |
où serait le problème svp ?
Règle 1 : pas plus de lignes que de doigts
Bonjour Jay,
Citation:
Envoyé par
Jay M
...cela dit c’est pas comme si vous aviez 10,000 lignes de code à reprendre…
Tu es dur, il y quand même une 40e de lignes de code à reprendre :D
Je me souviens de projets de quelques millions de lignes créés et gérés avec des outils un peu moins élaborés que ceux d'aujourd'hui. Le bon temps ?
Salut