Il y a une erreur dans ton code... Puisqu'avant de tester l'hystérésis, tu fais une comparaison brute... essaie cela, pas de comparaison brute, directement hystérésis :
void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 1, 1023, 1, 360); // scale it to use it with the servo (value between 0 and 180)
if (valeurcible < (val - hyseteris)) { motor.run(FORWARD);} //moteur avance
else if (valeurcible > (val + hyseteris)) { motor.run(BACKWARD);} // moteur recule
else {motor.run(RELEASE);}
}
A supposer que hyseteris soit toujours positif... le moteur ne tournera que si valeurcible sort de l'intervalle [val - hyseteris, val + hyseteris] et s'arrêtera dès que l'intervalle entoure valeurcible.
Prévois un hyseteresis assez grand au début, genre 500, tu le réduiras au fur et à mesure de tes tests. Si tu es motivé, colle un second potar sur une entrée analogique et fais un "hyseteresis = analogread(hyst_pin) / 2; Serial.println(hyseteresis);", comme ça, pas besoin de reloader le prog à chaque test, tu liras la valeur du bon hyseteresis sur ta console!
je te souhaite un bon courrage pour ton asservissement, car ce n'est pas simple. [HUMOUR]Tu savais qu'il existe des servomoteurs?[/HUMOUR]