IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

RS232 oscilloscope


Sujet :

API, COM et SDKs Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 27
    Points
    27
    Par défaut RS232 oscilloscope
    Voila je suis en train de realiser mon stage. Je dois realiser un programme sur delphi 3 mais je ne connais absolument rien. Grace a un oscillloscope j'ai pu voir ke le TD du sr232 envoyé un courant de -12V et lorsque j'appuie sur une touche il y a un pulse de +12V.
    J'aimerais creer un programme qui fasse sortir du TD +5Volt et lorsque j'appuie sur une touche cela passe a 0volt (un pulse) puis revient a 5V.
    En gros j'aimerais inverser la sortie de donné et l'attenuer.
    Merci d'avance a ceux qui pourront maider a progresser et je prie pour quelques aides car je galere grave....

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    je sais qu'il faut utiliser un dll et on m'a passer le inpout32.dll mais je ne sais pas quoi faire....

  3. #3
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Bonjour,

    merci de lire nos règles et de modifier ton titre rapidement.
    Pas d'urgent, sos, a l'aide dans les tîtres ou dans les posts.

  4. #4
    Membre confirmé
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Points : 647
    Points
    647
    Par défaut RS232
    Bonsoir.

    Douououououcement.

    15 ans de robotique de laboratoire, alors je peux répondre.
    Une interface RS232 répond à un standard. Le RS232 est un système de
    transmission de données séries part un signal électrique. Ce signal est ce
    qu'on appelle un signal en tension (je simplifis). Le standard RS232 répond
    à un norme. Il est le résultat d'une conversion d'un état binaire (0 ou 1).
    La plage de tension électrique est de +10 et -10 volts à +15 et -15 volts
    pour les états 0 et 1. En aucun cas ce signal peut prendre une tension de
    5 volts, car l'électronique de la carte de transmission ne le permet pas
    puisque cette tension est en dehors de la plage normalisée.

    De plus, la sortie TD de l'interface RS232 est conçue pour transmetre des
    séquences de données. Donc, pas question de programmer une tension
    stable sur la sortie TD sauf à l'état bas.

    Pour générer du plus 5 volts, il te faut utiliser une autre sortie (pas
    besoin de inpout32.dll) et diviser la tension, avec en plus une diode pour
    éviter la tension négative. J'ai déja ça fait depuis longtemps.

    Laisse moi un peu de temps pour retrouver mes archives, et je peux
    t'envoyer schéma électrique et code de programation avec le composant
    TcomPort + Exemple.
    Peux tu expliquer très clairement ton besoin et sommairement ton projet
    de stage ? Tu peux m'écrire directement sur ma messagerie (en bas de
    page).

    Bonne nuit et courage.

    A+
    Rien n'est moins sur que l'incertain : Pierre DAC

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    merci beaucoup! je t'envoie un e-mail pour essyer de mieux t'expliquer.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 207
    Points : 188
    Points
    188
    Par défaut
    Je sais pas ce que veux dire TD, mais pour ce qui est de l'utilisation des DLL, il y a plein de bons tuto sur le web, notamment sur ce site.

    Pour ce qui de l'utilisation de cette DLL en particulier, il y a des aussi des tutos. Utilise Google avec (par exemple) :" InpOut32.dll" AND "Delphi"

    J'ai par exemple trouvé cela :
    http://sheepdogguides.com/dt4j.htm

    Par contre, pour ce qui est de convertir un -12/0V en +5/0V, je ne suis pas sûr que tu puisses y arriver par programmation, sauf si ton programme 'attaque' un CNA/CAN. Pour ce genre, j'utiliserais plutôt un ampli-op. Mais enfin, on apprend toujours quelque chose à se compliquer la vie...

    [edit]
    Trop tard... ça m'apprendra à aller manger entre la rédaction de deux phrases...

    Sinon, relis les règles de ce forum

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    le TD ou TXD c'est la broche du port serie qui envoie une donnée. les trois principales sont TD (pour transmettre),RD(recevoir) et la masse.

    En fait jai relié (en soudant certaine broche d'une prise pour port serie a des broches de l'appareil...en gros) un appareil de mesure (luminencemetre) a l'ordinateur qui reçoit et affiche la valeur mesurée. Dans l'appareil de mesure il y a un trigger. Si celui si est alimenter par 5 volt alors l'appareil ne prend pas de mesure. SI par contre le trigger descend a zero volt (env.1s) alors l'appareil prend une mesure.

    j'ai tout d'abord relié un fil entre le trigger de l'appareil et un generateur de 5 volt et egalement un bouton. (Les autres fils "utile" de l'appareil sont toujours relié au PC). Tout fonctionne donc tres bien car le trigger est alimenté de 5v dc pas de prise de mesure et quand je presse le bouton alors le trigger descend a 0volt et une mesure est affiché par le pC.

    Maintenant plutot que d'avoir a appuyer sur ce bouton je voudrait le faire directement sur le PC. En effet le port serie a une broche TransmitData(pin2) capable d'envoyer un courant. En appuyant sur n'importe quelle touche le courant change. Cela aurait parfait (voir trop facile..) si le port serie envoyer 5 volt et quand jappuie sur une touche envoie un pulse qui fait descendre le courant a 0 volt.Mais en fait le port serie envoie -12 volt et quand j'appuie passe a +12 volt.
    Je dois donc creer un programme qui change cela.

  8. #8
    Membre confirmé
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Points : 647
    Points
    647
    Par défaut Patientes
    Je t'ai déja écrit que j'ai déja fait ce genre de montage.

    Juste le temps de retrouver mes archives et de faire un courrier cohérent.
    Patiente un peu. Dans la semaine prochaine au plus tard. Schémas
    électrique + Code et exemple. pas besoin de inpoutport.Dll, ce serait
    compliquer les choses. Le composant TcomPort est parfait pour ça.

    A +
    Rien n'est moins sur que l'incertain : Pierre DAC

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    Voila j'ai du nouveau, en fait je veux forcer le DTR a passer a l'etat logique 1 lorsque j'appuie sur button puis redescend a 0.
    l'ingenieur me dit de le faire avec inpout32.dll
    j'ai donc ecris pour forcer le dtr a 1 :

    implementation

    function Inp32(wAddr: word): byte; stdcall; external 'inpout32.dll';
    function Out32(wAddr: word; bOut: byte): byte; stdcall; external 'inpout32.dll';

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    begin

    Out32($3F8+4,$0);


    end;

    mais l'oscilloscope me montre que le dtr reste a -12Volt et ne remonte pas........

  10. #10
    Membre confirmé
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Points : 647
    Points
    647
    Par défaut RS232
    Bonjour.

    Ingénieur ou pas, il suffit d'utiliser les APIs WINDOWS pour piloter le
    port RS232 d'une façon très simple.

    Dans ton exemple, encore faut il connaitre l'adresse du port de
    communication que tu veux piloter.

    Je t'envois un programme (DELPHI 5) avec le DFM en mode texte au
    cas ou il ne serait pas compatible. Tu peux piloter le DTR, le RTS et le
    BREAK. Tu as la possibilité de piloter 8 ports.

    Je joint aussi deux schémas electriques pour réduire la tension de sortie
    en toute sécurité pour l'interface RS232.

    A+
    Rien n'est moins sur que l'incertain : Pierre DAC

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2009, 15h01
  2. lecture/ecriture des broches RTS/CTS du port RS232
    Par .:: sly51 ::. dans le forum C
    Réponses: 3
    Dernier message: 24/10/2006, 15h28
  3. Réponses: 8
    Dernier message: 29/09/2003, 15h33
  4. [TP] port série rs232
    Par cyb33 dans le forum Turbo Pascal
    Réponses: 44
    Dernier message: 13/01/2003, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo