Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C/C++]Acquisition d'une fréquence venant du port COM

Projet TPE

    11 janvier 2007 à 18:15:06

    Tout d'abord, salut à tous :p

    Effectivement je suis débutant, j'ai 16 ans, et en 1e Sciences de l'ingénieur cette année, et j'ai à réalisé un projet ("Travaux Personnels Encadrés")dont le thème, ayant bien sur rapport aux sciences de l'ingénieur, était libre...

    J'ai choisi de réaliser l'affichage sur un PC la vitesse du vent, pour ce je dispose d'un anémomètre dont la sortie est une fréquence proportionelle à la vitesse du vent, venant se brancher sur le port COM du pc.

    Citation : Comelec

    Le capteur de vent intégre un contact magnétique qui génére en tournant une fréquence proportionnelle à la vitesse du vent.


    Mon problème, ou plutot mon plus gros travail sera evidemment au niveau du programme c++, qui devrait lire la fréquence du port com, ensuite avec quelques calculs avoir la vitesse du vent pour enfin l'afficher.

    Bon, je le répète je suis débutant en C++, et je sais que ça peut paraitre un peu infaisable comme programme vu mon niveau, mais j'ai vraiment envie de le réaliser et quand je me lance dans quelque chose en général je m'y interresse à fond, donc je pense que c'est possible.

    Venant maintenant au coeur du problème, j'ai lus les tutoriaux de ce site et parcouru quelques autre, j'ai donc découvert les bases et eu ainsi quelques idées pour mon programme:

    tout d'abord pour la partie lecture du port com, j'attend d'avoir reçu l'anemometre commandé pour ainsi avoir la doc technique sur la fréquence de l'appareil, l'étalonage, etc...
    je me demande maintenant comment à partir des états haut / état bas fournis par le port COM , je vais pouvoir en tirer quelque chose...

    J'en suis au stade ou je recherche la théorie de mon programme, enfin si vous me comprenez, comment il va fonctionner
    Je pense qu'il va falloir calculer par exemple le temps passé à l'état bas , et pour ce je pense utliser une boucle du genre:

    tant que i=0 (avec i l'état du port)
    je compte 10ms (je croix que "delay" peux le faire? ou delay met il seulement en pause le programme)
    à ce moment la j'increment la variable: dureeEtatBas++

    cette variable que j'aurais alors en 100eme de seconde et qui m'informera du temps passé à l'état bas

    Mais je pense plutot que l'anémometre fournira des impulsions, c'est a dire des passages a l'état 1 très rapides et leur fréquence de rapidité sera proportionnelle au vent,...
    Comment pourrais-je faire alors pour calculer le nombre de fois ou i=1 ?

    je suis donc au stade de la reflexion et si des personnes pouvaient m'apporter leur experience en codage ou des conseils, e serait vraiment sympa,

    car je le répète ce n'est pas encore clair dans ma tête la façon dont je vais via le code arriver à traiter la fréquence pour en donner une vitesse du vent...

    Merci d'avance, j'espere que j'ai bien respecté les rules, mais il ne devrait pas y avoir de problèmes ;)
    • Partager sur Facebook
    • Partager sur Twitter
      11 janvier 2007 à 18:38:19

      En 2nd en MPI j'utilisais le Pascal pour faire des mesure semblable (thermometre etc...) et avec le COM aussi.
      • Partager sur Facebook
      • Partager sur Twitter
        12 janvier 2007 à 21:14:32

        merci mais il me semble que le pascal est un langage bien différent de toute façon

        et mon problème sera de traiter cette fréquence arrivant du port com

        d'ailleurs je commence donc par le debut et me demande donc comment vérifier en permanencer l'état du port com (0 ou 1)

        certainement à mettre dans une boucle toujours vraie
        j'ai cherché un peu comment "dialoguer avec le port com", il en ressort ceci:
        http://robot.campus.ec-nantes.fr/documentation/portserie/ProgrammationWorld.htm
        c'est à dire une page très complète sur le port série, mais très compliquée à comprendre pour moi, simple élève de 1ere

        je me demande aussi sur quel broche mon anemometre va evoyer les impulsions??

        aidez moi s'il vous plait
        • Partager sur Facebook
        • Partager sur Twitter
          12 janvier 2007 à 21:54:34

          Citation : sam_fra

          Effectivement je suis débutant, j'ai 16 ans, et en 1e Sciences de l'ingénieur cette année, et j'ai à réalisé un projet ("Travaux Personnels Organisés")dont


          Hum... TPE = Travaux Personnels Encadrés...

          Citation : Pas de titre

          le thème, ayant bien sur rapport aux sciences de l'ingénieur, était libre...

          J'ai choisi de réaliser l'affichage sur un PC la vitesse du vent, pour ce je dispose d'un anémomètre dont la sortie est une fréquence proportionelle à la vitesse du vent, venant se brancher sur le port COM du pc.


          Quelle drôle d'idée ! Un port COM, c'est pas du tout fait pour ça... Tu comptes de brancher sur quel circuit et pourquoi ?

          Citation : Pas de titre


          Citation : Comelec

          Le capteur de vent intégre un contact magnétique qui génére en tournant une fréquence proportionnelle à la vitesse du vent.



          Tu parles du WD01 Comelec à 32 € ?

          Quelle est la gamme de fréquence ? Quelle est la relation fréquence/vitesse ? Si c'est linéaire, les vitesses faibles vont être immesurables (période tendant vers l'infini).

          Citation : Pas de titre


          je me demande maintenant comment à partir des états haut / état bas fournis par le port COM , je vais pouvoir en tirer quelque chose...


          Moi aussi. As-tu la moindre idée de ce qu'est un port COM .

          Avant d'aller plus loin, tu dois répondre aux questions précédentes.
          Et pour la suite, garde en tête qu'un PC ,n'est pas une machine 'temps réel' et qu'il est donc hors de question d'en faire un fréquencemètre.

          Il va falloir un petit montage électronique avec une base de temps fiable qui convertisse la fréquence en une valeur numérique codée sur 8 bits, par exemple, et lisible par le port // (LPTn).

          C'est pas trivial et il faut quelques connaissances en électronique numérique et les moyens de réaliser proprement le montage.
          • Partager sur Facebook
          • Partager sur Twitter
          Music only !
            12 janvier 2007 à 22:07:08

            Attends donc d'avoir la documentation de ton anémomètre, tu auras les réponses que tu cherches.
            Il se peut très bien qu'il embarque lui-même le convertisseur et que l'interface du port COM ne soit là que pour l'interroger, auquel cas il s'agit de communication trivial sur un port série et cela dépend du système d'exploitation dont tu ne parles pas.

            • Partager sur Facebook
            • Partager sur Twitter
              12 janvier 2007 à 22:12:24

              alors oui je parle bien du WD01 à 32€ sur comelec

              Citation : -ed-


              Et pour la suite, garde en tête qu'un PC ,n'est pas une machine 'temps réel' et qu'il est donc hors de question d'en faire un fréquencemètre.



              par contre à mon avis dans mon esprit oui je voulais faire une sorte de fréquencemètre avec la fréquence sortant de l'anémomètre
              car si je ne m'abuse une fréquence est bien une suite de 0 et de 1 ... il aurait été possible de controler en permanence l'état sur la broche de réception

              je me suis peut être mal exprimé, le WD01 n'est pas vendu avec une sortie sur port Com...
              Sa sortie n'est pas précisé, mais je pense qu'il sera possible de le faire arriver sur le port com..

              alors qu'appelez vous "communication trivial" exactement?
              systeme d'exploitation: windows XP, est ce bien ça que tu voulais savoir?
              • Partager sur Facebook
              • Partager sur Twitter
                12 janvier 2007 à 22:22:28

                Citation : sam_fra

                à vrai dire -ed- m'a un peu abattu la,


                Abattu ? Pourquoi ? Je t'ai fait atterrir, c'est tout.

                J'ai trouvé ça :

                Citation : montages des revues d'electronique


                Girouette + pluie
                Electronique Magazine
                N° 31 Décembre-2001
                Page 22
                PIC 16F876
                Pluie: 6710-RN01
                Vent: 6710-WD01


                Visiblement, et comme je m'y attendais entre le capteur et le PC, il y a un montage éléctronique (ici, un PIC).
                • Partager sur Facebook
                • Partager sur Twitter
                Music only !
                  12 janvier 2007 à 22:30:28

                  oui c'est une bonne chose de m'avoir fait atterrir, merci
                  j'ai édité mon message au dessus...

                  oui j'avais fait la même recherche sur un moteur de recherche pour connaitre de la doc sur le modele WD01 mais le terme PIC ne m'évoquait rien de spécial, merci me voila de nouveau dans des recherches sur ce fameux PIC

                  le fait qu'il y ait un PIC rent il mon porjet plus viable?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 janvier 2007 à 22:45:31

                    Salut

                    Tu as plusieurs solutions, il est clair que tu ne pourras pas faire mesurer la fréquence par ton PC directement, le port COM n'est pas prévu pour ça.

                    Par contre, entre ton capteur et ton PC, il te faut une interface électronique qui enverra un nombre numérique sur le port COM de ton PC.

                    Tu peux en effet utiliser un PIC. Cependant, il faut que tu sois sûr de ce que génère ton capteur, si c'est une fréquence, ton PIC accèptera, si c'est une tension qui varie en fonction de la vitesse du vent, alors tu devras convertir cette tension en un mot numérique sur 8 bits, avant d'envoyer ce mot au PIC qui se chargera de la communication avec le PC. Dans tous les cas, il te faut un interface électronique entre ton capteur et ton PC, et tu devras programmer le PIC pour que ça fonctionne.

                    Bon courage a toi

                    A +
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 janvier 2007 à 23:18:26

                      Citation : sam_fra

                      Citation : -ed-


                      Et pour la suite, garde en tête qu'un PC ,n'est pas une machine 'temps réel' et qu'il est donc hors de question d'en faire un fréquencemètre.



                      par contre à mon avis dans mon esprit oui je voulais faire une sorte de potentiomètre avec la fréquence sortant de l'anémomètre


                      Ou la la! Tu as des notions d'électronique ? Parce que là, tu racontes un peu n'importe quoi...

                      Citation : Pas de titre


                      car si je ne m'abuse une fréquence est bien une suite de 0 et de 1 ...


                      Non. Une fréquence, c'est une grandeur physique qui s'exprime (se calcule) en fonction de la propriété particulière qu'a un signal à être cyclique.
                      Ce n'est pas 'une suite de 0 et de 1'.

                      Petits rappels pour que le choses soient claires :
                      - L'électronique, c'est l'art du traitement d'un signal électrique.
                      - Un signal électrique est une grandeur électrique (tension, courant)qui varie dans le temps
                      - Un signal cyclique est un signal possédant une durée de répétition stable à court terme.
                      - La période est la durée de répétition d'un signal cyclique. Elle est exprimée en secondes (s) dans le système ISO (MKSA)
                      - La fréquence est l'inverse de la période. Elle est exprimée en Hertz (Hz) : F = 1/T.

                      Pour réaliser un fréquencemètre, il y a deux méthodes, qui dépendent de la fréquence à mesurer. Pour les fréquences basses (qq. Hz à quelques kHz, probablement ton cas), le principe est de disposer d'une base de temps calibrée assez rapide que l'on va commander par le signal à mesurer. Pour une précision d'environ 1%, il faut que la fréquence de mesure soit >= 100 fois la fréquence à mesurer.

                      Par exemple, pour mesurer 1 kHz, il faut une horloge à 100 kHz.

                      (évidemment, le dessin est faux)

                      Horloge _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
                      Signal  _---------------_______---------------_______


                      1 - Détecter le front montant
                      2 - Mettre un compteur a zéro
                      3 - A chaque fois que le front d'horloge passe a 0, incrémenter le compteur
                      4 - Dès que le signal repasse à 1 : 4.1 Mémoriser la valeur et retour en 1.

                      La valeur est donc disponible à la mesure par le PC pendant une période de mesure.

                      Attention à ce que la valeur ait un sens, notamment pour les fréquences basses. Une modification automatique de la période de l'horloge est envisageable en cas de dépassement (fréquence trop basse : on diminue l'horloge, fréquence trop haute, on l'augmente...)

                      Citation : Pas de titre


                      je me suis peut être mal exprimé, le WD01 n'est pas vendu avec une sortie sur port Com...
                      Sa sortie n'est pas précisé, mais je pense qu'il sera possible de le faire arriver sur le port com..


                      Sur un port COM avec une prise DB-9, il y a 8 circuits dont 4 entrants (RX, DSR, RI et CD). Lequel envisages tu et pourquoi ?

                      Citation : Pas de titre


                      alors qu'appelez vous "communication trivial" exactement?


                      Jamais parlé de ça...
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Music only !
                        13 janvier 2007 à 7:30:44

                        tout d'abord excusez moi si me termes ont été inexacts, je vais essayer dd'eetre plus rigoureux...

                        pour la fréquence merci de m'avoir fait un petit recapitulatif :)

                        le terme "potentiomètre" était evidemment une erreur, en fait je voulais dire "fréquencemeètre"

                        Citation : ed


                        Sur un port COM avec une prise DB-9, il y a 8 circuits dont 4 entrants (RX, DSR, RI et CD). Lequel envisages tu et pourquoi ?


                        RxD qui est la ligne de réception des données

                        des infos sur le port com


                        • Partager sur Facebook
                        • Partager sur Twitter
                          13 janvier 2007 à 8:39:37

                          Citation : sam_fra

                          tout d'abord excusez moi si me termes ont été inexacts, je vais essayer dd'eetre plus rigoureux...

                          pour la fréquence merci de m'avoir fait un petit recapitulatif :)

                          le terme "potentiomètre" était evidemment une erreur, en fait je voulais dire "fréquencemeètre"

                          Citation : ed


                          Sur un port COM avec une prise DB-9, il y a 8 circuits dont 4 entrants (RX, DSR, RI et CD). Lequel envisages tu et pourquoi ?


                          RxD qui est la ligne de réception des données


                          Perdu. Tes chances étaient de 3/4. Dommage.

                          Un port série est raccordé en interne à un UART (Universal Asynchronous Receiver Transmitter), qui est un composant électronique dont le rôle est d'échantillonner le signal reçu et de déterminer si il reconnait une séquence de 'bits' à un rythme prédéfini appelé débit de transmission exprimé en 'bauds' (nombre d'informations par secondes). L'UART du PC étant prévu pour des transmissions 'en bande de base', 1 baud = 1 hertz. Les débits vont de 50 à 9600 bauds, voire plus selon l'UART utilisé. La plage d'accrochage est de +/-3% environ.

                          Bref, je ne vois pas comment un tel dispositif pourrait servir de fréquencemètre...

                          Par contre, en théorie (ou sur un micro-contrôleur n'ayant que ça à faire comme un PIC ou un x51), un échantillonnage 'manuel' (c'est à dire sous le contrôle d'un logiciel) d'un des autres circuits est possible si on raccorde l'anémomètre (encore faut-il que l'interface électrique soit compatible : 0 = + 5 à + 12V, 1 = 0 à -12V).

                          Le problème est d'obtenir un fréquence d'échantillonnage précise par logiciel, ce qui est quasiment impossible, vu le nombre de services et d'applications qui tournent en même temps sur un PC. De plus, l'accès aus ressources directes comme les registres de l'UART ou l'interruption horloge n'est pas faisable dans une application sous XP. Il faudrait écrire un driver, ce qui est une tâche extrêmement complexe.

                          C'est pourquoi dans toutes les applications que j'ai vu, c'est un micro-contrôleur spécialisé qui échantillonne le signal, fait la mesure de fréquence, et convertit le résultat en une valeur numérique lisible ensuite par le port COM du PC (liaison série asynchrone), parce que le micro-contrôleur dispose lui-même d'un UART.

                           ------------        ------                 ------
                          | anémomètre | ---> | PIC  |               | PC   |
                           ------------       | UART | <============>| UART |
                                               ------                 ------

                          Ca, c'est un projet qui tiens la route. Mais il faut un peu d'électronique et de la programmation PIC (faisable en C).

                          Il y a des dizaines de kits 'PIC' programmables facilement (Elektor etc., voire même Comelec) et qui disposent déjà de l'électronique nécessaire. Il faut :

                          - une entrée numérique
                          - une fonction UART.

                          Ensuite, il faut un peu de logiciel dans le PIC pour la conversion, et implémenter un mini protocole dans le genre :

                             PC         PIC
                              |  "?\n"   |
                              |--------->|
                              |  "10\n"  |
                              |<---------|

                          Il faut donc aussi une petite application sur le PC qui interroge le PIC, reçoit l'information et l'affiche proprement à l'écran...
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Music only !
                            13 janvier 2007 à 15:19:57

                            (la précision n'est pas vraiment un problème dans mon projet)


                            par contre attend corrige moi si je me trompe:

                             ------------        ------                 ------
                            | anémomètre | ---> | PIC  |               | PC   |
                             ------------       | UART | <============>| UART |
                                                 ------                 ------


                            WD01 --> PIC 16F876 (vendu avec) <--> dans tout PC disposant d'un port com, relié au port Com

                            cela convient-il?

                            Citation : -ed-


                            Pour réaliser un fréquencemètre, il y a deux méthodes, qui dépendent de la fréquence à mesurer. Pour les fréquences basses (qq. Hz à quelques kHz, probablement ton cas), le principe est de disposer d'une base de temps calibrée assez rapide que l'on va commander par le signal à mesurer. Pour une précision d'environ 1%, il faut que la fréquence de mesure soit >= 100 fois la fréquence à mesurer.

                            Par exemple, pour mesurer 1 kHz, il faut une horloge à 100 kHz.

                            (évidemment, le dessin est faux)
                            Code : Console

                            Horloge _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
                            Signal _---------------_______---------------_______


                            1 - Détecter le front montant
                            2 - Mettre un compteur a zéro
                            3 - A chaque fois que le front d'horloge passe a 0, incrémenter le compteur
                            4 - Dès que le signal repasse à 1 : 4.1 Mémoriser la valeur et retour en 1.




                            Cela serait la technique à utiliser, mais le UART du pc interrogerait en fait le PIC UART, dont je ne comprend pas bien l'utilité en fait ...?


                            pardonne moi si je dis encore des bêtises, mais il vaut mieux que j'en dise le plus possible pour ne pas les rendre concretes apres ;)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 janvier 2007 à 19:10:37

                              Citation : sam_fra

                              (la précision n'est pas vraiment un problème dans mon projet)

                              La question n'est pas là.

                              Ce qui compte c'est la démarche de conception. En tant que correcteur éventuel, (que je ne suis pas), le seul critère qui compte à mes yeux, c'est la recherche d'une solution viable, même si tu n'as pas les moyens de la rendre opérationnelle. L'important est que le dossier tienne la route. Le fréquencemètre par PC sur port COM (même sur un port d'entrée direct comme RI ou DSR), ça ne tient pas la route, c'est de la bidouille (mauvaise conception). Le µC intermédiare, c'est du solide. C'est une solution industrielle (bonne conception).

                              Tu fais de beaux schémas, des algos solides et clairs, et si tu en as le temps et les moyens, tu fais une maquette. C'est le top, mais ce n'est pas indispensable. Les algos peuvent être simulés sur PC pour prouver la faisabilité.

                              Citation : Pas de titre


                              par contre attend corrige moi si je me trompe:


                               ------------        ------                 ------
                              | anémomètre | ---> | PIC  |               | PC   |
                               ------------       | UART | <============>| UART |
                                                   ------                 ------



                              WD01 --> PIC 16F876 (vendu avec) <--> dans tout PC disposant d'un port com, relié au port Com

                              cela convient-il?


                              Sauf preuve du contraire, oui. Le boitier PIC est fourni ? Alors il ne reste plus qu'à lire la doc et à envoyer les commandes qui vont bien par me port série. C'est assez simple.

                              Citation : Pas de titre


                              Cela serait la technique à utiliser, mais le UART du pc interrogerait en fait le PIC UART, dont je ne comprend pas bien l'utilité en fait ...?


                              Visiblement, le boitier PIC assure la fonction 'fréquencemere/conversion/uart. Il n'y a plus rien à faire d'autre que de faire confiance aux gens de Comelec...

                              Citation : Pas de titre


                              pardonne moi si je dis encore des bêtises, mais il vaut mieux que j'en dise le plus possible pour ne pas les rendre concretes apres ;)


                              Tu as tout à fait raison. Si ce n'est pas clair, pose des questions.

                              Tu as quel boitier ?

                              J'ai vu le ET549, mais je ne crois pas qu'il y ait de port série...
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Music only !
                                13 janvier 2007 à 19:18:54

                                Cela conviendrait, et sur le principe, c'est ok, dans la réalité, c'est autre chose:
                                Comme l'a dit -ed-, la communication série se fait avec ces tensions: : 0 = + 5 à + 12V, 1 = 0 à -12V.
                                Or, le PIC est alimenté en 0;+5V, et l'ensemble de ces sorties ne peuvent être que de 0 ou +5V.
                                Donc, entre l'UART du PIC et l'UART du PC, il faudra ajouter un composant (type MAX232) qui se charge de convertir les données sortant du PIC en des signaux compatibles avec le port COM.
                                Il te faut une structure de ce genre:

                                |capteur|--------->|PIC+UART|<------->|Transmetteur série|<----->|PC


                                L'UART ne sert qu'a la communication PIC <===> PC, tu ne peux pas envoyer d'ordre a ton PIC via ton PC sans ce système, et vice versa.
                                Par exemple, tu devras appuyer sur "M" pour que le PIC te renvoie ta fréquence, le code de "M" sera envoyé au PIC via l'UART et le PIC, si il a bien comprit l'ordre, te retournera la valeur de ta fréquence par le même moyen que tu pourras alors traiter avec un programme sur ton PC.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  14 janvier 2007 à 9:19:46

                                  Pour le moment je n'ai rien commandé sur comelec,

                                  je compte justement le faire aujourd'hui si c'est possible et si je suis sur que je fais "le bon choix", enfin au moins les composants que je suis sur de vouloir prendre

                                  il me faut donc,
                                  _un capteur de vent , tel le WD01 qui est à un prix raisonnable, et qui intègre un PIC 16F876 ?? (je ne suis pas sur de ça, je crois plutot que le magazine electronique avaot utilisé un PIC 16F876 pour réaliser son montage...,?)
                                  _donc, s'il n'intègre pas de PIC, il faut en acheter un également, et qui convienne à l'utilisation que je veux en faire, c'est à dire:

                                  Citation : -ed-

                                  un micro-contrôleur spécialisé qui échantillonne le signal, fait la mesure de fréquence, et convertit le résultat en une valeur numérique lisible ensuite par le port COM du PC (liaison série asynchrone), parce que le micro-contrôleur dispose lui-même d'un UART.


                                  (Ici j'ai trouvé par exemple celui utilisé dans le magazine )
                                  mais ce ne doit pas être évident de programmer un pic justement?

                                  _et une carte max232?

                                  alors si j'ai bien compris à la sortie du "pic uart" du capteur on ne peut avoir que 0V;+5V
                                  alors que pour le port série:
                                  0 = +5V à + 12V
                                  1 = 0 à -12V
                                  tel que c'est la ce n'est donc pas "compatible, c'est pourquoi j'ai besoin d'une carte max232
                                  qui permet de mettre les tensions du pic uart dans la même "configuration" que peut les lire le port série.

                                  _________________

                                  Citation : -ed-

                                  Tu as quel boitier ?

                                  J'ai vu le ET549, mais je ne crois pas qu'il y ait de port série...


                                  non, non je n'ai rien, mais ce boitier est déjà "tout fait", ne présente pas un grand intêret je pense?
                                  et effectiveent il dispose de son propre afficheur et je ne pense pas qu'il gère le port com


                                  merci sincérement à ceux qui m'aident, me donnent des conseils, etc...

                                  ________________

                                  donc la meilleure chose à faire, c'est que je commande d'abord le capteur vent sur comelec WD01
                                  j'attend de le recevoir avec la doc qui va avec, pour voir ce qu'il comporte exactement...
                                  ensuite j'avise...
                                  des objections?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    14 janvier 2007 à 11:43:09

                                    C'est bien ça.

                                    Le MAX232 est juste un composant qui met en forme le signal pour le port COM du PC.

                                    Et oui, attends de recevoir ton capteur, une fois la doc reçue, ça te permettra de savoir quel type de signal il sort, et quel est la fréquence maximale de ce signal, ça te permettra de trouver les bons composants pour la suite du traitement.

                                    (Je ne pense pas que le PIC ou un microcontrolleur quelconque soit intégré au capteur, mais en même temps, je n'en sais rien).

                                    Donc voila, attends de recevoir ton capteur, et redis nous quoi si tu as des doutes dessus.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      14 janvier 2007 à 17:39:14

                                      Si j'ai bien comprit dans tout sa:
                                      un drôle de type veut crée un programme qui puisse lire sur le port série.
                                      Sur ce port série sera relier une carte electronique qui enverra des impulsions electronique numérique "compatible" avec le port COM(port série).Et sur cette carte electronique sera relier un appareil qui mesure la vitesse du vent.

                                      Donc en gros sa donne ça:

                                      l'appareil
                                      c'est une sorte de girouètte qui tourne plus ou moin vite,selon la vitesse a la quelle elle tourne elle laisse circuler plus ou moin d'intensité sous forme de courant alternatif.Cette intensité va être interprêté par la carte qui va envoyer vers le port série des impultion électrique de courant continue avec une tension et une intensité adapté(en gros du binaires).Ce port va être lu par un programme qui ce situe sur le PC.Et ce programme va afficher le resultat à l'ecran.


                                      mon dessin:

                                      l'espece de girouette fait 1 rotation par minute et donc transmet 5Volt et 0.1Ampere sur 5Amperes possible en courant alternatif

                                      >

                                      la carte interprête en ce réferant a une sorte de base de donnée qui dit un truc du genre "si tu reçois telle intensité envoie telle impultion au port série" ceci est transmit en courant continu avec une tension et intensité adapté de manière a ne pas griller le port COM, par exemple: 1Volt 0.001Ampere .a partir de là,la carte pour passez les information va jouer avec "envoyer du courant/ne rien envoyer (0,1)" qui vont être considéré par le PC comme des données...
                                      Donc la carte va jouer le rôle d'alim a découpage sa veut dire qu'elle va adapter le type/A/V du courant et en plus va jouer sur ce courant de manière a crée une chaine de bit par exemple: 00000001.

                                      >

                                      port serie (port série joue un rôle de "bus") va les acheminé jusqu'a processeur...

                                      >

                                      0000 0001 et ces données binaire s'achemine jusqu'au programme qui est enfaîte une succesion de chiffres binaires calculer par le processeur et qui agit sur l'ordinateur grâce au processeur qui leur donne "vie"

                                      C'est ça?

                                      PS: les valeurs des differents courants dans mon exemple sont fausse heinn.. :-°

                                      ooofff :'(
                                      je connait déja un peu l'informatique...
                                      j'aimerai tant connaitre un peu plus l'electrique et l'électronique...
                                      par exemple savoir des truc comme ça:
                                      pourquoi on ne peut pas faire 500 volt et 1 ampère en courant continu ou alternatif.... et inversement...
                                      savoir quesque fait une resistance de tant e ohm dans un circuit...
                                      non parceque là c'est hilarant là!! on nous apprendre à calculer des intensité en ampere, des difference de potentiel en volt, la résistance de quelque chose en ohm, mais par contre on ne sais pas faire le lien entre ces trois :lol::lol:
                                      je veut dire par là...

                                      on ne sais pas dire combien d'intensité en ampere et de volt enlèvera une resitance de 100ohm dans un circuit en série dont le générateur est une pile qui cause une difference de potentiel d'1.5 volt...
                                      on ne sera jamais dire aussi combien d'ampère produit le généteur :S...
                                      et que si on rajoutait une led dans le circuit on ne sera pas dire combien d'intensité faudrait lui mettre dans la tête pour qu'elle produise tant de lumen et combien d'intensité absorbe telle et donc qu'elle est sa resistance en ohm et combien de volt absorbe telle aussi...

                                      et tout un tas d'autre choses...
                                      etc..
                                      Alors meme si c'est pas trop le sujet si vous pouviez me dire pourquoi,
                                      je serai le plus heureux que ce monde n'est jamais porté.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 janvier 2007 à 18:48:05

                                        Charly 90, tu as tout faux.

                                        Les électroniciens (comme moi) savent te dire tout ça. En fait, tout dépend des composants que tu as, de ton alim a l'entrée, et du cahier des charges.

                                        Avec ta pile de 1.5V et ta résistance en série, tu auras une tension aux bornes de la résistance de 1.5V, un courant de 15mA circulant dans le circuit.

                                        Pour ta LED, c'est pareil, si tu veux qu'elle brille avec telle intensité, tu regarde sa doc technique, et tu joues sur le courant qui la traverse, tu sauras alors quelle résistance tu dois mettre pour obtenir ce que tu veux.

                                        ça t'éclaire un peu? (sans jeu de mots)
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          14 janvier 2007 à 19:00:32

                                          Citation : charly 90

                                          Si j'ai bien comprit dans tout sa:
                                          un drôle de type veut crée un programme qui puisse lire sur le port série.
                                          Sur ce port série sera relier une carte electronique qui enverra des impulsions electronique numérique "compatible" avec le port COM(port série).Et sur cette carte electronique sera relier un appareil qui mesure la vitesse du vent.


                                          En gros, c'est ça.

                                          Citation : Pas de titre


                                          Donc en gros sa donne ça:

                                          l'appareil
                                          c'est une sorte de girouètte qui tourne plus ou moin vite,selon la vitesse a la quelle elle tourne elle laisse circuler plus ou moin d'intensité sous forme de courant alternatif.Cette intensité va être interprêté par la carte qui va envoyer vers le port série des impultion électrique de courant continue avec une tension et une intensité adapté(en gros du binaires).Ce port va être lu par un programme qui ce situe sur le PC.Et ce programme va afficher le resultat à l'ecran.


                                          En gros, c'est ça.

                                          Citation : Pas de titre

                                          mon dessin:


                                          Quel dessin ?

                                          Citation : Pas de titre


                                          l'espece de girouette fait 1 rotation par minute et donc transmet 5Volt et 0.1Ampere sur 5Amperes possible en courant alternatif


                                          T'en sais des choses ! Ca fait partie de ce qu'on ne sait pas pour le moment.

                                          Si ça se trouve, ça dépend l'anémomètre et il va falloir étalonner le bazar...

                                          Citation : Pas de titre


                                          la carte interprête en ce réferant a une sorte de base de donnée


                                          Un tableau ou un calcul fera l'affaire. MySQL pour PIC, je le sens mal...

                                          Citation : Pas de titre


                                          qui dit un truc du genre "si tu reçois telle intensité envoie telle impultion au port série"


                                          Sauf que n'est pas une 'intensité', mais un signal dont la fréquence varie en fonction de la vitesse (on dit un 'tachymètre'). On transforme la vitesse en une valeur numérique que l'on transmet ensuite sur le port série sous la forme d'un message texte en ASCII, par exemple, c'est ce qu'il y a de plus portable.

                                          L'électronique, c'est comme le reste, ça ne s'invente pas, ça s'apprend...

                                          Peut être tu ne sais pas ce qu'est une liaison série ? C'est un peu la base des télécoms...

                                          Les télécoms, c'est comme le reste, (tu connais le refrain...)

                                          Citation : Pas de titre


                                          ceci est transmit en courant continu avec une tension et intensité adapté de manière a ne pas griller le port COM, par exemple: 1Volt 0.001Ampere .



                                          Disons que sur les cartes électroniques, les signaux logiques sont généralement 0/5V, alors que sur une liason série c'est plutôt +12/-12V, alors il faut bien adapter, d'où le circuit d'interface... On est loin du C...

                                          Citation : Pas de titre


                                          a partir de là,la carte pour passez les information va jouer avec "envoyer du courant/ne rien envoyer (0,1)" qui vont être considéré par le PC comme des données...


                                          Oui, une liaison série, c'est une succession de bits ayay tous une signification.

                                          En asynchrone :
                                          • repos : état 1
                                          • start : état 0
                                          • data : 5 à 8 bits selon la configuration
                                          • parité : état 0 ou 1 (0 à 1 bit selon la config)
                                          • stop : état 1 (0 à 2 bits selon la config)

                                          Citation : Pas de titre


                                          Donc la carte va jouer le rôle d'alim a découpage sa veut dire qu'elle va adapter le type/A/V du courant et en plus va jouer sur ce courant de manière a crée une chaine de bit par exemple: 00000001.


                                          Délire total...

                                          Citation : Pas de titre

                                          port serie (port série joue un rôle de "bus") va les acheminé jusqu'a processeur...


                                          de bus 1 bit, si tu veux... C'est un tuyau de données, c'est tout.

                                          Citation : Pas de titre


                                          0000 0001 et ces données binaire s'achemine jusqu'au programme qui est enfaîte une succesion de chiffres binaires calculer par le processeur et qui agit sur l'ordinateur grâce au processeur qui leur donne "vie"


                                          C'est beau !

                                          Citation : Pas de titre


                                          par exemple savoir des truc comme ça:
                                          pourquoi on ne peut pas faire 500 volt et 1 ampère en courant continu ou alternatif.... et inversement...

                                          Je ne vois pas ce qui empêche. 500V * 1A : 500W. Bof...

                                          Par contre 500 V en continu, c'est très dangereux (tétanisation, on ne peut pas lâcher). Le continu, c'est dangereux à cause de ça à partir de 100 V, voir moins si c'est mouillé. L'alternatif à 50/60 Hz, ça secoue, mais ça 'vibre'. Le muscle ne reste pas contracté (faut pas exagérer non plus, le courant léthale est de 10 mA dans un bonhomme, c'est vite fait...)

                                          Citation : Pas de titre


                                          savoir quesque fait une resistance de tant e ohm dans un circuit...
                                          non parceque là c'est hilarant là!! on nous apprendre à calculer des intensité en ampere, des difference de potentiel en volt, la résistance de quelque chose en ohm, mais par contre on ne sais pas faire le lien entre ces trois :lol::lol:


                                          o_O Tu es en quelle classe ?

                                          La base de la base : la loi d'Ohm : U = R x I

                                          Citation : Pas de titre

                                          on ne sais pas dire combien d'intensité en ampere et de volt enlèvera une


                                          Déjà, une intensité, c'est en ampère. Les volts, c'est pour la tension (différence de potentiel).

                                          resitance de 100ohm dans un circuit en série dont le générateur est une pile qui cause une difference de potentiel d'1.5 volt...

                                          Circuit série, donc la loi d'Ohm s'applique directement (le courant est le même partout) :

                                          I = U/R = 1.5 / 100 = 0.015 A soit 15 mA.

                                          Citation : Pas de titre


                                          on ne sera jamais dire aussi combien d'ampère produit le généteur :S...
                                          et que si on rajoutait une led dans le circuit on ne sera pas dire combien d'intensité faudrait lui mettre dans la tête pour qu'elle produise tant de lumen et combien d'intensité absorbe telle et donc qu'elle est sa resistance en ohm et combien de volt absorbe telle aussi...


                                          Une LED, c'est une diode. C'est pas linéaire, c'est pas comme une résistance. en gros, il y a un abaque (une courbe quoi...) dans la doc de la LED qui donne la puissance lumineuse en fonction du courant. On se débrouille ensuite pour faire passer le courant qui va bien, sachant que la tension perdue aux bornes de la LED varie peu (environ 1.5V quelque soit le courant 'raisonnable', soit 5 à 20 mA)'. Ca dépend aussi de la couleur. Pour les bleus (jamais utilisé, désolé, l'électronique ça remonte aux années 80/90 pour moi...), c'est d'autres valeurs...

                                          Nota : il y a un tas de sites sur le Web qui expliquent les bases de l'électronique...

                                          Un coup de Google, et hop :

                                          http://led.linear1.org/1led.wiz

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Music only !
                                            15 janvier 2007 à 15:35:07

                                            J'ai eu aujourd'hui deux heures de TPE,

                                            et j'ai discuté avec mon prof d'éléc du projet, pour lui il un micro-controleur, ce n'est pas du niveau de 1ere, et ça compliquerai beaucoup les choses,

                                            il nous a conseillé d'utiliser le port parallèle,
                                            car on peut avec C/C++ lire l'état d'une des borches de data

                                            il nous faudrait détecter les fronts montants, calculer le temps s'ecoulant entre deux fronts montant, donc la période, on aurait ainsi la fréquence et donc la vitesse (proportionnelle à celle ci)


                                            pour lui cela semble tout à fait viable,
                                            qu'en pensez vous,
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              15 janvier 2007 à 16:34:25

                                              C'est en effet une autre solution, et sur la question du micro controleur, je suis d'accord avec ton prof:
                                              il te faudrait d'abord le cabler comme il faut, avec tout les composants de l'interface, ensuite le programmer ce qui impliquerait l'emploi d'un programmateur, bref, beaucoup de temps perdu pour pas grand chose.

                                              Donc le port parallèle est une solution, et là, pas besoin de composants de mise en forme du signal, les entrées sorties du port sont compatibles 0;+5V (a moins que ça n'ai changé en un an de temps, aussi, vérifies bien avant de brancher l'anémomètre dessus).

                                              L'avantage de cette méthode, c'est que tu n'as plus besoin d'interface électronique, ou alors juste quelques résistances de tirages, ce qui te fera gagner beaucoup de temps, le traitement se fera entièrement de façon logiciel.

                                              Voila mon avi sur la question, maintenant, tu fais comme tu le sens.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                15 janvier 2007 à 16:44:54

                                                merci pour les expliquations ! -ed-! :D
                                                PS: je sais ce que c'est une liaison série:
                                                c'est une liaison dont les données sont transmisent bit à bit.(les une après les autres)

                                                "la loi d'Ohm : U = R x I "
                                                o_Oo_Oo_O j'ui en seconde (lycée technique)
                                                je vu sa des milliard de fois... j'ai travailler dessus des centaine de fois...
                                                et je pensais que sa servait a que-d'alle :o:o
                                                ben alors en gros si j'ai bien comprit la loi d'ohm sa nous permet
                                                de connaitre tout (ou presque) sur notre courant :waw::waw:
                                                comment connaitre la tension qu'il y a aux borne d'un composant?
                                                faciiile: Tension (volt) = resistance (ohm) x intensité (ampère)
                                                comment connaitre l'intensité qui traverse se composant?
                                                faciiile: intensité (ampère) = tension (volt) : résistance (ohm)
                                                comment connaitre la résistance d'un composant ou d'une piste?
                                                faciiile: résistance (ohm) = tension(volt) : intensité (ampère)

                                                maintenant pour trouvé la tension du courant si on n'a pas la résistance en ohm...
                                                lire sur la pile :lol:
                                                et l'intensité alors comment la connaitre? :o:euh:
                                                (sans mesure physique)
                                                Combien d'ampère produit une pile d'1.5V? :o

                                                après pour le courant alternatif sa doit être:
                                                plus la frequence est elever plus la tension et l'intensité l'est...
                                                non? :)

                                                et le watt sa ne serait pas pour déterminer la qualité du courant? sa puissance?
                                                et puis si j'ai bien comprit...
                                                un courant continu de 500V et de 1 ampere
                                                c'est la meme chose qu'un courant de 500 ampere et de 1 volt
                                                puisque dans les 2 cas:
                                                500 V * 1A = 500 Watt
                                                500 A * 1V = 500 Watt
                                                :D c'est ça?

                                                après pour n'importe quelle type de courant:
                                                dans un circuit série la tension diminue en passant d'un composant a un autre.
                                                c'est ça?

                                                dans un circuit serie l'intensité est la même partout mais diminue partout aussi.
                                                c'est ça?

                                                dans un circuit en derivation la tension est la même partout.
                                                c'est ça?

                                                dans un circuit en derivation l'intensité par contre se divise a chaque noeud.
                                                c'est ça?

                                                et..

                                                Citation : cita


                                                Avec ta pile de 1.5V et ta résistance en série, tu auras une tension aux bornes de la résistance de 1.5V, un courant de 15mA circulant dans le circuit.


                                                donc avec une pile de 100V(imaginons un peu ^^ ) j'aurai 100V au borne de ma resistance et un courant de 1A dans le circuit.
                                                c'est ça?
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  15 janvier 2007 à 17:07:55

                                                  Oui , reste maintenant à savoir comment lire le port parallèle via C/C++

                                                  il me semble que je suis sur le bon forum :)


                                                  bon j'entreprend des recherches sur des sites tels code source etc, pour savoir comment lire l'état (d'une broche) du port parallèle
                                                  00000 000|0|
                                                  1111 111|1|
                                                  en ne prenant en compte que la derniere borche de data, 0 ou 1

                                                  et sinon oui je confirme, pour le port parallèle
                                                  état 0: 0 à 0.7V
                                                  état 1: 2.4 à 5V

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    15 janvier 2007 à 17:13:45

                                                    Bon eh ben bon courage.

                                                    Pour ce genre de renseignement, déjà, essayes d'avoir la doc technique du port, ça peut t'aider, ensuite, demande a tes profs pour le programme, ils seront capables de t'aiguiller sur la bonne voie.

                                                    Voila
                                                    A+

                                                    PS: Ceci peut t'aider section III
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      15 janvier 2007 à 17:33:21

                                                      Merci,

                                                      je m'étais également retrouvé sur ce lien en cherchant les états du port en fonction de la tension,

                                                      Citation : infos sur le port parallele

                                                      Lire sur le port d'état de l'imprimante :
                                                      En C :
                                                      valeur = inportb(379h); // retourne la valeur du port
                                                      En C++ :
                                                      valeur = _inp(379h);



                                                      à premiere vue, le C me suffirait,
                                                      il faudrait controler "en permanence" l'état du port
                                                      lorsqu'il passe à 1, renvoyer la durée de la période ( depuis la derniere fois qu'il est passé à 1)
                                                      ensuite je calcule Fréquence = 1/Période
                                                      et voilou?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        15 janvier 2007 à 17:44:34

                                                        ouai

                                                        F = 1/T
                                                        par contre pour mesurer l'écart entre un '1' et un autre '1', je sais pas trop comment tu peux faire, peut être avec la librairie time.h, mais là, je m'avance en terrain miné.

                                                        Une fois que tu as ta fréquence, tu pourras déterminer la vitesse du vent (via la doc du capteur)

                                                        EDIT: Tu connais time.h certainement mieu que moi, mais j'ai trouvé cette page qui décrit toutes les fonctions de time.h, dont une qui devrait t'être très utile: Calculer le délai entre 2 instants.

                                                        Bon courage!
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          15 janvier 2007 à 18:12:45

                                                          Citation : sam_fra

                                                          il nous a conseillé d'utiliser le port parallèle,
                                                          car on peut avec C/C++ lire l'état d'une des borches de data

                                                          il nous faudrait détecter les fronts montants, calculer le temps s'ecoulant entre deux fronts montant, donc la période, on aurait ainsi la fréquence et donc la vitesse (proportionnelle à celle ci)

                                                          pour lui cela semble tout à fait viable,
                                                          qu'en pensez vous,


                                                          Même problème. Un PC n'est pas un fréquencemètre. Il a 3000 choses à faire en même temps et les temps ne sont pas garantis. La mesure sera fausse, à moins d'utiliser un PC sous DOS pur qui ne fait rien d'autre, et encore...
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Music only !

                                                          [C/C++]Acquisition d'une fréquence venant du port COM

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown