Bonjour à toute la communauté je vient vers vous car j'ai un problème concernant un projet.
je souhaite faire fonctionner un moteur nema 23 avec un capteur à ultrason voici le code que j'ai utilisée
# include <Stepper.h>
const int echoPin = 7;
const int triggerPin = 6;
#define motorPin1 8
#define motorPin2 9
#define motorPin3 11
#define motorPin4 10
int distanceAvant;
float intervalle;
const int stepsPerRevolution = 20000;
Stepper myStepper(stepsPerRevolution, 10, 11);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(echoPin, INPUT);
pinMode(triggerPin, OUTPUT);
myStepper.setSpeed (2000);
}
void mesurerDistanceAvant()
{
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH); //Envoie d'une onde sonore
delayMicroseconds(5);
digitalWrite(triggerPin, LOW);
intervalle = pulseIn(echoPin, HIGH); //Réception de l'écho
intervalle = intervalle/5.8/10; //Conversion de la différence de temps entre l'envoie de l'onde sonore et la réception de l'écho en distance (cm)
Serial.println("Distance avant:");
Serial.println(intervalle);
distanceAvant = intervalle; //Arrondi
}
void modeUltrason()
{
mesurerDistanceAvant();
if(distanceAvant > 10) //Si la distance avant est de moins de 25cm
{
Serial.println("démarrage moteur");
Serial.println();
Serial.println("avance");
myStepper.step(stepsPerRevolution);
delayMicroseconds (5);}
else (distanceAvant < 10);//Si la distance avant est de plus de 25cm
{
Serial.println("Arret des moteurs");
Serial.println();
digitalWrite(8,LOW);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
digitalWrite(11,LOW);
delay(500);
}
}
void loop() {
// put your main code here, to run repeatedly:
modeUltrason();
mesurerDistanceAvant();
}
le problème c'est que lorsque le capteur détecte qu'il faut tourner le moteur tourne mais pas de façon continue il tourne puis s’arrête , puis tourne , puis s’arrête etc
j'ai essayé de changer les delay mais rien y fais il marque un pause entre chaque tour pouvez vous me dire ce qu'il ne va pas dans mon code merci pour vos réponses.