Vibration servomoteur
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Vibration servomoteur



  1. #1
    Electro_Red

    Vibration servomoteur


    ------

    Bonjour tout le monde,

    j'ai un problème de vibration sur la rotation d'un servomoteur HS322 commandé par PIC16F877;
    Lorsque je l'attaque par une commande PWM à partir d'un générateur de fonction ça marche, mais avec le PIC il ya présence des vibrations!!!
    quelles sont les causes de ces vibrations??? pourrait être que le courant délivré par le PIC est insuffisant ou quoi ?

    Merci

    -----
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  2. #2
    breihz.du.29

    Re : Vibration servomoteur

    bonjour electro_red
    comment cable tu ton moteur ?
    pas en direct sur le PIC j'espere sinon la c'est plutot normal qu'il n'y ai pas asser de puissance
    si c'est comme sa c faux ; il faut met une interface de puissance a mosfet (plus facile a commander) et la plus de blême
    XD

  3. #3
    Antoane
    Responsable technique

    Re : Vibration servomoteur

    Bonjour,
    Pas de problème de puissance : un servo moteur dispose de 3 broches : 2 pour la puissance (alimentation 0/5V) et une pour le contrôle, qui ne demande quasiment pas de courant.

    Quelle est la période du signal envoyé au servomoteur ?
    L'as tu visualisé à l'oscillo ?
    Quelle est la longueur de la connexion entre le PIC et le servo ? le câblage est-il propre ?
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #4
    Electro_Red

    Re : Vibration servomoteur

    Bonjour,

    j'ai travaillé avec une fréquence de 250Hz (minimal fournie par la PIC pour une commande PWM),

    pour la longueur du fil (contrôle) ça ne dépasse pas 40 cm!
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  5. A voir en vidéo sur Futura
  6. #5
    invitefaaca50b

    Re : Vibration servomoteur

    250 hertz, ca fait 4ms, c'est un peu limite pour un servo, en general, on tourne entre 50 et 100Hz...
    Remplace ton quartz 4MHz par un quartz de 1MHz, recalcule ton PWM pour etre a 150Hz, et re teste...

  7. #6
    Electro_Red

    Re : Vibration servomoteur

    Citation Envoyé par breihz.du.29 Voir le message
    bonjour electro_red
    comment cable tu ton moteur ?
    pas en direct sur le PIC j'espere sinon la c'est plutot normal qu'il n'y ai pas asser de puissance
    si c'est comme sa c faux ; il faut met une interface de puissance a mosfet (plus facile a commander) et la plus de blême
    XD
    Rebonjour,
    c'est sur qu'il nya pas de problème de puissance d'alimentation.
    j'ai eu quelques doutes sur le courant fourni par la commende est ce qu'il est suffisant ou pas!
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  8. #7
    Pierrre

    Re : Vibration servomoteur

    Bonjour

    aucun probleme de commande (cf reponse Antoane)

    par contre le signal respecte t il bien la norme de commande des servos ?( pour memoire impulsion de 1 à 2 mS, neutre à 1.5mS, toute les environ 20mS)

    A+

  9. #8
    Antoane
    Responsable technique

    Re : Vibration servomoteur

    Citation Envoyé par Franck-026 Voir le message
    250 hertz, ca fait 4ms, c'est un peu limite pour un servo, en general, on tourne entre 50 et 100Hz...
    Remplace ton quartz 4MHz par un quartz de 1MHz, recalcule ton PWM pour etre a 150Hz, et re teste...
    Et si, une fois que ça marche, tu as besoin d'un oscillateur à 4MHz, il faudra coder la gestion du servo à la main, sans le module CCP.

    Tu as quelle résolution sur le rapport cyclique avec un tel rapport de division de la fréquence d'horloge ?
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  10. #9
    Electro_Red

    Re : Vibration servomoteur

    Bonjour,

    Merci pour vos réponse.
    @ Franck-026: je dispose que des quartz 4MHz et je cherche une solution sans changer le quartz!
    dans la datasheet, le point la largeur de l'impulsion doit aller de 1ms à 2ms avec un point neutre de 1.5ms.
    j'ai essayé de le faire manuellement avec une fréquence de 50Hz mais ça n'a pas bien marché!!

    quelqu'un a une idée sur l'ordre de valeur du courant demandé par la commande ???
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  11. #10
    freepicbasic

    Re : Vibration servomoteur

    Si l alimentation est commune le moteur envoie des parasites au pic !
    Il faut soit une alimentation séparée.
    Soit un réseau RC de filtrage puissant sur le 5V du pic.

    Les vibrations sont certainement dû au fait que l'horloge ne fonctionne pas correctement même avec un quartz.
    A+, pat

  12. #11
    Electro_Red

    Re : Vibration servomoteur

    Citation Envoyé par freepicbasic Voir le message
    Si l alimentation est commune le moteur envoie des parasites au pic !
    Il faut soit une alimentation séparée.
    Soit un réseau RC de filtrage puissant sur le 5V du pic.

    Les vibrations sont certainement dû au fait que l'horloge ne fonctionne pas correctement même avec un quartz.
    L'alimentation est séparée avec masse commune!
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  13. #12
    freepicbasic

    Re : Vibration servomoteur

    comment fonctionne le soft ?
    Si c est par int la précision risque d'être trop faible et le signal ne sera pas stable
    A+, pat

  14. #13
    Electro_Red

    Re : Vibration servomoteur

    voici le programme sur MicroC

    => Avec la commande PWM: fréquence de 250Hz, précision ça marche mais avec des vibrations et génère des sons...

    PWM1_Set_Duty(15);
    delay_ms(1000);
    PWM1_Set_Duty(27);
    delay_ms(1000);
    PWM1_Set_Duty(38);
    delay_ms(1000);

    .......


    => sans commande PWM: fréquence de l'ordre de 50Hz: pas de vibrations mais n'est pas précis!


    delay_us(2000);
    PORTC.F2=0 ;
    delay_ms(22);
    delay_ms(2000);
    PORTC.F2=1 ;
    delay_us(1500);
    PORTC.F2=0 ;
    delay_ms(22);
    delay_us(500);

    ....
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  15. #14
    Antoane
    Responsable technique

    Re : Vibration servomoteur

    sans commande PWM: fréquence de l'ordre de 50Hz: pas de vibrations mais n'est pas précis!
    Il ne faut pas utiliser la commande delay_us(), mais un timer dont tu comptes les débordements.
    La commande delay_Xs est imprécise : c'est de l'à peu près, qui réalise un certain nombre de fois rien (instruction "nop"). Or, si une instruction prioritaire (interruption...) arrive pendant l'exécution de la delay_us, elle sera réalisée en priorité, rallongeant d'autant la pause.
    Dernière modification par Antoane ; 30/09/2012 à 11h05.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  16. #15
    narakphysics

    Re : Vibration servomoteur

    Bonjour
    Citation Envoyé par Electro_Red Voir le message
    voici le programme sur MicroC


    => sans commande PWM: fréquence de l'ordre de 50Hz: pas de vibrations mais n'est pas précis!
    delay_us(2000);
    PORTC.F2=0 ;
    delay_ms(22);
    delay_ms(2000);
    PORTC.F2=1 ;
    delay_us(1500);
    PORTC.F2=0 ;
    delay_ms(22);
    delay_us(500);

    ....
    pourquoi delay_ms(22)!!
    La période maximale c'est 20 ms. non??
    A+

  17. #16
    Electro_Red

    Re : Vibration servomoteur

    Citation Envoyé par narakphysics Voir le message
    Bonjour

    pourquoi delay_ms(22)!!
    La période maximale c'est 20 ms. non??
    A+
    Ah ouais, je l'ai rectifié après avec un calcul sur une période de 20ms (50Hz), mais toujours le même problème.
    Il me reste que d'essayer avec le débordement d'un timer !
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  18. #17
    narakphysics

    Re : Vibration servomoteur

    Re.
    Un seule timer, je crois, c'est pas suffisant!! il te faut deux: l'un pour détecter l'état haut et l'autre pour l'état bas.
    A+

  19. #18
    freepicbasic

    Re : Vibration servomoteur

    il fzut boucler sur le signal
    et interdire les int pendant le signal haut

    le delay 18ms pourrait être gerer par un timer et permettre de gérer autre chose

    Code:
    loop:
    PORTC.F2=1 ;
    Disable interrupt
    delay_us(1000); // delay fixe
    delay_us(var);   // delay variable de 0 à 1000 us
    PORTC.F2=0 ;
    enable interrupt
    delay_ms(18);
    goto loop
    A+, pat

Discussions similaires

  1. servomoteur sans servomoteur RC
    Par invite08ce1b9e dans le forum Électronique
    Réponses: 3
    Dernier message: 25/06/2013, 07h11
  2. vibration
    Par invite0ca7f9ad dans le forum Physique
    Réponses: 2
    Dernier message: 14/04/2010, 08h46
  3. Vibration
    Par invite8769809b dans le forum Physique
    Réponses: 1
    Dernier message: 25/02/2010, 07h12
  4. Vibration
    Par invite263e1345 dans le forum Physique
    Réponses: 4
    Dernier message: 14/12/2007, 08h07
  5. Vibration
    Par GrandTrait dans le forum Physique
    Réponses: 3
    Dernier message: 01/10/2004, 22h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.