fréquencemetre pic18f46k80
Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

fréquencemetre pic18f46k80



  1. #1
    Aneantisor

    fréquencemetre pic18f46k80


    ------

    Bonjours,
    Je suis sur un projet depuis quelque mois, et j'en vois enfin le bout, ou presque.
    la partie mesure de fréquence est une partie importante du projet, et fonctionne en laboratoire.
    C'est un ensemble de 2 fréquencemètres basse fréquence (maxi 1000Hz).
    Ils me servent a mesurer la fréquence de mon capteur de régime moteur, et celle du capteur de vitesse du véhicule.
    De la je divise l'un par l'autre et je peu afficher le rapport de boite de vitesse.

    En labo, lorsque j'envoie des impulsions avec un autre pic sur ma borne CCP3 ou CCP4, mes variable (afficher sur un lcd 4x20) sont bien enregistré et cohérente.
    mais lorsque je branche le système sur la moto, plus rien, zéro, il n'y a même plus d'interférence comme lorsque je laisse la pin non connecté.
    c'est a dire que si j'étais connecté a la masse, ça serai pareil.
    au début, j'étais connecter sans condensateur, alors j'avais pensé a un éventuel problème de niveau. comme une fréquence qui varierai autour de 5 volt par exemple. Du coup, un petit condensateur de liaison et hop. mais toujours aucune lecture d'une quelconque fréquence.

    j'ai contrôlé mes fréquence avec un multimètre sur la moto, et ma mesure est présente et cohérente par rapport a la RTA.

    je vous joint le schéma électrique(relativement simple) ainsi que les 2 page concernant la moto en elle même.

    merci

    -----
    Fichiers attachés Fichiers attachés

  2. #2
    Gérard

    Re : fréquencemetre pic18f46k80

    Il faudrait vérifier avec un oscillo les signaux émis pas la moto, la mesure de la fréquence ne suffit pas.
    Quelle est l'amplitude ?
    Les signaux sont-ils parasités ?

    Les fichiers ne sont pas encore validés par la modération.

  3. #3
    Aneantisor

    Re : fréquencemetre pic18f46k80

    merci pour la réponse
    malheureusement, je n'ai pas d'oscilloscope.
    cependant, après relecture de la RTA, les signaux envoyé par la moto sont de type carré.
    d'une amplitude de 5 volt pour la vitesse, et 12 volt pour le régime moteur.
    je pense donc que ma petite capa cms risque de ne pas supporté le 12 volt bien longtemps. mais bon, la n'est pas le soucis primaire.

  4. #4
    Gérard

    Re : fréquencemetre pic18f46k80

    Quelle est la tension d'alimentation du PIC ?Si 5V, le signal de 5V devrait être lu correctement.
    Le signal de 12V doit obligatoirement être atténué pour ne pas dépasser la tension d'alimentation du PIC.
    Si tu as mis 12V sur une entrée du PIC, il n'est pas sûr qu'il ai survécu.

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

    Re : fréquencemetre pic18f46k80

    Le pic est alimenté en 4,8volt. Mais j'avais eu des soucis de conversion analogique / numérique. Il y a un régulateur intégré qui doit ajuster la tension vers les 3volt, 3,3volt.
    Mais je ne devrait pas déclencher tout de même une interruption sur front montant même si la tension dépasse la tension d'alimentation ?
    Je vais essayer un pont diviseur et voir ce que ça donne ce soir.

    L'entrée n'a pas grillée, fonctionne toujours impec en labo.

    Merci

  7. #6
    Gérard

    Re : fréquencemetre pic18f46k80

    Citation Envoyé par gourroux Voir le message
    Le pic est alimenté en 4,8volt. Mais j'avais eu des soucis de conversion analogique / numérique. Il y a un régulateur intégré qui doit ajuster la tension vers les 3volt, 3,3volt.
    Cette tension ne sert pas au CAN.
    Tu veux dire quoi par soucis de conversion ?
    Il faut bien configurer les registres liés au CAN.

    Citation Envoyé par gourroux Voir le message
    Mais je ne devrait pas déclencher tout de même une interruption sur front montant même si la tension dépasse la tension d'alimentation ?
    Il faut surtout que la tension sur l'entrée du PIC ne dépasse pas la tension d'alim.

    Citation Envoyé par gourroux Voir le message
    Je vais essayer un pont diviseur et voir ce que ça donne ce soir.
    Attention à respecter l'impédance d'entrée du CAN.

    Citation Envoyé par gourroux Voir le message
    L'entrée n'a pas grillée, fonctionne toujours impec en labo.
    Merci
    Ca c'est une bonne nouvelle, tu as ru de la chance.
    De rien.

  8. #7
    Aneantisor

    Re : fréquencemetre pic18f46k80

    par soucis de conversion, je voulais dire que j'obtenais ma valeur maximum de 4095 avant d'arriver a 4.8volt.
    Ce type de pic est équipé d'un régulateur de tension, mais n'a pas de pin ENREG.
    Donc au final, en interne, je ne sais pas trop quel est ma valeur d'alim... mes conversions fonctionnent très bien tout de même et je ne me rappel même plus ce que j'ai fait pour régler le problème.

    Que se passe t il si une entrée du pic est exposé a une tension supérieur a la tension d'alim ?
    Je ne sais pas 'il y a eu confusion avec le CAN, mais mon entrée est une entrée capture/compare/PWM, rien a voir avec le CAN.
    Mes registres sont programmées pour capturé tout les fronts montants.

  9. #8
    Gérard

    Re : fréquencemetre pic18f46k80

    Si tu arrives à 4095 avant 4,8V, c'est que la référence haute est différente de 4,8V.
    Si tu mets plus que VCC sur une entrée, ça peut aller jusqu'à la mort du PIC.
    Même si ce n'est pas une entrée du CAN, il faut rester dans la limite de VCC.

  10. #9
    RISC

    Re : fréquencemetre pic18f46k80

    Salut,
    Citation Envoyé par gourroux Voir le message
    par soucis de conversion, je voulais dire que j'obtenais ma valeur maximum de 4095 avant d'arriver a 4.8volt.
    J'ai vérifié l'erratasheet du PÏC18F46K80 et il y a probablement l'explication de ce que tu observes. Le CAN a une erreur importante d'offset (+/- 25LSB)...
    Cela est corrigeable (voir le workaround expliqué dans l'erratasheet) en mesurant le résultat du CAN en mettant une entrée à 0 et en soustrayant l'offset systématiquement à chaque mesure.

    a+
    Dernière modification par RISC ; 30/09/2014 à 00h11.

  11. #10
    Aneantisor

    Re : fréquencemetre pic18f46k80

    J'ai une bonne nouvelle,
    le pont diviseur de tension a réglé le problème.
    j'ai également ajouter un condensateur de 33nF en filtre passe bas afin de stabilisé la mesure (qui était pas mal instable au début.)
    Et la ça fonctionne merveilleusement bien.
    je n'ai plus qu'a adapter tout ça a mon CI...
    merci bien pour l'aide

  12. #11
    Aneantisor

    Re : fréquencemetre pic18f46k80

    Re bonjours,
    J'ai un nouveau soucis...
    donc maintenant j'arrive a avoir mes signaux d'entrée,
    je tien a préciser la nature de ces signaux, l'un est le régime moteur, l'autre et l'info vitesse véhicule. l'info moteur fonctionne pas trop mal.
    moteur coupé, l'info vitesse fonctionne très bien (dès 2 Hz en faisant tourné la roue a la main). mais le problème c'est que quand je démarre, l'info vitesse se retrouve complètement brouillé après un court délais de 1 seconde peut être.
    au ralenti moteur, l'info moteur est a 50/60hz, et mon signal parasité et de l'ordre de 4 a 10 fois cette fréquence et est très instable.
    j'ai essayer plusieurs configuration hardware afin de filtré le signal mais rien n'y fais, soit je perd le signal complètement (donc retour a la case départ) soit j'ai ce soucis de parasitage.
    la nouvelle configuration est en pièce jointe.
    je précise aussi que mes 2 signaux de mesure passe cote a cote dans une nappe ide longueur < 10 cm. des fois que ça pourrai venir d'un effet "transformateur".
    merci

    Pièce jointe supprimée
    Dernière modification par JPL ; 02/10/2014 à 14h53.

  13. #12
    JPL
    Responsable des forums

    Re : fréquencemetre pic18f46k80

    Les schémas et autres images doivent être postés dans un format graphique (gif, png, jpg). Merci.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  14. #13
    Aneantisor

    Re : fréquencemetre pic18f46k80

    modification de pièce jointe suite a modération :
    Images attachées Images attachées  

  15. #14
    zibuth27

    Re : fréquencemetre pic18f46k80

    hello,


    avec la structure indiquée, tu pourrais même détecter certaines anomalies:
    • patinage embrayage en dehors des moments de changements de vitesse)
    • pneu à plat (le pneu qui génère les implusions de vitesse)



    saluts

  16. #15
    Aneantisor

    Re : fréquencemetre pic18f46k80

    Alors pour le patinage je vois parfaitement comment faire, et je n'y avait pas pensé car étant mécano,
    je reconnait aussitôt un embrayage qui patine.
    Mais je retiens l'idée...
    Par contre pour le pneu a plat...je vois pas trop, j'aurai eu un capteur par roue ok, mais je n'ai pas de référence pour l'avant.
    c'est comme pour l'abs, on regarde quel roue bloque en comparant avec les autres (ou l'autre). car la probabilité que toutes les roues bloque de la même manière et toutes en même temps est très faible, même avec seulement 2 roues.
    Et si une roue bloque, on relâche la pression de la roue concerné.

    en tout cas merci pour les idées.

  17. #16
    zibuth27

    Re : fréquencemetre pic18f46k80

    hello,

    pneu à plat
    évidemment, en-dehors des phases de patinages, tu vas toujours voir le même rapport entre régime et vitesse (plutôt rotation de la roue mesure)
    si par contre la vitesse au tachymètre varie pour le même régime moteur, c'est bien que le diamètre de la roue varie = crevaison


    saluts

  18. #17
    Aneantisor

    Re : fréquencemetre pic18f46k80

    J'ai séparé la nappe en 2 pour éliminer la possibilité de l'effet "transformateur".
    sans grande surprise, aucun changement.

    J'ai repensé alors que pendant mes essai, lorsque j'envoyait un signal sur mon entrée vitesse, la mesure se passait bien, la fréquence lu correspondait a la fréquence injecté.
    c'est a dire que pour un signal de 40Hz,
    frequenceMoteur = 0, frequenceVitesse = 40Hz.
    mais lorsque j'envoyait un signal sur mon entrée moteur(et seulement sur cette entrée), la mesure était prise en compte sur les 2 entrées.
    Ma variable frequenceMoteur = 40Hz, et ma variable frequenceVitesse = 40Hz.

    Alors ma question est, Est-ce que cela peut-il venir du code ?
    Voici donc un extrait du code, j'ai seulement extrait les partis qui concerne la fonction de capture.

    periodEntree correspond a frequenceVitesse
    periodMoteur correspond a frequenceMoteur



    Code:
    void main();
    {
    T1CON = 0b00110011;                //prescaler = 1/8, Fosc/4, On
    TMR1IF = 0;
    TMR1IE = 1;
    
    CCP3CON = 0b00000110;           //réglage des module CCP : capture every rising edge.
    CCP4CON = 0b00000110;           //
    CCP4MD = CCP3MD = 0;            //activation des module CCP4 et CCP3.
    
    CCP3IF = 0;                     //initialisation des Flag.
    CCP4IF = 0;                     //
    
    CCP3IE = 1;                     //interruption sur capture : activée.
    CCP4IE = 1;                     //
    
    CCP3IP = 0;                     //réglage des priorité : priorité basse.
    CCP4IP = 0;                     //    
            
    C4TSEL = 0;                     //sélection du timer : 0 = CCPx is based off of TMR1/TMR2
    C3TSEL = 0;                     //                             1 = CCPx is based off of TMR3/TMR4.
                                           // Timer 1 .
    PIE = 1;
    GIE = 1;
    }
    
    
    void interrupt low_priority ISR_LP()       //boucle d'interruption
    {
        captureFreq();
        horloge();
    }
    
    void captureFreq()                  //Lis la fréquence sur CCPR3 et 4 et enregistre le résultat dans "périodEntree" "periodMoteur" (variables globales)
    {
        if(CCP4IF)
            {
            new0 = CCPR4;
            periodEntree = new0;
    
            for(ovfl0 ; ovfl0 > 0 ; ovfl0--)
                periodEntree += 65535;        //ajout du nombre d'overflow
    
            periodEntree -= old0;
    
            old0 = new0;
    
            CCP4IF = 0;
            ovfl0 = 0;
            }
    
    
        if(CCP3IF)
            {
            new1 = CCPR3;
            periodMoteur = new1;
    
            for(ovfl1 ; ovfl1 > 0 ; ovfl1--)
                periodMoteur += 65535;      //ajout du nombre d'overflow
    
            periodMoteur -= old1;
    
            old1 = new1;
    
            CCP3IF = 0;
            ovfl1 = 0;
            }
    
    
        if(TMR1IF)
            {
            TMR1IF = 0;
            ovfl0++;
            ovfl1++;
            if(ovfl0 > 10)
            {
                periodEntree = 0;     //si le nombre d'overflows est supérieur a 10, réinitialisation des variables overflows.
            }
            if(ovfl1 > 10)
            {
                periodMoteur = 0;
            }
            }
    }

  19. #18
    Aneantisor

    Re : fréquencemetre pic18f46k80

    mon capteur de vitesse est au niveau du pignon de sortie de boite de vitesse.
    donc je suis en liaison mécanique permanente.

    De plus, il n'est pas forcément sur que ton raisonnement fonctionne.
    Car certes si la pression du pneumatique diminue, le rayon sous charge diminue également, mais la bande de roulement ne se raccourcie pas pour autant.
    Et selon les dires d'un prof que j'ai eu en BTS, la différence de vitesse de rotation des roues ne serait donc pas significative. a moins d'avoir une crevaison franche... au quel cas on s'en rend compte de toute façon.

    des élèves se sont penché la dessus, ils s'étaient amusés a dégonfler un pneu sur une voiture et ils l'on poussé pour voir si une roue faisait plus de tour que l'autre. malheureusement je n'ai pas eu connaissance du résultat.

  20. #19
    RISC

    Re : fréquencemetre pic18f46k80

    Salut,

    Je pense qu'il y a une petite erreur dans ton calcul d'overflow...Les timers font un overflow lors du passage de FFFF à 0000, il faut donc ajouter 65536 et pas 65535.

    D'autre part une autre chose à laquelle il faut faire attention si tu utilises plusieurs interruptions et que parfois tu désactives une interruption.

    Il faut tester les flags de cette manière :
    Code:
        if(CCP4IF && CCP4IE)
    ...
        if(CCP3IF && CCP3IE)
    ...
        if(TMR1IF && TMR1IE)
    ...
    a+

  21. #20
    Aneantisor

    Re : fréquencemetre pic18f46k80

    bonjour a tous,
    J'ai du nouveau, je me suis bricolé un oscilloscope de fortune avec l'entrée audio de mon GS3.
    étant donné que c'est une entrée prévu pour un micro électret, la composante continue est stoppé, et il donc le signal est un peu plus délicat a analyser.
    N'empêche que ça m'a permis de voir que ma ligne est pas mal brouillé une fois le moteur démarré.
    voici les screens de l'oscillo.

    Si vous pouviez me dire ce que vous en pensez.
    merci
    toutes les mesure sauf celle du signal moteur sont effectué sur la sortie du signal roue.
    Images attachées Images attachées

  22. #21
    Aneantisor

    Re : fréquencemetre pic18f46k80

    J'ai enfin résolu mon problème,
    tout fonctionne parfaitement.
    Je me suis dépanné grâce a "everycircuit" (un soft android qui permet de simuler des circuit).
    et j'ai vite remarqué que mon filtre...était tout sauf un filtre, après correction, et montage d'un vrai filtre passe bas, plus de fausse interruption.
    Les mesure son parfaitement correcte et même l'affichage des rapports est ok.
    Donc le soucis était bien hardware.

    Citation Envoyé par RISC Voir le message
    Je pense qu'il y a une petite erreur dans ton calcul d'overflow...Les timers font un overflow lors du passage de FFFF à 0000, il faut donc ajouter 65536 et pas 65535.
    Bonjour RISC,
    tout d'abord merci de ta participation.
    Je n'oublierai pas ta remarque concernant le contrôle des interruptions.
    Cependant, ta remarque a propos des calcul d'overflow semble erronée.
    ça m'a trotter dans la tête alors j'ai fait un petit essai, j'ai volontairement mis la valeur 0xffff dans mon timer1 et regarder la valeur décimale qu'il me ressortait. (screen en pièce jointe)
    Et c'est bien 65535, il y a bien 65536 valeur dans 16 bit, mais il ne faut pas oublier que le 0 et la première valeur. et donc 65536 - 1.
    J'ai bon ?

    Merci a tous pour votre aide. je vais pouvoir essayer ça in situe maintenant!
    Images attachées Images attachées  

Discussions similaires

  1. fréquencemètre
    Par invite1f4fbb73 dans le forum Physique
    Réponses: 9
    Dernier message: 07/01/2019, 19h22
  2. frequencemetre ccp
    Par boch19 dans le forum Électronique
    Réponses: 6
    Dernier message: 04/03/2014, 18h25
  3. Fréquencemetre
    Par inviteec5fcc21 dans le forum Électronique
    Réponses: 6
    Dernier message: 19/04/2010, 09h49
  4. Frequencemetre
    Par invite683e0c99 dans le forum Électronique
    Réponses: 12
    Dernier message: 16/01/2009, 19h26
  5. Fréquencemètre
    Par azertylr dans le forum Électronique
    Réponses: 41
    Dernier message: 29/06/2006, 21h50
Découvrez nos comparatifs produits sur l'informatique et les technologies.