Longueur max/comment gérer la longueur des cables (data)

Bonjour,

Je suis sur un projet avec une sonde comportant des capteurs (arducam 2M, lidar, stepper, servo moteur, led) destinée a aller dans un forage, faire une acquisition et la remonter. Du coup je vais me retrouver avec une certaine longueur entre mon arduino, et ma sonde (10m couvrirait 90% des cas de figure, 20m serait idéal).
Je joins un schéma qui montre comment j'envisage l'installation globale

pour ce qui est de l'alimentation, ya des formules pour estimer la perte, donc ça, c'est pas un souci. Mais pour ce qui est des données ... je sais pas trop.
Dans mes recherches j'ai lu que plus on était bas en baudrate plus on pouvait aller loin. Pour le lidar je peux etre assez bas, ça ne demande pas une grosse bande passante, mais pour la camera ... le sketch fourni par arducam c'est au moins 115200, voir 921600...

Du coup est ce qu'avec un tel débit je peux envisager 10-12m de cable sans probleme ?
Si ça pose probleme, quelle solution envisager ?
Dans mes recherche j'ai vu des truc comme RS422, RS485, qui semblent permettent d'atteindre de grande longueur de cable... mais j'avoue ne pas avoir trop compris comment ça fonctionne :confused:
Est qu'on peut l'intégrer dans un tel montage ? Faut il envisager de passer l'arduino dans la sonde ?

Merci

Le transport de signaux numériques fait appel à des notions d'électronique analogique, c'est là sa difficulté.

Sur des longues distances le signal bien rectangulaire à l'émission commence à voir les temps de montée qui s'allongent transformant le rectangle pour commencer en trapèze puis en patate informe.
La largeur du signal augmente ce qui fait qu'un 1 va empiéter sur le 0 et vice versa rendant la distinction impossible
C'est ce qu'on appelle l'interférence inter-symbole.

La solution la plus simple est d'allonger le temps du bit élémentaire et donc de baisser la fréquence.

L'autre solution si on ne veut pas passer en bas débit est d'utiliser des liaisons prévues pour, et je dirai que le RS485 (EIA 485) est le mieux adapté.

Je ne connais le RS485 que théoriquement. Néanmoins, le fait que le RS485 utilise des signaux différentiels est un très bon point. Il faut aussi bien choisir les bons type de câble.

À l'émission on envoie des signaux identiques, mais en opposition de phase.
À la réception on fait la différence des deux signaux.

  • pour le signal utile : moins par moins font plus, le signal est doublé
  • pour le bruit récolté sur les 20 m de longueur : plus par moins font moins. Cela correspond à soustraire et à quasiment annuler le bruit.

Attention la RS485 ne spécifie aucun protocole de communication on peut mettre ce que l'on veut y compris celui de la classique liaison série.

Quel que soit le canal de transmission choisi tu devras te renseigner sur les performances raisonnablement atteignables, voir Wikipédia comme porte d'entrée de la documentation.

Il devrait exister des "répéteurs" RS485 pour régénérer le signal sur des longues distances.
Je n'ai pas de référence.

2 Likes

ok, merci pour l'explication, je comprends mieux le probleme maintenant :slight_smile:
Du coup je vais pousser un peu les recherches sur le rs485.

j'ai fait quelques recherches sur le RS485 ... et dans les tuto que je trouve c'est surtout pour faire communiquer 2 arduino entre eux , du coup y a un slave, un master, et du code spécifique ... mais pas d'exemple entre un arduino et un pc.
Ici, moi je verrais bien l'arduino dans la sonde, et je le commande et récupere les données en surface sur le pc en envoyant et écoutant le serial port.
Du ça limiterait les le nombre de conducteurs nécessaire dans le cable (ce qui ferait des économies ^^).
La question que je me pose ... c'est : est ce que c'est aussi simple que de mettre un module comme ça sur l'arduino et quelque chose qui converti le rs485 vers usb, comme ça, sur le pc

ça me parait beaucoup trop simple... mais je me dis que c'est a peut pret la meme chose avec un adaptateur fttl 232-usb pour l'arduino pro mini

Juste pour dire que j'ai fait le montage dont je parlais dans le post précédent :
pc - adaptateur usb/rs485 -(A B) - module rs485- (RT TX) arduino
j'ai lancé les exemples de la librairie cmdmessenger, et ça semble bien communiquer.
Je fais des tests plus poussés ce week end.

Le rs485 ou EIA485 ou TIA485 est un cas particulier du LVDS (acronyme de Low Voltage Differential Signaling).
Une recherche sur LVDS donne de nombreuses explications sur les avantages de la liaison différentielle et sur la façon de la mettre en œuvre.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.