Transfert données câble série RS232

Bonjour à tous,

Etudiante en BTS Informatique, nous travaillons avec mon groupe sur un projet d'ascenseur connecté. Pour ce faire, nous avons besoin de communiquer entre Arduino et notre application C++ (sur un autre PC) avec un câble série RS232.

L'application fonctionne (nous l'avons testée), cependant, nos données venant d'Arduino ne s'envoient pas correctement.

Voici ce que nous avons réalisé :

  • Nous avons branché le port 5 du câble RS232 sur le GND Arduino, le port 2 sur le RX (réception de données) et le port 3 sur TX (transmission de données).

  • Nous souhaitons envoyer "e1" à notre application, et avons essayé Serial.print et Serial.write, et le moniteur série reçoit bien "e1".

  • Cependant, l'application C++ ne reçoit pas la donnée : alors, nous avons testé avec Hercules 3-2-8, et nous recevons une astérix *

  • Nous avons essayé d'envoyer d'autres données en BIN, DEC, OCT, HEX, qui s'affichent correctement sur le moniteur série, cependant, Hercules et l'application C++ ne reçoivent jamais le(s) bon(s) caractère(s).

Après nos recherches, nous ne trouvons pas d'informations supplémentaires qui nous aident pour notre problème : nous avons essayer de modifier le câblage, en vain.

Quelqu'un saurait-il d'où notre problème pourrait venir ? Du câblage ? Du code ? Aussi, sauriez-vous quel type de données envoie Arduino et quel type attend Hercules ? Nous pensons que notre problème se trouve dans la conversion des données.

Merci de votre aide !

Bonne journée,

Lucie

A ton niveau il n'y a sans doute pas de confusion sur les niveaux électriques mais autant lever le doute. Quels signaux envoie tu sur le microcontrôleur ?

Est_ce une RS232 totale, c'est à dire protocole + couche physique ? En liaison avec un PC ce pourrait être le cas s'il n'y a pas d'étage intermédiaire genre Max232.

Attention par un gros abus de langage quand on lit RS232 la pluspart du temps les gens pensent au protocole de transmission RS232 mais avec des signaux d'amplitude 0/+5V.

Le protocole "RS232" tout le monde le connait, la couche physique peut être traumatisante si appliquée telle qu'elle sur un microcontroleur 5V. Signaux "RS232" amplitude max comprise entre -18V et + 18V.

NB : sans code placé entre balise code (voir les messages épinglés) les spécialistes auront du mal à t'aider.

Merci pour votre réponse,

Nous envoyons un signal digital avec les ports tx et rx de notre Arduino (UNO, j'avais oublié de préciser). Nous avons utilisé un câble que nous avons coupé, et nous avons branché 3 des fils sur notre Arduino : sur tx, rx et le GND.

D'accord, merci pour ces informations. Notre professeur nous a dit que nous devons envoyer un signal de 3V dans notre câble.

Aussi, nous avons vu qu'il faut un adaptateur RS232 - TTL afin de réaliser notre liaison et que nous ne pouvions pas brancher directement notre câble sur notre carte Arduino comme nous le pensions.

Pensez-vous que cela pourra résoudre notre problème de conversion ?

Voici un exemple de composant que nous avons trouvé : http://www.microbot.it/documents/mr002-001.2_datasheet.pdf

Merci pour votre aide !

Bonsoir Un composant de ce type (cette référence ou une autre équivalente) est indispensable Souhaitons que la connection directe d'un niveau RS232 ( 12V fréquement, mais ça peut monter à 25V) sur l'entrée RX de l'Arduino n'ait pas détruit celle çi. Il faut ramener la tension à 5V ou 3,3V selon les modèles de cartes Arduino. Le montage réalise en plus une indispensable inversion du signal.

avec un câble série RS232

. Bonjour, boule de crystal dis-moi, qu'y a-t-il de l'autre côté de ce câble ? un port série ou un port usb mal configuré ?

adaptateur RS232 - TTL

Grrrrrrrrr
Je vais encore sauter au plafond !
Après le n’importe quoi dans l’usage du nom RS232 maintenant voila la TTL !
Malheureusement de confiance tu ne fais que répéter des utilisations impropres de termes pourtant bien précis.
La responsabilité de ceux qui mélangent tout par paresse est grande parce que EUX savent quand c’est juste ou faux et malheureusement on voit de nombreux débutants tomber dans les pièges. Grrrrrrrrrrrr.

C’est un ENORME abus de langage que d’affubler le terme TTL à des signaux 5V.
TTL c’est une norme logique (publiée tes parents n’étaient pas encore nés ou étaient encore au biberon) qui entre autre chose impose une alim 5 V mais surtout des niveaux logiques incompatibles avec la logique actuelle (CMOS).

En plus si le prof a dit qu’il faut un signal de 3V dans le câble surtout pas de TTL !

Les 3 V dans le câble c’est bien gentil comme information mais c’est dans quel sens ?
PC vers carte UNO ou carte Uno vers quelque chose qui va dans le PC ?
Je suis surpris parce que la carte Uno fonctionne avec des signaux 5V.

Peut-être que tu ne dis pas tout ?

Je pense qu’il est urgent que tu prenne un papier et un crayon et que tu définisse les niveaux tout au long de ta chaîne de communication.
Wikipédia, Qwant ou gogole seront utiles.

Sans oublier de vérifier que le matériel est toujours fonctionnel après ces premières manips.

Bonjour,

Merci pour vos réponses, nous allons donc commander le composant. Le câble série relie Arduino UNO à un PC, sur lequel il y a Hercules 3-2-8.

Tesla Member, ne nous blâmez pas, peut-être que nous n'utilisons pas les bons termes, mais, ce sont tels quels que nous les avons appris et dans nos recherches nous avons retrouvé ces termes...

Sur le site sur lequel nous commandons, le convertisseur dont nous avons besoin s'appelle "TTL-RS232".

Nous allons faire la manipulation avec le convertisseur et je vous tiens au courant du résultat. Nous devrions le recevoir la semaine prochaine.

Bonne journée

Tesla Member, ne nous blâmez pas, peut-être que nous n'utilisons pas les bons termes, mais, ce sont tels quels que nous les avons appris et dans nos recherches nous avons retrouvé ces termes...

Je ne blâme aucunement puisque j'ai précisé :

Malheureusement de confiance tu ne fais que répéter des utilisations impropres de termes pourtant bien précis.

Et je ne suis pas Tesla Member mais un vieux soixante-huitard, de toute façon ils sont tous vieux maintenant :grin:

Je met en garde contre des erreurs de langage, d'autant plus difficiles à déceler quand on débute qu'elles sont faites par des personnes qui semblent être des pros qui, dans le meilleur des cas, savent parfaitement quand c'est juste ou quand c'est "grossièrement approximé".

Le RS232 est un cas d'école. La norme RS232 contenait un protocole et une couche physique. C'était une erreur grossière et maintenant la partie protocole et la partie physique sont séparées en normes indépendantes. La couche physique RS232 est devenue rare, elle a été souvent remplacée par l'USB (sauf dans ton cas) le protocole subsiste et est toujours employé. La plus part du temps avec des signaux 0V/+5V, de plus en plus 0V/+3,3V et bientôt 0V/+2,5V. On parle aussi pour le protocole RS232 de liaison "série", mais c'est encore faux. Il n'y a plus que des liaisons série : USB, I2C, SPI, OneWire, CAN, etc...... Cherche à trouver la signification de ces sigles, la lettre S correspond à "Serial".

Donc oui dur, dur quand on débute de s'y retrouver dans ce maquis.

Je ne parle même pas des sites de vente en ligne où là c'est absolument du n'importe quoi. Deux exemples au hasard : - Avec les traductions automatiques on trouve que les microcontrôleur d'architecture 32 bits ARM se transforment en "bras" ! - J'ai vu un module contenant un régulateur de tension présenté comme un convertisseur de tension !

S'il y a une chose à retenir : ne croit rien sur parole, cherche à comprendre et [u]vérifie toujours[/u].

Bonjour

J’abonde dans le sens de 68tjs

L’utilisation d’une terminologie très ‘relâchée’ amène a relier ensemble des appareils incompatibles…Phénomène amplifié par des sites marchands poussant à l’absurde l’utilisation du vocabulaire.

Pour ‘RS232’ et ‘TTL’ la lecture des pages de WIkipedia donne une bonne base avec entre autres les définitions des plages de tensions représentant les niveaux logiques '0" et “1”

  • En BTS Informatique vous n’avez pas accès à un CDI foté d’un rayon de livres sérieux ?
    L’information immédiatement accessible (sites marchands) est rarement de bonne qualité , elle présente souvent mal les produits vendus.

Bonjour,

Merci pour vos explications, même Wikipédia c'est un peu compliqué pour s'y retrouver à notre niveau, mais nous allons approfondir nos recherches ! :)

Non, malheureusement le CDI de l'établissement est du côté du lycée général dans un bâtiment à part et est très pauvre :confused:

Bonne journée !

Bonjour, j'ai reçu mon convertisseur RS232-TTL (https://www.gotronic.fr/art-convertisseur-rs232-ttl-mr212-25744.htm) et ma liaison fonctionne !

Merci pour votre aide,

Bonne journée.