Lorsque je réalise le branchement de tout ca, lorsque je téléverse le programme sur la carte rien de ce passe
Mais en testant la tension au borne de sortie de l'arduino, il y a une tension qui change comme souhaité
int STEP = 8;
int DIR = 4;
int n;
void MotorStep( int sens, int DureePas) {
digitalWrite(DIR, sens);
digitalWrite(STEP, 1);
delayMicroseconds(DureePas / 2);
digitalWrite(STEP, 0);
delayMicroseconds(DureePas / 2);
}
void setup() {
// put your setup code here, to run once:fault
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
}
void loop() {
n = 0;
while (n < 250) {
MotorStep(0, 100000);
n = n + 1;
}
while (n > 0 ) {
MotorStep(1, 100000);
n = n - 1;
}
}
dans MotorStep(0, 100000);, le nombre 100000 est supposé être un entier. Pour avoir un long il faut le préciser par L ou UL en fin; 100000 est sur 16 bits (possible que cela donne 34464 seulement si il est tronqué). 100000UL est sur 32 bits et donne bien la bonne valeur
avec void MotorStep( int sens, int DureePas) on demande que ce paramètre soit un int c'est à dire un entier signé 16 bits dont la plus grande valeur possible est 32767. Si on lui donne 34464, ce nombre devrait être tronqué et la valeur pourrait être 1696
De toutes façon la valeur maximale que l'on peut donner à delayMicroseconds est de 16383
Si les branchements sont corrects et que l'on attend 1696/2µs, soit 848µs, avec un moteur 200 pas par tour, il devrait faire un tour en 200*848µs soit 0,17s et tourner à 6tr/s. Il y a des fortes chances qu'il ne puisse suivre.
Quelle est la période sur la broche 8? Si c'est 50ms, je mange mon chapeau (pas grave, je n'en ai pas).