Cette écriture n'est pas accepté en C
if(-50 < Difference < 50)
à remplacer par
if((-50 < Difference) && (Difference< 50))
Les goto sont parfaitement inutiles. Les if else étant mutuellement exclusifs les goto n'apportent rien.
En plus ils perturbent le fonctionnement correct de la fonction loop qui est intégrée dans une boucle (bien qu'invisible pour l'utilisateur). En effet, les goto renvoient à début qui se trouve après la lecture des capteurs qui du coup ne sont jamais lus.
Donc supprimer les goto. Ce qui donne ça:
void loop()
{
analogWrite(MotChenD, 128);
analogWrite(MotChenG, 128);
HallD = analogRead(CaptHallD); // On mesure la tension délivrée par le capteur droit
HallG = analogRead(CaptHallG); // On mesure la tension délivrée par le capteur gauche
Difference = (HallD - HallG); // Calcul de la différence des deux tensions converties
if(-50 < Difference < 50)
{
}
else if(50 <= Difference <= 512) // Cas où capteur Gauche relève la plus grande valeur
{
analogWrite(MotChenD, 191);
}
else if(512 < Difference) // Cas où la valeur du capteur gauche >> que valeur capteur droit
{
analogWrite(MotChenD, 230);
}
else if(-512 <= Difference <= -50)
{
analogWrite(MotChenG, 191);
}
else
{
analogWrite(MotChenG, 230);
}
}
De plus, je pense que ces 2 lignes
analogWrite(MotChenD, 128);
analogWrite(MotChenG, 128);
devraient être mises dans ce if
if(-50 < Difference < 50)
{
}