Bonjour arwiy
Ton code du post #1, ajouté de:
else
{
noTone(HP);
}
fonctionne selon tes désirs.
J'y ai apporté 2 "aménagements":
Un timout de 44000 uSecondes, ça évite, s'il n'y a pas de signal sur ce servo si le récepteur ou l'émetteur sont éteint(s), que le programme attende 1 seconde à chaque mesure, ce qui peut ralentir fortement ton programme.
Ajouté && (data1 > 0) dans la condition de démarrage de la sirène, en effet, si data1 vaut 0 (timout expliqué ci-dessus) on est dans les conditions de démarrage de la sirène (data1 <1500).
Il est bien claire que la sirène s'arrête à la fin d'un cycle complet et non pas sitôt la commande changée.
Cordialement
jpbbricole