-
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....
-
je sais qu'il faut utiliser un dll et on m'a passer le inpout32.dll mais je ne sais pas quoi faire....
-
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.
-
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+
-
merci beaucoup! je t'envoie un e-mail pour essyer de mieux t'expliquer.
-
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... :wink:
[edit]
Trop tard... ça m'apprendra à aller manger entre la rédaction de deux phrases...
Sinon, relis les règles de ce forum
-
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.
-
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 +
-
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........
-
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+