Go Down

Topic: Piloter un servo avec 2 gp2d120 (Read 6648 times) previous topic - next topic

barbudor

essaye avec int position  au lieu de unsigned int. Il faut que la valeur puisse prendre des valeurs négatives.

yankee76

Merci de prendre du temps pour m'aider.

je viens de faire le changement, mais toujours aucune reaction.

barbudor

#17
May 20, 2012, 09:19 pm Last Edit: May 20, 2012, 09:32 pm by barbudor Reason: 1
Est-ce que par hasard tu n'aurais pas oublié de rajouter le code pour lire les entrées analogiques ?

Tu ne fais pas la différence entre un "code de principe" et un vrai code ?


EDIT: Je viens d'essayer avec des portars sur les entrées analogiques, mon servo semble réagir correctement.
Ensuite comme je l'ai dit, il y a certainement du tunning a faire sur les paramètres du PID.

int position = analogRead( irD ) - analogRead( irG );

yankee76

Je commence a comprendre.
Donc le code du PID,c'est "un code de principe",je pensai que c'etait un code "definitif".
  Non,je n'ai pas oublier les entrées analogique.
Je vais voir pour faire un vrai code.

Yankee76


barbudor

Code: [Select]
int irG = A4;                                  //entree ir gauche A4
int irD = A5;                                  //entree ir droit A5

unsigned int position = irD - irG;


Prend un peu de recul et essaye de comprendre ce que tu fais et ce qu'on te donne.
Ce code que tu as posté ne faisait pas les lecture analogique !
Donc je me permet de douter
En remplaçant ca par la ligne
Code: [Select]
int position = analogRead( irD ) - analogRead( irG );

Ca marche a peut prêt sur ma maquette

Maintenant comme je dit, ca a bien marché pour mon robot mais les coeff peuvent devoir être optimiser.

La il va falloir appeler les pros de l'automatisme.


yankee76

C'est ok ca marche!!!

Pour les entrées analogique,je pensait que c'etait bon car j'avait declaré A4 et A5

Reste a peauffiner la formule magique car le servo oscille un peu de gauche a droite.

Merci.

Yankee76

Go Up