Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009
-
14 avril 2008 à 11:22
cs_jeanpierre34
Messages postés1Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention26 août 2010
-
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?
Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009 23 avril 2008 à 14:52
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....
cs_omnia
Messages postés240Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention22 mars 2009 14 avril 2008 à 12:30
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 ...
Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009 14 avril 2008 à 14:23
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 .
Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009 15 avril 2008 à 09:29
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
Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009 15 avril 2008 à 11:58
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...
Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009 16 avril 2008 à 14:35
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.
cs_omnia
Messages postés240Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention22 mars 2009 16 avril 2008 à 15:17
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 ++
cs_jeanpierre34
Messages postés1Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention26 août 2010 26 août 2010 à 10:02
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)....