Bonjour,
Un chariot doit se déplacer suivant des coordonnées contenues dans un tableau.
J'ai mis les coordonnées à atteindre par le moteur dans celui-ci.
La boucle est supposée extraire les données une par une au moteur qui tournera du nombre de pas indiqué à chaque étape.
Le programme se compile correctement et le moniteur serie affiche bien les coordonnées du tableau à chaque passage dans la boucle mais le moteur a juste le temps d'un petit sursaut puis plus rien.
Où est l'erreur ?
CI-JOINT LE CODE
//Le moniteur serie sort bien les coordonnées mais rien ne se passe au niveau du moteur
#include <AccelStepper.h>
AccelStepper monmoteur (1,9,8);//step broche 9, dir broche 8_
int boutonin=5;//bouton de demarrage du programme
int positions[8] = {200,400,600,800,-200,-400,-600,-800};//tableau de 8 positions
int val;
void setup()
{
Serial.begin(9600);
pinMode (boutonin,INPUT_PULLUP);
monmoteur.setCurrentPosition(0);
monmoteur.setMaxSpeed(2000);//maxi 4000pas/seconde originee (1000)
monmoteur.setSpeed(1000);//regle la vitesse du moteur (origine 500)
monmoteur.setAcceleration(1000);//lemoteur accelere et decelere en douceur (origine 50)
}
void loop() {
int etatbouton = digitalRead(boutonin);//appui du bouton : depart du programme
if ((etatbouton)==0)
for (int i=0; i<8; i++)
{val=positions[i];}
//val=positions[i]
valSuit();
Serial.print("positions i: ");
Serial.print(positions[val]);
Serial.println(".");
}
void valSuit()
{monmoteur.runToNewPosition (val);}