Aller au contenu


Contenu de Gabriiel

Il y a 3 élément(s) pour Gabriiel (recherche limitée depuis 25-avril 13)


#59549 Valeur neutre microservo

Posté par Gabriiel sur 26 janvier 2014 - 04:42 dans Programmation

Dans le programme, je ne sais pas pourquoi vous utilisez la valeur 666. Les personnes superstitieuses pensent que c'est un mauvais chiffre. Et c'est en le voyant que je me suis dit que ce programme était peut-être une blague, alors je n'ai pas cherché à répondre.

Sinon, en regardant rapidement, je vois qu'il manque :

#include <Servo.h>

Il y aurait eu un message à la compilation à ce sujet, je pense.
Lancer la compilation permet de détecter beaucoup d'erreurs sans prendre aucun risque. Donc, vous auriez pu le faire.

Je ne vois rien dans le programme qui pourrait faire "tout casser lol".

Quand on n'est pas sûr de soi, le mieux est de procéder petit à petit.
Par exemple, au départ, on fait un programme assez petit. On le teste. Puis on rajoute quelques lignes. On reteste. Etc.
Ou bien on peut avoir un programme assez long au début dans lequel on met des zones en commentaires pour tester petit à petit.

Jusqu'à présent, je n'ai jamais vu de servomoteur qui aurait "cassé" suite à un programme mal écrit. Quand le servomoteur reçoit l'ordre de bouger, soit la valeur est dans ses limites et il bouge, soit la valeur est hors des limites, et il ne fait rien.
Par contre, j'ai grillé un servo en me trompant dans les branchements. Un des fils a reçu trop de voltage. Donc, il faut bien vérifier son montage.


666 c'etais coïncidence en faite lol j'voulais juste mettre un chiffre qui sorte de la condition de la boucle ^^ merci pour tes conseils je vais donc essayer plein de petit programmes sans peur de detruire mes servo ^^

Avec Servo_Gauche.write(0); le servo se positionne au centre.


il est pas sensé être a une extrémité ? 0 gauche ou droite et 180 l'autre extremité ? (theoriquement sur ce que j'ai lu )


C'est 90, comme il est indiqué dans la documentation http://arduino.cc/en/Reference/ServoWrite :

myservo.write(90);  // set servo to mid-point

0 désigne l'un des points les plus extrêmes (à gauche ou à droite selon les modèles de servos), et 180 désigne l'autre point extrême.


oui mais c'est jamais exactement 90 sur tout les cas que j'ai vu sur ma recherche alors je me suis dit qu'il fallait trouver la valeur neutre de mes servo

Bonjour,

Oui je confirme la position médiane est théoriquement :

myservo.write(90);

Qui correspond à une largeur d'impulsion de 1,5mS.
Ce qu'il peut rester c'est un léger decalage "mécanique" du servo ou de la fixation du levier sur le servo qu'il faut compenser mécaniquement.
Si le servo a une course légèrement plus grande que les 180° il est possible de jouer sur l'impulsion pour le faire aller un peu au-dela et compenser ce décalage mécanique.

Il faut utiliser alors dans l'instruction monServo.writeMicroseconds(largeur);
avec largeur compris entre 1000 et 2000, le 1000 correspond à 0°, 1500 à 90° et 2000 à 180°.
En mettant un peu moins de 1000 le servo va aller un peu en négatif et pour un peu plus de 2000 un peu plus loin que 180°, je le répete si le servo a une course plus grande que les 180°, ce qui n'est pas toujours le cas...

Bons tests.


Oki merci vous m'avez bien éclairé sur ce point je vais proceder aux tests avec votre fonction s'il s'avère que la course dépasse légèrement les 180°



Merci a toutes vos reponses ! :)



#59535 Valeur neutre microservo

Posté par Gabriiel sur 25 janvier 2014 - 08:03 dans Programmation

S'il vous plait ... :'(



#59510 Valeur neutre microservo

Posté par Gabriiel sur 24 janvier 2014 - 10:56 dans Programmation

Bonsoir,
J'ai essayé d'écrire un programme afin de trouver la valeur du neutre de mes servomoteurs mais je voulais savoir si mon programme est correct avant de tout casser lol (je suis debutant). (le capteur de contact droit servirait a interrompre le processus avant les 180°)

Merci d'avance mille fois ! gabriiel.

Spoiler