Aller au contenu


Photo
- - - - -

Commande d'un servomoteur


6 réponses à ce sujet

#1 Quicky

Quicky

    Nouveau membre

  • Membres
  • 5 messages

Posté 12 juillet 2008 - 04:36

Bonjour,

Je suis entrain de construire un petit robot autonome. Je viens de rencontrer ma premiere difficulté, la commande des servo (utilisé comme propulseur). Les servo sont modifié pour une rotation de 360°.

J'utilise MikroC ainsi que l'EasyPic4 pour la programmation de mon 16F877A.
D'après ce que j'ai lu sur le net , il faut que je génère des signaux PWM sur le port RC1 ou RC2, ayant une période de 20us. Ainsi je pourrais jouer sur le rapport de cycle pour créé des impulsion de 2ms(marche avant) ou 1ms(AR).

Plus facile à dire qu'à faire.. Comment puis-je créé un signal pwm de 20us à l'aide de mon PIC cadencé a 8Mhz par exemple ? (parait qu'il faut utiliser les timer et prescaler...)
Je sais qu'il existe des bibliothèques (pwm_init1() , pwm_start() ) dans MikroC mais je ne sais pas comment et quand les utilisers.

Quelqu'un ne pourrait pas me taper un petit bout de code permettant de faire de la pwm et en me disant comment faire varier le rapport de cycle ?

Merci d'avance,
Quicky !

#2 Matthieu

Matthieu

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 604 messages
  • Gender:Male

Posté 12 juillet 2008 - 10:02

http://fribotte.free.fr/bdtech/pic/pic_et_servo.html

Tu as 2 façon de faire :

while(1){
S=1;
delayms(1);
S=0;
delayms(19);
}

Problème pour gérer tout , s'est pas terrible , donc si j'était toi , j'utiliserai les timers et dans le while 1 test si 0 ou 1 ...

Sinon EasyPic4 sa m'as l'air pas trop mal tu as déjà utiliser le LCD graphique ? ( son mode graphique ? )
( mais bon , je suis plus interessé par ses version suivante , mais le probléme une fois utiliser , tu n'as plus d'utilité ... )

#3 Quicky

Quicky

    Nouveau membre

  • Membres
  • 5 messages

Posté 24 juillet 2008 - 04:59

Bonjour,
J'ai plusieurs problème avec mes servo :(

1)Le code que j'utilise ne sert a rien je pense , je peux brancher mon servo sur n'importe qu'elle sortie de mon pic et il tourne en continu (car servo modifié). En modifiant dans mon code le temps de 1ms à 2ms ca ne change rien , le moteur tourne tjs dans le même sens et à la même vitesse. Je peux mettre mon fil blanc de commande sur n'importe qu'elle pin (0V ou +5V) le moteur tourne tjs ...

void main(){
TRISC=0;
PORTC.F2=1;
PORTC.F4=0;
	  do{
		PORTC.F0=1;
		Delay_ms(1);
		PORTC.F0=0;
		Delay_ms(19);
	  }while(1);
}

Quel est mon problème ? servo mal modifié (j'ai supprimé la butée et soudé au potentiomètre 2 résistance montée en pont diviseur) ? Quelque chose de fondamental m'échappe ?

2) Le moteur commence a tourner a partir du moment ou j'appuie sur mon pack de 4 pile (1,5V)... Quand je relâche la pression le moteur s'arrête de tourner ! Pourtant j'ai tjs bien 5,8V en sortie de mon pack quand le moteur ne tourne pas (et donc quand j'appuie pas sur le pack). Je ne comprends pas ce qu'il se passe :(
(Le pack n'est pas artisanal)

Help !! :(

Merci d'avance
Quicky

#4 Matthieu

Matthieu

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 604 messages
  • Gender:Male

Posté 24 juillet 2008 - 07:41

Tu as couper les fils du potentiomètre ? et remplacer par 2 résistance de même valeur ?

Si oui si t'en a un qui est d'origine , test 1 et 2 ms , pour voir si il fait buté droit / buté gauche .

#5 Quicky

Quicky

    Nouveau membre

  • Membres
  • 5 messages

Posté 25 juillet 2008 - 12:56

Tu as couper les fils du potentiomètre ? et remplacer par 2 résistance de même valeur ?

Si oui si t'en a un qui est d'origine , test 1 et 2 ms , pour voir si il fait buté droit / buté gauche .


Le potentiomètre est toujours là mais il n'est plus relié mécaniquement au reste. Par contre il est toujours soudé à la carte, j'ai soudé sur ces pattes 2 résistances. J'ai fait quelque chose qu'il fallait pas ?

#6 Matthieu

Matthieu

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 604 messages
  • Gender:Male

Posté 25 juillet 2008 - 05:32

Je crois que j'ai trouvé , ton pota est en buté , donc il pense qui est a droite ou a gauche

Déconnecte le pota la sa iras ...

#7 BJY

BJY

    Nouveau membre

  • Membres
  • 1 messages

Posté 20 mars 2009 - 10:07

bonjour .
svp Quicky es que vous avez trouver une solution.
si oui, merci de me la remetre
cordialement BJY



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users