PPE servomoteur
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

PPE servomoteur



  1. #1
    invite9fea0dc3

    PPE servomoteur


    ------

    bonjour, dans le cadre de mon PPE, je dois piloter un
    servomoteur avec Flowcode.
    Mais je ne comprend pas l'utilisation de l interruption

    -----

  2. #2
    Flyingsquirrel

    Re : PPE servomoteur

    Discussion déplacée dans le forum d'électronique.

  3. #3
    Antoane
    Responsable technique

    Re : PPE servomoteur

    Bonjour,
    qu'est ce que tu n'as pas compris ? ce qu'est une interruption ou comment s'en servir, ou comment la programmer sous Flowcode ?
    Sais-tu comment piloter un servo-moteur ?
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #4
    invite9fea0dc3

    Re : PPE servomoteur

    oui, je connais le principe de fonctionnement du servomoteur mais je ne c pas comment faire une impulsion entre 1 et 2 ms sur une période de 20ms en utilisant l interruption sur flowcode

  5. A voir en vidéo sur Futura
  6. #5
    Antoane
    Responsable technique

    Re : PPE servomoteur

    Bonjour,
    Le timer-0 (par exemple) est un compteur, qui, bien paramétré, compte les coups d'horloge du pic. Tu vas donc pouvoir t'arranger pour que, tout les n coups d'horloge, c'est à dire toutes les p µs, il déclenche une interruption.Compter les interruptions (on parle de "débordement du Timer0) permettra de "lire le temps qui passe".

    C'est aussi faisable avec des "pauses", des temporisations, mais c'est moins précis et le µC ne peux rien faire en même temps.


    PS : il me semble que flowcode V4 gère les servo-moteurs, pas flowcode V3.
    PS2 : il me semble que c'est faisable "simplement" avec le module PWM, masi pas sous Flowcode (fréquence du PWM fixée).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  7. #6
    invite9fea0dc3

    Re : PPE servomoteur

    Bonjour,
    il faut donc que je mette l'interruption a une fréquence de 50 Hz (pr période de 20 ms), il faut aussi que je mette une deuxiéme interruption pour pour une impulsion de 1ms ?

  8. #7
    Antoane
    Responsable technique

    Re : PPE servomoteur

    C'est pas possible : le timer, c'est en fait un compteur, un diviseur de fréquence. Tu le configures pour qu'il divise la fréquence d'horloge par un certain nombre n (sur flowcode, c'est des puissances de deux : 2,4,8...) ; et à une fréquence égale à , le programme appellera ta macro d'interruption (le 4 vient du fait qu'il faut 4 coups d'horloge pour exécuter une action, le 256... je sais plus, il me semble que c'est le prédiviseur, réglé d'office sur 2^8 par Flowcode)

    Si tu veux créer un signal de période 500µs, 100µs à l'état haut :
    - quartz de 20MHz,
    - pré-diviseur du timer0 (c'est le n) configuré à 1
    le timer déborde tous les 51µs
    Ton programme :
    avec var une variable, temps vaut ici : 100µs/51µs = 2 :

    var = var + 1
    Si var == temps_haut alors sortie = 0
    Si var == 10 alors sortie = 1 et var = 0

    PS : c'est sûr que c'est ici pas très précis, on gagnerait à ne pas utiliser 51µs, mais beaucoup moins, au prix de variables qui compteraient plus, et d'un interruption qui serait appelée plus souvent (rien de bien méchant).
    Dernière modification par Antoane ; 16/05/2010 à 14h54.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  9. #8
    invite9fea0dc3

    Re : PPE servomoteur

    merci pour l explication,
    J'ai compris la premiére partie mais pas totalement compris le programme.
    avec ton exemple: signal de 100µs et de periode 500µs
    si var= temps haut alors sortie =0
    temps haut doit être égale a 2
    Et le programme que tu m a énoncé doit se situer dans la interruption ?
    Dans le programme principal je ne dois mettre que l'interruption ?

  10. #9
    Antoane
    Responsable technique

    Re : PPE servomoteur

    Imagine que tu discutes tranquillement avec un amis en bas d'un immeuble. Tout d'un coup, un piano tombe du 3e étage, juste à votre verticale. Attendras-tu que M. ai fini sa phrase avant de réagir ?
    C'est ça une interruption : le programme se déroule tranquillement (dans la boucle principale) et quand un piano arrive, on appelle une macro d'interruption, qui va agir en conséquence (appeler un nouvel accordeur ou autre...)
    Ici, ton programme se déroule gentiment (gestion de moteur, de LCD, de boutons-poussoirs....), et à chaque débordement du TMR0, il appelle la macro d'interruption, dans laquelle tu mets le code que j'ai écris, qui sera fait une unique fois, tous les 51µs.
    Si tu le mets dans la boucle principale (entre les Tant que), var va être incrémentée de manière anarchique, regardless to the TMR0.


    PS : probablement la seule chose que j'ai retenu de BigOnOff.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  11. #10
    invite9fea0dc3

    Re : PPE servomoteur

    bonjour,
    J'ai essayé le programme que tu ma donné sur flowcode v4 qui possede un simulateur de servomoteur mais le servomoteur ne tourne pas.
    Dans mon programme principal je n'ai mis que l interruption.
    Faut il que je rajoute quelque chose ?

  12. #11
    Antoane
    Responsable technique

    Re : PPE servomoteur

    Sans voir le programme...
    http://forums.futura-sciences.com/el...-sabonner.html

    PS : essaye aussi de le compiler en C et de nous l'envoyer.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  13. #12
    invite9fea0dc3

    Re : PPE servomoteur

    voici le programme d'interruption:
    Images attachées Images attachées  

  14. #13
    Antoane
    Responsable technique

    Re : PPE servomoteur

    De deux choses l'une :
    - ma voiture ne démare pas, peux-tu me dire d'où vient le problème ? en voici une photo pour t'aider. Tout ça pour dire que sans savoir comment tu as configuré l'interruption, sans voir la boucle principale...
    - Ya clairement un problème dans ton programme :
    Tu dois pas avoir compris le fonctionnement de l'interruption : à chaque débordement du timer (càd à des intervalles de temps précis), tu appelles un routine d'interruption, qui exécute un (cours) morceaau de programme. Le but, c'est de compter le nombre d'appels de cette routine, cartu saura alors exactement quel est le temps écoulé.
    Ce n'est pas ce que tu as fais : une fois qu'on est entré dans le programme d'interruption, on va y rester pour toujours, le timer ne servant absolument à rien (sauf peut-être à planter le programme).

    Le pictogramme d'interruption, que tu mets dans le programme principal correspond à l'autorisation de l'interruption, il doit donc être lû une seule fois par le micro-contrôleur, il doit alors être en dehors de la boucle infinie.

    Renseigne-toi sur les interruptions, sur ce que fait un timer,
    Ecrit un programme "basique" qui fait clignoter une led à une fréquence choisie à l'aide d'un timer,
    Puis reprend l'exemple que je t'ai donné, comprend-le, et gère ton servo-moteur.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  15. #14
    invite9fea0dc3

    Re : PPE servomoteur

    bonjour,
    J'ai réussi a faire clignoter une led avec une interruption.
    Je bloque sur la programmation du servomoteur.
    Faut il que j'utilise 2 interruption ?
    car je rencontre des problémes avec une seule interruption

  16. #15
    Antoane
    Responsable technique

    Re : PPE servomoteur

    Bonjour,
    poste ton programme, en flowcode et C.
    "car je rencontre des problémes avec une seule interruption " Quels problèmes ?
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  17. #16
    invite9fea0dc3

    Re : PPE servomoteur

    bonjour,
    J'ai fait ce programme mais il ne veut pas fonctionner, je n'arrive pas trouver l'erreur.
    _La fréquence d'interruption est de 30,518 HZ
    _Dans le programme d'interruption, int_a sert a compter le nombre d'interruption
    _Dans le programme principal; je met la variable a sur le port A
    Images attachées Images attachées

  18. #17
    Antoane
    Responsable technique

    Re : PPE servomoteur

    Bonsoir,
    je ne vois pas d'erreur. Dans les calculations, dans la macro d'interruption, il y a bien int_a = int_a +1 ?
    Si oui, c'est peut-être que le simulateur n'arrive pas à suivre la vitesse de fonctionnement (20MHz) demandée. Diminue le rapport de deivision du Timer ; ça devrait par contre bien marcher en vrai.


    PS : c'est une version demo de flowcode V4 ?
    PS2 : il est évident qu'on ne voit pas tout le programme (configuration des fusibles, de l'interruption...) "non sans raison avais-je" demandé le C
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. servomoteur sans servomoteur RC
    Par invite08ce1b9e dans le forum Électronique
    Réponses: 3
    Dernier message: 25/06/2013, 07h11
  2. servomoteur PPE
    Par invitecf20d56d dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 03/05/2010, 09h55
  3. Servomoteur ?
    Par invite1f85ea87 dans le forum Électronique
    Réponses: 5
    Dernier message: 16/11/2009, 18h49
  4. PPE : branchement servomoteur
    Par invitebffa97de dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 10/11/2009, 10h11
  5. PPE SI banc d'essai servomoteur
    Par invite29b9a3c3 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 07/01/2008, 14h23
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...