Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Fournir 50 Hz à l'aide d'un PIC



  1. #1
    narakphysics

    Fournir 50 Hz à l'aide d'un PIC


    ------

    Bonjour à tous
    Pourquoi il est impossible de fournir une fréquence de 50 Hz à l'aide d'un pic et oscillateur de 4 MHz??
    merci d'avance

    -----

  2. Publicité
  3. #2
    inoxxam

    Re : Fournir 50 Hz à l'aide d'un PIC

    Salut,
    Ta demande est un peu floue. Tu dis vouloir fournir Hz, mais quel type de signal (carré, sinus, triangle...)?
    Ensuite comment t'y prends-tu actuellement pour tenter d'y parvenir?

  4. #3
    narakphysics

    Re : Fournir 50 Hz à l'aide d'un PIC

    Merci de votre réponse
    et désolé pour la "non précision"
    Pour générer un signal PWM , en utilisant le compilateur mikroc, il faut tout d'abord l'initialiser à l'aide de la fonction suivante:
    PWM1_Init(const long freq);
    j'ai essayé par plusieurs fréquence inférieure à 250 Hz , le compilateur affiche une message d'erreur (la valeur que j'aie introduit comme argument est fausse !), mais pour des fréquence supérieure à 250 Hz ça marche très bien.
    Ma question est pourquoi ??est ce que l'oscillateur qui est le responsable ?? ou autres choses??
    merci encore une fois

  5. #4
    inoxxam

    Re : Fournir 50 Hz à l'aide d'un PIC

    D'après le datasheet, tu as PWM period = [(PR2) + 1] • 4 • TOSC • (TMR2 prescale value)
    Le prescaler du timer 2 est au maximum de 16 et PR2 255.
    La période maximale est donc 0.004096 s soit une fréquence minimale de 244 Hz environs. C'est donc une limite technique.
    Note qu'en te mettant à 244Hz, cela n'a que peu d'intérêt car tu ne peux pas changer le rapport cyclique de ton PWM.

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    narakphysics

    Re : Fournir 50 Hz à l'aide d'un PIC

    Donc pour générer telle fréquence il faut augmenter c'est à dire diminuer la fréquence de l'oscillateur à 204800 Hz!!
    Merci beaucoup inoxxam

  9. #6
    terriblement

    Re : Fournir 50 Hz à l'aide d'un PIC

    Ou encore faire un 50Hz en soft...

  10. Publicité
  11. #7
    RISC

    Re : Fournir 50 Hz à l'aide d'un PIC

    Salut,

    quel PIC utilises-tu ?
    Il est possible de générer des fréquences très faibles en utilisant 2 timers en cascade mais cela dépend de la référence du PIC que tu utilises...

    a+
    Ma marotte ? les microcontrôleurs ;=)

  12. #8
    Franck-026

    Re : Fournir 50 Hz à l'aide d'un PIC

    Il y avait deja eu un sujet simillaire... En effet, a 4MHZ, il est impossible de generer une PWM de frequence 50Hz. d'ailleurs, on peut generer du 50Hz sinusoidal avec la MLI et un filtre passe bas simplement en appliquant les directives suivantes (exemple fonctionnel)
    - nombre d'echantillons par periode: 200
    - frequence MLI 15 a 20KHz
    On chargera selon une cartographie etablie la valeur de la MLI toutes les 100µS (par interruption), au bout de 20ms, on aura ainsi reconstitué la valeur de la periode en MLI grace aux 200 echantillons correspondant a la forme du signal, le filtre passe bas donnant un sinus de bonne qualité en sortie qui aura en effet une frequence de 50HZ...

    Ne pas confondre valeur de frequence de MLI avec frequence obtenue si la forme doit etre sinus ou triangle...
    Dernière modification par Franck-026 ; 12/09/2012 à 17h59.

  13. #9
    narakphysics

    Re : Fournir 50 Hz à l'aide d'un PIC

    Re.
    Merci à tous de vos réponses
    Citation Envoyé par RISC Voir le message
    Salut,

    quel PIC utilises-tu ?
    Il est possible de générer des fréquences très faibles en utilisant 2 timers en cascade mais cela dépend de la référence du PIC que tu utilises...

    a+
    j'ai deux versions: 16F628A et 16F877A.
    Citation Envoyé par Franck-026 Voir le message
    Il y avait deja eu un sujet simillaire... En effet, a 4MHZ, il est impossible de generer une PWM de frequence 50Hz. d'ailleurs, on peut generer du 50Hz sinusoidal avec la MLI et un filtre passe bas simplement en appliquant les directives suivantes (exemple fonctionnel)
    - nombre d'echantillons par periode: 200
    - frequence MLI 15 a 20KHz
    On chargera selon une cartographie etablie la valeur de la MLI toutes les 100µS (par interruption), au bout de 20ms, on aura ainsi reconstitué la valeur de la periode en MLI grace aux 200 echantillons correspondant a la forme du signal, le filtre passe bas donnant un sinus de bonne qualité en sortie qui aura en effet une frequence de 50HZ...
    Ne pas confondre valeur de frequence de MLI avec frequence obtenue si la forme doit etre sinus ou triangle...
    Merci encore une fois Franck, c'est très intéressant
    Pourriez vous me donner un exemple ? car la notion des interruptions est encore flou pour moi!
    A+

  14. #10
    ftorama

    Re : Fournir 50 Hz à l'aide d'un PIC

    Je suppose que c'est pour piloter tes servomoteurs. Si tu utilises un PWM à 50Hz, tu vas perdre 90% de la précision de celui-ci dans le temps-mort entre 2 impulsions et tu ne pourras piloter ton servo que par pas angulaires conséquents.

    Pour une première approche, il vaut mieux faire ça avec deux timers. Un premier cadencé à 20ms ou un peu moins met la sortie à 1 en déclenche un second qui va remettre la sortie à 0 quand il va déborder. Ainsi tu as toutes la précision du second timer pour ton réglage d'angle de servo.

    Il y a d'autres méthodes, avec un seul timer, avec des PWM, avec des composants externes, mais celle au-dessus doit être de loin la plus simple à coder.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  15. #11
    narakphysics

    Re : Fournir 50 Hz à l'aide d'un PIC

    Merci de votre réponse
    Citation Envoyé par ftorama Voir le message
    Je suppose que c'est pour piloter tes servomoteurs. Si tu utilises un PWM à 50Hz, tu vas perdre 90% de la précision de celui-ci dans le temps-mort entre 2 impulsions et tu ne pourras piloter ton servo que par pas angulaires conséquents.
    D'où vient ce résultat (90%)??
    Avec un PWM à 250 Hz , j'entend un bruit comme une vibration au niveau du servo! Est ce le même problème?

  16. #12
    alainav1

    Re : Fournir 50 Hz à l'aide d'un PIC

    bonjour,
    pour ftorama ne peux on pas realiser une boucle du type
    debut
    mise à 1 de la sortie (commande pwm)
    attendre 1ms (par xemple)
    mise à 0 de la sortie
    attendre 19ms
    retour debut

    cordialement
    alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  17. Publicité
  18. #13
    Franck-026

    Re : Fournir 50 Hz à l'aide d'un PIC

    Euh, on utilise jamais le PWM pour piloter un servo type RC... on utilise toujours comme dit Fto une interruption qui synchronise le start d'une impulsion calibree en largeur ayant pour caracteristique comprise entre 1 et 2ms pour avoir le debattement maxi dans les deux sens, et un point milieu a 1.5ms...

    A chaque debordement du timer calibré sur 20ms, on recupere l'info pour lancer une impulsion et comme cela, on peut avec un simple petit µC PIC piloter jusqu'a 10 servo sur 8 sorties independantes, on incremente un compteur entre 0 et 9 a chaque debordement timer, et tout le traitement se fait quand la tempo entre 1 et 2ms est finie (on a quand meme 18 a 19ms pour faire toutes les autres taches a temps perdu)...

  19. #14
    ftorama

    Re : Fournir 50 Hz à l'aide d'un PIC

    Citation Envoyé par narakphysics Voir le message
    Merci de votre réponse

    D'où vient ce résultat (90%)??
    Avec un PWM à 250 Hz , j'entend un bruit comme une vibration au niveau du servo! Est ce le même problème?
    Si tu utilises 2ms sur les 20 de ta période de rafraîchissement, tu n'utilises que 10% du temps et donc 90% est perdu. Sur un PWM 8 bits, ça reviendrait à n'utiliser en gros que les valeurs de 6 à 32.

    @Franck-026 On peut aussi, à chaque fin de pulsation, recharger le timer avec la consigne du servo suivant et "simplement" shifter" un port. Avec des impulsions de 2 ms max, on pilote 10 servos max ou 8 avec des impulsions à 2,5.

    Bon, les servos ayant toujours une commande mini de 0,5 ou 1 ms, il y a encore moyen d'optimiser ça mais ça ce complique évidemment et ça devient hors de propos ici.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  20. #15
    ftorama

    Re : Fournir 50 Hz à l'aide d'un PIC

    Citation Envoyé par alainav1 Voir le message
    bonjour,
    pour ftorama ne peux on pas realiser une boucle du type
    debut
    mise à 1 de la sortie (commande pwm)
    attendre 1ms (par xemple)
    mise à 0 de la sortie
    attendre 19ms
    retour debut

    cordialement
    alain
    Tout dépend de l'implémentation du delay(). Si il est à base de scrutation d'un timer pas de soucis normalement. Si il est comme souvent à base d'une boucle calibrée, le délai va s'allonger dès qu'une interruption va arriver par exemple pour la réception de la consigne de position du servo et celui-ci va être pris de tremblements.....si il accepte de bouger.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

Discussions similaires

  1. Pilotage de la vitesse de ventilation a l'aide d'un PIC
    Par realove1 dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 29/03/2011, 13h25
  2. regulation d'un four a l'aide d'un pic 16F877
    Par tissarbz dans le forum Technologies
    Réponses: 2
    Dernier message: 10/03/2011, 14h10
  3. traitement d'un signal à l'aide d'un pic
    Par Zero Cold dans le forum Électronique
    Réponses: 8
    Dernier message: 05/12/2010, 19h42
  4. mesurer l'alimentation à l'aide d'un pic
    Par ti7bo7 dans le forum Électronique
    Réponses: 7
    Dernier message: 23/09/2008, 11h52
  5. Emission/Reception IR à l'aide d'un PIC16F630 (PIC BASIC)
    Par 10025327 dans le forum Électronique
    Réponses: 0
    Dernier message: 26/03/2007, 00h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.