PIC16F84 Gérer le PWM sous Flowcode
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 36

PIC16F84 Gérer le PWM sous Flowcode



  1. #1
    invited7cd4587

    PIC16F84 Gérer le PWM sous Flowcode


    ------

    Bonjour à tous,

    Je suis en train de réaliser un programme sous Flowcode qui permettra de gérer deux servo. J'arrive à la partie où je dois générer le signal suivant :



    Avec un temps haut variant de 0,5ms à 1,5ms et une période max de 20ms.

    Je voudrais donc utiliser le PWM dans flowcode. Le problème, c'est que lorsque je clic sur PWM, la fenêtre verte apparaît avec écrit "unavailable" avec le PIC16F84. J'ai donc pensé que l'on ne pouvait pas faire ca avec ce PIC, et donc j'ai essayé avec le PIC16F87 dans flowcode. Là, la fenêtre verte contient "disabled".

    Comment faire pour modifier le signal du PWM ? Est-ce impossible avec un PIC16F84 ?

    Je suis débutant en la matière, je n'y connait donc pas grand chose. Désolé donc si cette question paraît bête, et merci de m'expliquer clairement si il y a une solution .

    Merci d'avance,

    FoxDeltaSierra

    -----

  2. #2
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    il faut que tu l'active puis que tu la paramètre avec les routine de composante sur flowcode .

  3. #3
    Antoane
    Responsable technique

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Bonsoir,
    il faut d'abord une initialisation du PWM, avec une routine, "enable".
    L'inconvéniant, c'est que la fréquence du PWM sous flowcode est fixée, et qu'elle diffère de celle nécessaire pour le pilotage des servo (une période de 20ms).
    Il te faut donc utiliser un programme à base d'interruption et de timers, assez facile à faire sous flowcode. (ce qui serait possible avec (à peu près) n'importe quel pic, y compris un 16F84).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #4
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    oui tu peut faire toi même ta macro de pwm pour pouvoir l'utiliser sur la plus part des microcontrolleur si tu peut aussi changer la fréquence de ta pwm en changeant ton préscaler et la valeur de ta période ou du moins sur combien de base de temps tu décompose ta pwm par rapport a ton horloge deplus l'avantage de la routine de composant c'est quel vas te simuler ton signal sur l'ordit pas besoin de compiler pour voir bon bref je c pas si je suis très clair mais sinon dis le je te donne un fichier de base.

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

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Bonjour à tous,

    Merci de vos réponse j'ai réussi à activer le PWM sous flowcode, par contre j'ai toujours le même problème : avec le PIC 16F84, même après avoir mis la routine "PWM Enable(1)", il y a toujours "unavailable" dans le rectangle vert du PWM. Par contre, si je change la puce cible (16F87), là ca marche... comment faire ?

    Ensuite, xeros je ne dis pas non pour ton fichier d'exemple, comme je l'ai dit je suis un débutant et je pense que je comprendrai mieux avec ça

    Nouvelle petite question : je souhaiterai dans le même programme, gérer un Servo-treuil c'est à dire un servo qui fait plusieurs tours de 360°. Mais je n'ai rien trouvé sur le net concernant le signal à envoyer pour décider de la position de l'axe du servo... quelqun à des infos ?

    Encore merci à tous pour votre aide,

    FoxDeltaSierra

  7. #6
    Antoane
    Responsable technique

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Bonjour,
    Citation Envoyé par FoxDeltaSierra Voir le message
    Merci de vos réponse j'ai réussi à activer le PWM sous flowcode, par contre j'ai toujours le même problème : avec le PIC 16F84, même après avoir mis la routine "PWM Enable(1)", il y a toujours "unavailable" dans le rectangle vert du PWM. Par contre, si je change la puce cible (16F87), là ca marche... comment faire ?
    Le 16F84 ne dispose pas de module PWM.

    tu peut aussi changer la fréquence de ta pwm en changeant ton préscaler et la valeur de ta période
    En effet, tu peux en choisir la fréqence. Mais seulement des périodes fixées, trop rapides pour ce que tu cherches à faire (même en descendant la votesse d'horloge (=le quartz) à 4MHz, la fréquence la plus basse proposée possède une période de 4ms).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  8. #7
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Merci de la réponse,

    Mais pourtant il est possible de gérer un servo avec un PIC16F84... comment faire sans le PWM ?

    Sinon, je préfère tout de même utiliser le PWM qui a l'air assez intuitif pour les débutant. Je vais utiliser le 16F628 qui lui apparament dispose du module PWM et qui n'est pas trop cher.

    Comment faire donc pour réduire la période du signal (50Hz environ) ?

    Merci.

  9. #8
    invite2de7076a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Bonjour!
    Je ne suis pas tout a fait d'accord avec toi Antoine. Il est tout a fait possible de descendre sous les 4ms.
    Le quartz à 4MHz, donc des cycles de 1µs par instructions (sauf celles de sauts).
    Je pense faisaible des périodes de 100µs.

    Pour le 16F84 il ne possède pas en effet de PWM mais c'est tout à fait faisable avec le TMR0 en inetéruption.

    Enfin 50Hz ca fait une période de 20ms.

  10. #9
    invite2de7076a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Bonjour!
    Je ne suis pas tout a fait d'accord avec toi Antoine. Il est tout a fait possible de descendre sous les 4ms.
    Le quartz à 4MHz, donc des cycles de 1µs par instructions (sauf celles de sauts).
    Je pense faisable des périodes de 100µs.

    Pour le 16F84 il ne possède pas en effet de PWM mais c'est tout à fait faisable avec le TMR0 en interruption.

    Enfin 50Hz ça fait une période de 20ms.

  11. #10
    invite2de7076a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Oups, une "connexion interrompue" et du coup un donblon.
    Désolé.
    Merci aux modérateurs!!

  12. #11
    Antoane
    Responsable technique

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Citation Envoyé par maximilien Voir le message
    Bonjour!
    Je ne suis pas tout a fait d'accord avec toi Antoine. Il est tout a fait possible de descendre sous les 4ms.
    un niveau du PWM, tout à fait, mais pas pour le servo, il veut 20ms, ce qui fait descendre à une vitesse d'horloge de 800kHz, ce qui est faible.

    Le quartz à 4MHz, donc des cycles de 1µs par instructions (sauf celles de sauts).
    Je pense faisable des périodes de 100µs.
    je ne saisit pas.

    Pour le 16F84 il ne possède pas en effet de PWM mais c'est tout à fait faisable avec le TMR0 en interruption.
    Ca me semble aussi la meilleur solution, on en revient au message #3.

    Enfin 50Hz ça fait une période de 20ms.[/QUOTE]
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  13. #12
    invite2de7076a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Citation Envoyé par Antoane Voir le message
    un niveau du PWM, tout à fait, mais pas pour le servo, il veut 20ms, ce qui fait descendre à une vitesse d'horloge de 800kHz, ce qui est faible.
    Pourquoi descendre la fréquence de l'horloge?
    Suffit de faire compter le pic!
    Si le pic fait une interruption toutes les ms alors on en compte 10 avant de changer l'état. (pour un rapport cyclique de 50%)
    Avec le quartz a 4MHz le pic peut compter avec son TMR0 et pre-diviseur jusqu'à: 256x256x1µs.

  14. #13
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Oups désolé Antoane je n'avais pas bien saisi ton message numéro 3. Donc c'est possible avec un PIC16F84, mais je ne vois pas du tout comment m'y prendre...

    A ton avis, vaut-il mieux que j'essai de faire ca avec un PIC équipé du PWM ou bien que je fasse ca a base de timer et d'interruptions ? Pour cette méthode, pouvez-vous m'expliquer comment s'y prendre voire même me donner un exemple de code Flowcode ?

    Merci !

  15. #14
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Sinon personne n'a d'idée pour le Servo treuil ???

  16. #15
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    voila je viens de le faire il te permet de faire un signal de 50 Hz avec des variation de alpha de 0 pour 0 % à 40 pour 100%
    http://www.mediafire.com/file/namyv2zixoo/pwm16f84 50Hz.fcf
    sinon l'avantage de prendre un avec une pwm est que tu pourras avoir des fréquence plus élever et des découpement de ta pwm de 0 à 255

  17. #16
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Salut Xeros,

    Merci beaucoup c'est super sympa. Par contre je ne comprend pas tout... Tous les combien l'interruption va t-elle s'activer ? Comment tu vois que c'est un signal 50 Hz ? A quoi correspond C ?

    Merci de ton aide !

  18. #17
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    J'ai un petit peu réfléchi et je pense avoir compris ce que tu as fais.

    En gros, tu as considéré que j'avais une fréquence de fonctionnement de 2MHz, exact ? La période de chaque signal est donc de 1/2000 = 0,5 ms. Ainsi, je pense que le Timer0 doit avoir un front montant toute les 0,5ms, donc tu lances ta macro PWM toute les 0,5ms, j'y suis toujours ?

    Ainsi, tu effectue la macro 40 fois, donc pendant 20ms et là dedans tu gères ton signal avec le système de comptage. Si l'on a dépassé la durée du temps haut voulue (20 x 0,5 = 10ms) dans le cas où ALPHA = 20, alors on passe à l'état bas. C'est bien ca ?

    Donc pour moi qui dois faire varier le temps haut de 0,5ms à 2,0 ms, ALPHA doit varier de 1 à 4... mais le problème c'est que je n'aurai pas une grande précision, car mon mouvement ne pourra être divisé que par 4... J'aimerai pouvoir au moins choisir la position à 2° près... Il faut donc que j'augmente la fréquence de fonctionnement ?

    Merci !

  19. #18
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Oups je voulais dire 2Khz et pas 2Mhz.

  20. #19
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    exactement et tu peut changer le rapport en changeant ALPHA

  21. #20
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Ok. Il faudrait donc que je passe en 1mHz comme ca je pourrai faire 20000 cycles pour réaliser un signal de période 20ms. Ce qui me laisse assez de précision pour l'angle du servo. Je ne me trompe pas ?

    Encore Merci tu m'as bien fait avancé !

  22. #21
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    bah cela dépend surtout de la précision que tu veut car la tu a déjà un signal de 50hz mais la précision est de seulement 0.5 ms si tu prend un microcontrolleur et que tu met un fréquence 20 mHz tu peut avoir un interruption de programme a 10 kHz donc pour avoir un signal de 50 Hz tu le découper en 200 alors que avec 4Mhz ton interruption est a 2 kHz donc pour aavoir un signal de 50 Hz on le découpe en 40.

  23. #22
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    sinon voila un exemple de pwm paramétrable avec un pic qui coute 1,5 euros

    http://www.mediafire.com/download.php?yftg55hj3yy

    tu devrait comprendre les avantages d'un tel système

  24. #23
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Aïe aïe aïe ca démonte ce truc ! Mais on ne peut pas avoir un signal de 50Hz, si ?

  25. #24
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    si mais il faut jouer avec la vitesse de l'horloge le prescalaire et sur combien de période tu te met voila un exemple en 50 Hz :
    http://www.mediafire.com/?1imonztjdnz

  26. #25
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Salut Xeros,

    Oui c'est pas mal mais ce n'est pas un signal de 50Hz car la période est de 2ms. J'ai essayé de modifier le tout pour avoir du 20ms, mais je ne comprend pas trop comment cela fonctionne... qu'est ce que le prescalaire ? Comment choisis tu ta période ?

    Sinon régler le Rapport Cyclique ca serait parfait pour ce que je veux faire.

    Encore merci !

  27. #26
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    oups j ai du me tromper en gros ton préscalaire vas diviser ta fréquence d origine et périodval vas déterminer sur combien de front montant de ta nouvelle fréquence tu vas décomposer ton signal donc la fréquence de ton signal dépend de ces 2 valeurs plus le préscalaire sera grand plus ta fréquence sera petite et plus périodval sera petit plus ta fréquence sera élevé mais la précision de ton alpha diminura

  28. #27
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Je ne parviens pas à trouver une valeur pour le prescalaire et le periodval afin d'obtenir un signal de 50hz... ?

  29. #28
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Ouai il y a effectivement un problème car tu pourrais jouer avec le fréquence de l'horloge mais avec un fréquence minimum de 1 MHz (sur flowcode ) tu ne peut pas le faire car tu pourrais seulement décomposer ton signal en 75 sinon revient a mon premier programme mais avec un pic qui tourne a 20mHz au lieu de 4 Mhz tu pourra multiplier par 2.5 la décomposition de 40*5=200 tu te retrouve avec presque des pourcentage et ça devient très facile ou pour avoir des pourcentage tu mes un prescaler de 4 au lieu de 2 dans l'interruption voila les prog.
    http://www.mediafire.com/?ynnbgdttznc

  30. #29
    invited7cd4587

    Re : PIC16F84 Gérer le PWM sous Flowcode

    Bonjour à tous,

    Je déterre ce sujet car je suis maintenant au stade du test du programme sur la maquette. Je souhaiterai savoir quelle valeur de résistance et de condensateur il me faut pour réaliser une cellule RC permettant de générer une fréquence de 100 kHz pour l'horloge du PIC. Pouvez-vous m'expliquer comment faire pour trouver ces valeurs ?

    Merci.

  31. #30
    invite622a591a

    Re : PIC16F84 Gérer le PWM sous Flowcode

    vas ici tu trouveras tous http://fr.wikipedia.org/wiki/Circuit_RLC

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Gestion de la MLI(PWM) avec flowcode
    Par invite899fce5d dans le forum Électronique
    Réponses: 17
    Dernier message: 17/05/2012, 14h57
  2. Gestion de la MLI(PWM) avec flowcode
    Par invite899fce5d dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 19/02/2009, 18h00
  3. [PPE] Gérer un bus I²C grâce à flowcode
    Par invite4c679c34 dans le forum Électronique
    Réponses: 5
    Dernier message: 28/02/2008, 21h31
  4. PIC16F84 PWM et delay
    Par inviteb54e0fd7 dans le forum Électronique
    Réponses: 3
    Dernier message: 05/01/2008, 13h43
  5. CAN sous flowcode
    Par invitebf277856 dans le forum Électronique
    Réponses: 3
    Dernier message: 08/03/2007, 21h01
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...