Problème robot en ligne droite

This publication is deleted

Pour corriger quelque chose il faut pouvoir mesurer ce qu'il se passe par rapport à la consigne.

avez vous un

MiniQ Robot chassis Encoder
pour faire un PID?

Bonjour,
à mon avis ton problème c'est que pendant que ta boucle s'occupe d'un capteur tu ne regardes pas l'autre... vois-tu pourquoi c'est un problème ?
Benoit

hum, je penes que si :slight_smile: si les deux capteurs passent en même temps tu n'en verras qu'un et ton robot va croire qu'il a dévié... la probabilité dépend de la fraction de temps où le capteur est >150...

Vous ne vous êtes pas trompé de pastebin mais d’endroit où poster... postez le code ici avec les tags de code

C'est la bonne façon de faire: pas de délai et pas de boucle while pour attendre... en revanche mettre un seuil au dessus de zéro était une bonne idée dans le code d'origine... ainsi qu'un délai de garde après le passage du compteur pour éviter les oscillations... mais pas avec delay(), c'est interdit :slight_smile:

celui-là: "analogRead (capteurGA) == 0"
et pour le delai, millis peut servir et il faut faire comme pour varincrGA: stocker une variable d'état du temps restant à attendre avant de réactiver la détection.

Bonjour,
c'est l'idée ! il reste un petit problème: il faut deux variables de temps, une pour la gauche et une pour la droite.
Ensuite si le capteur ne détecte qu'un top par roue c'est normal que ça ne soit pas très précis: si à un moment delta = 0, dès que le prochain capteur passe delta passe a 1 ou -1 jusqu'au suivant. ..
Cordialement