Commande de port série [Résolu]

Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 14 avril 2008 à 11:22 - Dernière réponse : cs_jeanpierre34 1 Messages postés lundi 20 novembre 2006Date d'inscription 26 août 2010 Dernière intervention
- 26 août 2010 à 10:02
Bonjour, tout d'abord excusez-moi si ma question a déjà été traitée quelque part, j'ai vu qu'il existait quelques topics sur le port série mais je n'ai pas trouvé ce dont j'avais besoin. J'espère donc que ma question va être correcte, tant dans le fond que dans la forme.

Voila mon problème :

J'ai fait un petit programme de temporisation qui servirait à commander une électrovanne automatiquement, le programme est une fenêtre réalisée en MFC via Visual C++ 6.0.  Mon problème est le suivant : je ne sais pas comment envoyer quelque chose du port série jusqu'à mon électrovanne. J'ai mis un relais entre les 2 afin d'avoir une tension suffisante sur mon électrovanne (24 V en l'occurence). La tension minimale pour déclencher mon relais doit être aux alentours de 5V. Déjà, le PC est il capable d'envoyer ça sur le relais et ensuite, comment faire? 

Merci beaucoup pour vos futures réponses.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 23 avril 2008 à 14:52
3
Merci
Bon bah c'est bon j'ai fini toute la partie électronique et commande du port série, me reste plus qu'un (gros) problème de programmation et le projet sera terminé. J'explique vite fait ce que j'ai fait :

J'ai utilisé ce montage tout d'abord :
http://forums.futura-sciences.com/po...9.html#1389389  (montage 1 de la réponse #6) avec R=1k, le transistor un 2N2222 ou 2N2219, et la diode une 1N4004, à la place du relais une électrovanne. Les bornes A1 et A2 de l'électrovanne sur le transistor et sur le 24V (peu importe l'ordre) et la masse reliée à toutes les autres masses.

Pour la commande, c'est le port série : à la masse le fil de masse (5 pour DB9, 7 pour DB25) et l'autre fil sur le fil DTR du COM (4 pour DB9 et 20 pour DB25).

Voilà pour la partie électronique.

Maintenant, la partie code de mise à 0 ou mise à 1 de DTR :
C'était pas si compliqué en fait, il suffisait de savoir où chercher :

Mise à 1 DTR :
<hr size="2" width="100%" />PurgeComm(g_hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_TXABORT|PURGE_RXABORT);
    EscapeCommFunction(g_hCOM, SETDTR);
<hr size="2" width="100%" />Mise à 0 DTR :
<hr size="2" width="100%" />EscapeCommFunction(g_hCOM, CLRDTR);
 PurgeComm(g_hCOM, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
<hr size="2" width="100%" />
Pour ma part, j'ai mis juste ces 2 lignes dans des fonctions appelées ouvrir et fermerelectrovanne ou un truc du genre que j'appelle quand j'en ai besoin. Voilà mon boitier serait surement fini si j'avais pas ce problème de thread ignoble pour ouvrir ma fenêtre et faire tourner ma boucle ne même temps.

Voila tout, j'espère que ça pourra servir à quelqu'un un jour....

++ et bonne continuation à tous.

Merci Taurnil 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de Taurnil
cs_omnia 240 Messages postés jeudi 9 janvier 2003Date d'inscription 22 mars 2009 Dernière intervention - 14 avril 2008 à 12:30
0
Merci
salut,

Les signaux qui
circulent sur les deux fils de données du port série sont à
la norme V24 (liaison RS232, en simplifiant : en réalité, V24
est une norme électrique, RS232 un protocole).

En pratique, un des deux niveaux logiques sera traduit par une tension comprise
entre +3 et +25V par rapport à la masse, tandis que l'autre niveau logique
sera traduit par une tension comprise entre -3 et -25V par rapport à
la masse.

Sur un portable, on a des tensions positives proches des niveaux TTL (0V et
5V), avec une tension de l'ordre de 5 à 6 V (positive pour un niveau,
négative pour l'autre).

je crois me rappelé que depuis XP c'est devenu plus compliké d'écrire sur un port série, mais avant j'utilisait des fonction de type fport / rport ...

ciao
Commenter la réponse de cs_omnia
Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 14 avril 2008 à 14:23
0
Merci
Ok merci beaucoup Omnia, donc si j'ai bien compris, en envoyant une tension positive sur un de mes fils, le relais va se déclencher, ouvrant par la même l'électrovanne. Je vais chercher à quoi correspondent les fonctions que tu m'a indiqué (fport, rport) et je vais chercher un peu de ce coté la. Si quelqu'un peut encore m'aider, n'hésitez pas .
Commenter la réponse de Taurnil
cs_omnia 240 Messages postés jeudi 9 janvier 2003Date d'inscription 22 mars 2009 Dernière intervention - 14 avril 2008 à 14:42
Commenter la réponse de cs_omnia
Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 14 avril 2008 à 15:41
0
Merci
Merci bien, je vais regarder un peu ça, je dirais si j'y suis arrivé grâce à ce code. A bientôt à tous.
Commenter la réponse de Taurnil
Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 15 avril 2008 à 09:29
0
Merci
Salut, c'est encore moi. J'ai regardé du coté des fonctions dont tu m'avais parlé Omnia (fport), à vrai dire les quelques premières pages google sur ses fonctions sont un peu obscures pour moi. Par contre, le lien que tu m'a donné vers le code source marche plutôt bien mais j'ai quelques questions :

- Le pc sur lequel je travaille a plusieurs ports COM (celui du pc -COM1- et deux autres d'une PCI -COM3&4-), comment on fait pour savoir sur lequel je suis branché?

-Dans la console que j'ai récuperé (le .exe qu'on peut dl un peu plus bas sur la meme page), on me demande ce que je veux envoyer. Moi, je veux juste ouvrir mon électrovanne alors je dois envoyer juste "1" ou il y a quelque chose de précis à envoyer?

Si quelqu'un arrive à répondre à une de ces questions, je lui en serais (vraiment très) reconnaissant.

PS : je galère à ouvrir mon électrovanne avec une alim stab, c'en est une de chez Crouzet, si quelqu'un peut me dire ou il faut envoyer les 24V ce serait gentil
Commenter la réponse de Taurnil
Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 15 avril 2008 à 11:58
0
Merci
Euh désolé, je sais que ça fait un peu flood mais je préfère dire au fur et à mesure ce que je fais :

J'ai fait des tests avec un voltmètre pour voir ce qui sortait du port série, j'ai donc utilisé l'exe dont omnia m'avait parlé et j'ai envoyé un peu n'importe quoi à travers mon port série. Déjà, sans rien envoyer j'ai -11V entre les broches 3 et 5. Ensuite, dès que j'envoie une série de 1 (j'ai pas compté ni traduit en décimal), la tensio mesurée est de -6V environ. Avec d'autres données, j'ai encore des tensions différentes. Si quelqu'un pouvait m'expliquer en gros ce qui se passe, ca serait (vraiment très) gentil, parce que la je galère quelque peu...
Commenter la réponse de Taurnil
cs_omnia 240 Messages postés jeudi 9 janvier 2003Date d'inscription 22 mars 2009 Dernière intervention - 16 avril 2008 à 12:49
0
Merci
si tu as des problèmes de tension en -x  tu n'as qu'a tester d'inverser les poles + et - ?
Commenter la réponse de cs_omnia
Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 16 avril 2008 à 14:35
0
Merci
Merci Omnia d'avoir réagi à mon mp. Pour la tension, il n'y a pas que parce qu'elle est négative que ca me gêne, c'est surtout que je ne sais pas quoi envoyer : une série de 1 ou autre chose. En faisant plein de tests, j'ai vu que c'était quand j'envoyais 255 octets que j'avais la plus grosse réponse (variation de 5V) l'affichage du multimètre passe de -11 a -6V. Je sais pas non plus pourquoi...

Le problème est qu'il faudrait que j'envoie uniquement 5V sur le fil de mon port série : tension qui fera se déclencher l'électrovanne.

Un autre problème : quand j'envoie cette série de données (les 255 "1"), la variation de tension est assez ponctuelle, et moi il faudrait que j'arrive à garder constante cette tension pour garder ouverte mon électrovanne. En bref au secours, je vais continuer à tester le programme avec le pc pour voir si j'arrive pas à avoir mon 0-5V. Si je peux pas je ferais un réglage d'offset suivi d'un ampli. De toute façon à mon avis je peux tout essayer.

Ah et aussi, j'essaie de tester la réception de données, en fait j'envoie une tension sur mon fil de réception (broche n°2) et je regarde ce que le pc me dit, c'est parfois 0 octets reçus, parfois 1. Et je sais pas jusque combien je peux envoyer au pc. Pour l'instant j'ai pas osé aller au dessus de 5V. Quelqu'un pourrait me dire jusque combien on peut envoyer?

Encore un grand merci à ceux qui prendront la peine et le temps pour répondre.
Commenter la réponse de Taurnil
cs_omnia 240 Messages postés jeudi 9 janvier 2003Date d'inscription 22 mars 2009 Dernière intervention - 16 avril 2008 à 15:17
0
Merci
essai de chercher de la documentation sur les ports série RS232

je n'ai pas plus d'informations , a l'époque il y a bien 10 ans j'avais fait d ela dev sur port série un lecteur de carte mais la partie é"criture/lecture était programmé en ASM sa venait des boukin borland je crois voila ++
Commenter la réponse de cs_omnia
Taurnil 48 Messages postés vendredi 8 décembre 2000Date d'inscription 2 juillet 2009 Dernière intervention - 16 avril 2008 à 16:33
0
Merci
Ok bah merci beaucoup Omnia pour le temps que t'as passé à m'aider.

Si quelqu'un d'autre peut répondre à mes dernières questions, qu'il n'hésite pas.
Merci beaucoup d'avance.
Commenter la réponse de Taurnil
cs_jeanpierre34 1 Messages postés lundi 20 novembre 2006Date d'inscription 26 août 2010 Dernière intervention - 26 août 2010 à 10:02
0
Merci
Vous souhaitez prendre le controle de votre arrosage à distance depuis votre bureau, à la maison, dans la rue avec votre Iphone... Il y a une solution avec la Grenouille WG2009. C'est un cyber programmateur d'arrosage doté d'un serveur web intégré dédié à la gestion de l'arrosage. 8 zones, 4 cycles de démarrage, 32 séquences avec paramètres totalement indépendant pour chaque séquence (zone, durée, jours hebdo), économie d'eau réglable sur l'ensemble des séquences, entrée pluviomètre, commande de pompe par contact sec (relais), alarmes par email (smtp), mise à l'heure auto (sntp)....
Commenter la réponse de cs_jeanpierre34

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.