Bonjour,
J'ai réalisé ce code pour faire tourner deux moteurs électriques. Il fonctionne et répond bien à mes attentes. En revanche dans le moniteur série j'ai des logo, parasites qui s'affichent.
Quelle est l'origine de ses "parasites"?
Et comment puis je les supprimer?
Par avance merci
#include <Sabertooth.h>
int seuil = 3;
int duree = 50;
int vmax ;
int vmin;
int distancetemps = 2000;
int E=0;
Sabertooth ST(128); // The Sabertooth is on address 128. We'll name its object ST.
void setup()
{
Serial.begin(9600);
SabertoothTXPinSerial.begin(9600); // 9600 is the default baud rate for Sabertooth packet serial.
//ST.autobaud();
ST.drive(0); // The Sabertooth won't act on mixed mode packet serial commands until
ST.turn(0); // it has received power levels for BOTH throttle and turning, since it
// mixes the two together to get diff-drive power levels for both motors.
}
void marche_avant()
{
int power;
// Don't turn. Ramp from going backwards to going forwards, waiting 20 ms (1/50th of a second) per value.
for (power = vmin; power <= vmax; power ++)
{
ST.drive(power);
//ST.drive(power);
delay(duree);
}
for (power = vmax; power >=vmin; power --)
{
ST.drive(power);
//ST.drive(power);
delay(duree);
}
}
void marche_arriere()
{
int power;
// Don't turn. Ramp from going backwards to going forwards, waiting 20 ms (1/50th of a second) per value.
for (power = vmin; power >= -vmax; power --)
{
ST.drive(power);
delay(duree);
}
for (power = -vmax; power <=vmin; power ++)
{
ST.drive(power);
//ST.drive(power);
delay(duree);
}
}
void tourne_droit()
{
int power;
// Faire une rotation complète vers la gauche en augmentant progressivement la vitesse de rotation.
for (power = vmin; power <= vmax; power++)
{
ST.turn(power); // Définir la vitesse de rotation pour le moteur gauche (M1) et le moteur droit (M2).
delay(duree); // Attendre 50 ms pour chaque itération.
}
for (power = vmax; power >= vmin; power--)
{
ST.turn(power); // Définir la vitesse de rotation pour le moteur gauche (M1) et le moteur droit (M2).
delay(duree); // Attendre 50 ms pour chaque itération.
}
}
void tourne_gauche()
{
int power;
// Faire une rotation complète vers la gauche en augmentant progressivement la vitesse de rotation.
for (power = vmin; power <= vmax; power++)
{
ST.turn(-power); // Définir la vitesse de rotation pour le moteur gauche (M1) et le moteur droit (M2).
delay(duree); // Attendre 50 ms pour chaque itération.
}
for (power = vmax; power >= vmin; power--)
{
ST.turn(-power); // Définir la vitesse de rotation pour le moteur gauche (M1) et le moteur droit (M2).
delay(duree); // Attendre 50 ms pour chaque itération.
}
}
void loop() {
Serial.print(E);
if (E>seuil)
{
vmax = 30;
vmin= 0;
tourne_gauche();
}
else if (E > 0)
{
vmax = 15;
vmin= 0;
tourne_gauche();
}
E = E +1;
delay(5000);
}
