mesure d'un état haut en langage C
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

mesure d'un état haut en langage C



  1. #1
    inviteabda2572

    Red face mesure d'un état haut en langage C


    ------

    J'ai un problème avec la création d'un programme en C. Je dois envoyer une impulsion de 10µs toutes les 60ms (ce qui est déjà fait) et au bout de cette impulsion j'ai un signal écho qui varie selon la position d'un obstacle devant mon capteur. Plus il est l'obstacle est loin plus le signal écho est long. Mon problème est qu'il faudrait que je trouve un programme me permettant de déclencher une capture de ce signal écho lors du niveau haut le plus court possible. On m'a dit qu'il fallait que j'utilise des timers et des interruptions mais je n'arrive pas à comprendre le fonctionnement... Si quelqu'un pouvait m'aider je lui en serais très reconnaissante.

    -----

  2. #2
    Jack
    Modérateur

    Re : mesure d'un état haut en langage C

    Le minimum pour avoir une réponse précise est de spécifier le microcontrôleur utilisé. Sinon, si on se place dans le cas général le principe est simple: on lance le timer en même temps que l'impulsion et on compte le temps que met cette impulsion pour revenir. En fonction du temps et de la température, on en déduit la distance de l'obstacle.

    A+

  3. #3
    inviteabda2572

    Re : mesure d'un état haut en langage C

    Je suis censée utiliser un microcontrôleur 16F876A mais je comprend pas comment je dois le paramétrer au niveau de la résolution du timer et des interruptions...

  4. #4
    inviteb9f49292

    Re : mesure d'un état haut en langage C

    en lisant la doc peut-être?

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : mesure d'un état haut en langage C

    Citation Envoyé par poups29 Voir le message
    Je suis censée utiliser un microcontrôleur 16F876A mais je comprend pas comment je dois le paramétrer au niveau de la résolution du timer et des interruptions...
    C'est donc de la configuration d'un microcontrôleur.
    Avant d'ouvrir une discussion dans un forum, il est de rigueur d'en consulter les règles, notamment les post-it en haut de page.
    Dans le forum info programmation, on trouve ceci:
    http://forums.futura-sciences.com/programmation-langages-algorithmique/441632-regles-participatives-nouveau-forum.html

    Je déplace en conséquence

  7. #6
    inviteabda2572

    Re : mesure d'un état haut en langage C

    C'est un projet BTS deuxième année. Ce projet concerne un bowling, je dois savoir sur quelle latte d'une piste passe exactement la boule. Je dois ainsi placé un système à ultrason sur le bord de la piste (ce système est déjà programmé et marche très bien) mon but est ensuite de pouvoir mesurer l'état haut le plus précisément possible et ça je n'y arrive pas vraiment. Je comprend le principe mais je n'arrive pas à le mettre en forme sous logiciel... J'utilise le logiciel PIC C Compiler je pense avoir au moins réussi à paramétrer mon pic avec les docs que j'ai pus trouver. Il me reste maintenant à savoir comment programmer tout ceci et là ....

  8. #7
    invite89303051

    Re : mesure d'un état haut en langage C

    Bonjour
    Regardes la page 67 du datasheet, paragraphe 8.1 Capture Mode.
    tu mets le timer à zero, tu lances l'impulsion et démarre le timer.
    Sur réception de l'écho, tu lis le timer...

    Cordialement

  9. #8
    Jack
    Modérateur

    Re : mesure d'un état haut en langage C

    Pour cela, il n'y a qu'une solution pour t'en sortir toute seule: consulter la doc du PIC et en particulier la section consacrée au timer. Les registres doivent être configurés de manière à correspondre à ta problématique. Comme je ne suis pas familier avec cette famille de µcontrôleurs, je te laisse entre les mains des spécialistes de ce forum qui ne devraient pas tarder à se manifester.

    Je te recommande néanmoins de dégrossir le sujet en consultant la doc.

    A+

  10. #9
    inviteabda2572

    Re : mesure d'un état haut en langage C

    J'ai bien consulté la doc et j'ai réussi à bien paramétrer le µc mais je n'arrive pas à mettre en forme le programme afin de réussir à mesurer l'état haut et de l'afficher sur un afficheur LCD... Mon programme doit être extrêmement précis car chaque latte de la piste de bowling fait 27mm et je dois savoir exactement sur quelle latte passe la boule... je dois ainsi placé une barrière infrarouge à 5cm de mon capteur afin de lancer mon programme lorsque la boule passe cette barrière.

  11. #10
    Jack
    Modérateur

    Re : mesure d'un état haut en langage C

    Mon programme doit être extrêmement précis car chaque latte de la piste de bowling fait 27mm et je dois savoir exactement sur quelle latte passe la boule...
    La programme n'est pas l'élément essentiel au niveau de la précision de la mesure: la précision commence avec la gestion du timer, qui n'est finalement qu'un simple compteur. Il s'agit bien d'un problème d'électronique numérique.

    Le principe est de donner un top départ lorsque le faisceau est coupé, ce qui va déclencher l'envoi d'une salve de l'émetteur US. Le compteur devra être arrêté à la réception de la salve. Connaissant la période de comptage, il suffit de multiplier cette période par le nombre contenu dans le compteur et tu auras la durée mise par la salve pour aller de l'émetteur au récepteur. La distance se déduit facilement.
    Concernant la résolution du système, plus la période de comptage est petite, meilleure sera la résolution.
    Pour plus de précision, il faudrait tenir compte de la température car la vitesse de propagation d'une onde sonore dépend de la température.

    A+

  12. #11
    Jack
    Modérateur

    Re : mesure d'un état haut en langage C

    Il faudra aussi sûrement tenir compte d'un temps de latence avant que le système ait détecté le retour de la salve. Ce temps devrait être relativement constant. D'une manière générale, on met un PLL pour détecter cette salve. A toi de faire des test pour déterminer ce temps de latence.

    A+

  13. #12
    inviteabda2572

    Re : mesure d'un état haut en langage C

    ça m'aide beaucoup, On suppose que la salle sera à 25°C. Mais qu'est ce qu'une salve ? =S

  14. #13
    Jack
    Modérateur

    Re : mesure d'un état haut en langage C

    Mais qu'est ce qu'une salve ?
    Une suite de périodes limitée dans le temps émises par l'émetteur US, le temps de permettre à la PLL de les détecter.

Discussions similaires

  1. Etat haut sur un RESET ucontroleur ?
    Par invitef819317f dans le forum Électronique
    Réponses: 8
    Dernier message: 21/05/2011, 16h43
  2. Question sur les états haut, état bas
    Par invite7403a6e1 dans le forum Électronique
    Réponses: 7
    Dernier message: 09/09/2009, 11h40
  3. Bascule etat haut
    Par invite82197248 dans le forum Électronique
    Réponses: 3
    Dernier message: 21/10/2008, 14h05
  4. Réponses: 0
    Dernier message: 20/04/2008, 21h55
  5. mesure etat bas
    Par invite4109377f dans le forum Électronique
    Réponses: 1
    Dernier message: 21/04/2006, 15h44
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...