Alors voila je dois écrire un programme de suivie de ligne en NXC (langage basé sur le C) avec un LineLeader jusqu'à ce que la couleur rouge soit trouver par le robot.
Mais mon problème c'est que quand je veux compacter le programme en mettant une partie dans un while, le programme ne veux pas fonctionner (ce compile mais lorsque que j’exécute rien ne ce passe)
La première partie est celle que j'ai essayé de faire pour compacter, la seconde est celle qui a fonctionner.
Je vous remercie de vos aides x)
Mais mon problème c'est que quand je veux compacter le programme en mettant une partie dans un while, le programme ne veux pas fonctionner (ce compile mais lorsque que j’exécute rien ne ce passe)
La première partie est celle que j'ai essayé de faire pour compacter, la seconde est celle qui a fonctionner.
Je vous remercie de vos aides x)
Code :
/*-----------------------------------------------------------PARTIE 1----------------------------------------------------------*/
void main()
{
DefineSensors(ARRAY, NONE, COLOR, NONE);
int array[8];
int i = 0;
int somme = 0;
int division = 0;
int puissance = 0;
while (GetSensorValue(IN_3) =! 5)
{
GetSensorArray(IN_1, array);
while(i < 8)
{
array[i] = 100 - array[i];
somme += array[i];
array[i] = i * array[i];
division += array[i];
i++;
}
moyenne = division/somme;
if (moyenne < 3)
{
puissance = moyenne * 12;
MotorOn(OUT_B, puissance);
MotorOn(OUT_C, puissance - 20);
}
else if (moyenne > 4)
{
puissance = moyenne * 6;
MotorOn(OUT_B, puissance);
MotorOn(OUT_C, puissance - 20);
}
else
{
MotorOn(OUT_BC, 50);
}
}
MotorOff(OUT_BC);
}
Code :
/*-----------------------------------------------------------PARTIE 2----------------------------------------------------------*/
void main()
{
DefineSensors(ARRAY, NONE, COLOR, NONE);
int array[8];
int somme = 0;
int division = 0;
int puissance = 0;
while (GetSensorValue(IN_3) =! 5)
{
GetSensorArray(IN_1, array);
array[0] = 100 - array[0];
array[1] = 100 - array[1];
array[2] = 100 - array[2];
array[3] = 100 - array[3];
array[4] = 100 - array[4];
array[5] = 100 - array[5];
array[6] = 100 - array[6];
array[7] = 100 - array[7];
somme = array[0] + array[1] + array[2] + array[3] + array[4] + array[5] + array[6] + array[7];
array[0] = 0 * array[0];
array[1] = 1 * array[1];
array[2] = 2 * array[2];
array[3] = 3 * array[3];
array[4] = 4 * array[4];
array[5] = 5 * array[5];
array[6] = 6 * array[6];
array[7] = 7 * array[7];
division = array[0] + array[1] + array[2] + array[3] + array[4] + array[5] + array[6] + array[7];
moyenne = division/somme;
if (moyenne < 3)
{
puissance = moyenne * 12;
MotorOn(OUT_B, puissance);
MotorOn(OUT_C, puissance - 20);
}
else if (moyenne > 4)
{
puissance = moyenne * 6;
MotorOn(OUT_B, puissance);
MotorOn(OUT_C, puissance - 20);
}
else
{
MotorOn(OUT_BC, 50);
}
}
MotorOff(OUT_BC);
}