Identification d'une ligne entre 2 micro-controleurs

Bonjour à tous,

Je suis nouveau sur ce forum et nouveau dans l'électronique. J'ai pas mal bidouillé sur Tinkercad, ce qui m'a permis d'apprendre les bases de la base mais cela reste limité.
J'ai fouillé un peu partout sur internet pour trouver une réponse à ma question mais en vain.

Voici donc la problématique:

J'ai besoin d'envoyer des signaux différents sur des fils différents à l'aide d'un microcontrôleur afin de pouvoir l'identifier sur un deuxième microcontrôleur. Ce deuxième microcontrôleur pourra donc me dire de quel fil il s'agit. Je peux avoir un fil en plus (pour le GND commun par ex ou une horloge , de la comm,...) mais l'idéal serait d'en utiliser qu'un.

Exemple :
Je branche Arduino1 sur les fils 1,2,3,4 et 5. Il envoi un signale A sur 1, B sur 2, ect ect.
Je branche maintenant Arduino 2 sur le fil 3 (distance inconnue), il lit le signale et indique dans un écran 7 segment le numéro du fil.

J'ai pensé utiliser : (vous me direz si je me suis trompé)

  • sortie digitale : soit 0 ou 1 donc impossible de faire différents signaux
  • toujours sortie digitale : créer un signal RS232. Réussi sur l'émetteur mais pas réussi à le lire sur le récepteur. Code complexe et synchronisation difficile sachant que les 2 microcontrôleurs sont indépendants.
  • sortie analogique : le fil peut avoir une résistance non négligeable (installation complète) et donc utiliser la tension est trop aléatoire
  • utiliser des fréquences différentes sur chaque fil : pas réussi
  • utiliser le sérial : ok mais une seule sortie sur les nombreuses nécessaires
  • générateur de fréquence indépendant : ca en fait beaucoup
  • utiliser un shif register (type : 74hc595) : compliqué pour un novice comme moi
  • utiliser un multiplexeur ( type : 74LS257) : pas encore étudié la question

Je ne sais pas trop comment aborder le sujet et la plupart des essais ont échoués.
Je cherche encore du coté de l'UART mais je débute à peine l'apprentissage.
Le nombre de fils à identifier pourrait augmenter à 22 au max je pense.

Si quelque chose vous saute au yeux, cela m'aiderai vraiment.
Je tiens à préciser que je ne suis pas coincé sur un Arduino et qu'à terme ce sera surement une PCB.

Merci à vous
J'espère avoir été le plus clair possible.

VitoScall

Bonjour,

Ce serait quoi le but de ton montage? La façon dont tu nous exposes ton problème est plutôt vague....

Bonjour et soit le bienvenu sur ce forum.

J'avoue que pour moi, ce n'est pas clair du tout.

Prenons le cas le +complet, c'est à dire 22 fils.

Est ce que ton intention est de retrouver le tenant et l'aboutissant de chaque fils de maniére automatique?

Pourquoi te faut-il, si j'ai bien compris, un signal différents par fil?

Je ne comprend pas et je ne crois pas être le seul, dis nous en plus si tu veut plus de réponse.

Bonjour,

Si je comprend bien, vous voulez installer une carte Arduino a une extrémité d'un câble a conducteur 22 max.
Et une seconde carte a l'autre extrémité du même câble.

Puis, la première carte envoie un signal différent sur chaque fil du cable, et avec la seconde carte vous toucher l'un des conducteurs et elle affiche le n⁰ du fil sur lequel elle est raccordé.

S'est bien ça ?

Si s'est ça, je dirait que le plus simple serait d'envoyer une impulsion de 10ms depuis la première carte sur le fil n⁰1, une impulsion de 20ms sur le fil n⁰2 et ainsi de suite.
Puis la seconde carte lis la durée de l'impression et en déduit le nº du fil sur laquelle elle est raccordé.
Mais pour ça il faut que les cartes aient une masse commune (GND).

S'est sûrement pas la technique la plus académique, mais elle n'est pas très difficile à mettre en œuvre, et sa devrait marcher sans trop de problème...

Par chance, s'il y a 1 fil Vert/jaune ou 1 blindage, ça permettrait d'identifier facilement un conducteur pour relier les GND.

Sinon, on peut essayé, j'ai bien dit essayer, avec la "Terre" (je sens que je vais le faire incendier!)

Avec 22 conducteur, il y a peut de chance qu'il y ait une terre, mais par contre il y moyen d'utiliser le blindage si s'est un câble signal blindé.

Bonjour vitoscall61
Mon raisonnement est parti dans la même direction que @guillaume_lrt, sauf que je mettrai une fréquence différente sur chaque fil, de telle façon que, à l'autre bout, on puisse connaître immédiatement sur quel fil on a mis le tâteur, avec la fonction Arduino pulsin()

Oui, indispensable. Si le câble a du blindage, ça peut servir.
Quelle est la distance maximum entre les Arduino?
Est ce que le résultat de la mesure doit rester sur le récepteur du câble ou doit être reporté sur l'Arduino émetteur?

Autre option, pour économiser les pin à l'émetteur, utiliser 2 multiplexeurs/démultiplexeurs 74HC4067 (pour 22 fils) monté en démultiplexeur et envoyer les fréquences sur SIG, fréquences générées par tone()

A+
Cordialement
jpbbricole

Bonjour guillaume_lrt

"A l'époque", pour un autre projet du même genre, j'ai utilisé la terre du réseau électrique, ça fonctionne bien.
Par contre, du point de vue de la sécurité, je ne connais pas les normes.

Cordialement
jpbbricole

:wink:des fois, dans les câble signaux, il y a 1 fil Vert/Jaune, j'ai souvent vu ça dans les gros câble multi conducteurs

Dans certaines circonstances trés banales et avec un usage normal, la "TERRE" arrive (sans qu'on le sache?) sur le GND de l'Arduino.

Ce n'est donc pas illicite de l'utiliser comme telle.

Je mesure la résitance entre les blindages de 2 câbles USB branchés sur 2 PC différents sachant que sur Arduino (notamment UNO), ce blindage est relié au GND de la carte

Quand l'un des PC est débranché, j'obtiens l'infini entre les 2 blindage des 2 câbles USB

Quand les 2 PC sont branchés, j'obtiens quasi 0 Ohms entre les 2 blindages des 2 câbles USB qui sortent chaqu'un d'un PC différent.

Donc les blindages des 2 câbles différents sont reliés entre eux, cela se fait par la TERRE qui sur mes 2 PC portables est reliée au 0V de mes prises USB sur mes 2 PC aux normes (non trafiqués)

Et sans doute que pour compenser les pertes en lignes dans la connection de la terre, il faudrait convertir les signaux transportés en 12 ou 24V et à l'arrivée, par un opto coupleur ou npn, les re convertir en 5V.

Quelque chose comme

Normalement les fils dans un câble sont repérés par la couleur.
Dans les "pas si vieux que cela" câbles cuivre pour le téléphone, il y avait jusqu'à 448 paires soit 896 de fils.
Avec le code international des couleurs pour ces câbles il était très simple d'identifier visuellement un fil particulier.

Le style de l'exposé du sujet ressemble beaucoup au style des sujets de bac STI2D ou S-SI.
Le corps du sujet me rappelle un sujet de test de fil qui revient cycliquement.
La période de l'année correspond.

Est-ce le total hasard ?
Ai-je de mauvaises pensées ?
Si c'est le cas je m'en excuse,

Mais si j'ai bien détecté, il sera préférable de le dire immédiatement, nous aiderons de toute façon, mais pas de la même façon. Un examen se respecte.

/Bonsoir,

Il y a les câbles des télécoms, chers @68tjs ,

Et il y a aussi les câbles dits de "contrôles ou commandes" chers aux automaticiens ou fabricants de machines diverses.

Comme celui là:



Câble de 25 conducteurs de 0.5mm² dont 1 fil Vert/Jaune.

Fils noirs numérotés,

Code commande RS: 827-4319

Bonsoir à tous,

Avant tout, merci à tous pour vos réponses, la réputation des communautés de Maker est bien fondée et c'est vraiment top :ok_hand:

Je vais essayer de répondre à tout le monde :

@68tjs :
Non ce n'est pas un sujet de TP ou d'exam :rofl: . J'ai passé mon CAP d'électricien (Domestique et petit tertiaire) cet été et je suis maintenant électricien à mon compte dans l'Orne.
Durant cette formation, j'ai pris de l'avance et j'ai bossé avec les BTS électrotech, et un problème est apparu un jour, une armoire indus... foutoir... avec aucun repérage. Et je me suis lancé dans un projet fou (au vu de mon niveau) dans la création d'un appareil qui permettrai de tester les fils pour faire du repérage. Mais évidement j'ai voulu pousser le truc pour étendre, la portée (ne pas me limiter à l'enveloppe de l'armoire) et rendre ca un peu plus "automatique" qu'un test à l'ohmmètre.

@axelmaux :
J'avais un doute, mais plus maintenant : ce n''était pas clair :rofl:

Je reprend tout avec ce schéma

Nous avons donc d'un coté du système, un bornier (le haut de la bread) avec X entrées (ici 4 lignes à identifier, et une 1 qui est commune dans tout le système - pratique pour le GND des deux cartes).
Dans ce systèmes les fils ont une longueur inconnue (plusieurs dizaines de mètres) et peuvent être repiqués comme le jaune sur des borniers, des Wago et que sait-je. C'est la zone "d'ombre".
On pourrai voir ca comme une installation domestique avec un neutre commun si vous voulez et tester des sorties comme des prises, des ampoules, des appareils, ect...

Le récepteur se branche sur le fil commun et sur le fil que l'on veut identifier, lit le signale, le traduit et l'inscrit sur l'afficheur 7 segments (pour l'instant cette parti n'est pas importante).

Dans l'idée, l'émetteur envoie un signal différent en boucle sur chaque ligne (sauf le fil du GND commun).

J'espère être plus clair, sinon n'hésitez pas à me le dire (c'est clair dans ma tête mais pas en dehors :grinning_face_with_smiling_eyes: )

à jpbbricole à guillaume_lrt à jef59 (oui j'ai explosé le cota de citation ^^)

Si je vous suis bien, vous privilégieriez des impulsions de différentes durées sur chaque fil.
Ou alors partir sur des fréquences. J'avais essayé avec des fréquences mais n'ayant que très peu de connaissances, je n'ai pas su exploiter le signal sur le récepteur.
Pour ce qui est de la quantité de pin, je crois avoir lu que l'ESP32 serait plus adapté (j'espère ne pas me faire d'ennemie avec cette phrase :face_with_peeking_eye: ).

N'ayant des connaissances que sur le domaine électrique et non électrotechnique, vous me pardonnerez mon amateurisme :grin: (mais j'ai soif d'apprendre et d'expérimenter) :

  • Quelle solution, impulsion "digital - HIGH/LOW" ou fréquence ("analogique") serait la moins affectée par la longueur des fils ou leur résistivité (bornier, repiquages, ect) ?
  • Niveau sécurité, le système sera totalement hors tension et ne serait soumis qu'a 5V max de la carte donc je ne suis pas inquiet

Merci à tous pour vos réponse, ma curiosité me fera toujours rencontrer de super personnes :ok_hand:

Bonsoir,

Pourquoi un signal différent par fil?

Admettons que tu utilise 2 ESP32 qui peuvent aisément communiquer entre eux par une liaison wifi
(facile à mettre en œuvre en hard et code)

Côté récepteur, tu connecte tes fils à identifier + le commun.

Côté émetteur, tu connecte le fil que tu veux tester.

-L'émetteur met un niveau Haut sur le fil à tester
-Il envoie un message (wifi) au récepteur pour lui dire de lancer le test.
-Le récepteur teste un par un tous les fils et mémorise le numéro de ceux qui sont à niveaux HAUT.
-Le récepteur envoie (wifi) à l'émetteur le ou les numéros des fils à niveau haut qu'il a constaté

etc...

Inverser récepteur et émetteur. Excellent !

En plus de rendre la données stockable (dans le cas d'une serie de test avec un rapport par exemple). Génial !!!

Je vais me pencher sur la partie communication wifi donc :grinning_face:

Merci @jef59

Ce n'est pas le sujet le plus immédiat.
Il existe des CI dit "expenseur" qui permettent de multiplier les sorties d'un microcontroleur.

  • Il y a le vénérable arrière grand père le PCF8574 que je déconseille fortement parce que c'est le plus complexe à utiliser.
  • Il y a le MCP23008 (I2C) ou 23S08 (SPI) → 8 bits
  • Il y a le MCP 23016 (I2C) ou MCP23S16 (SPI) → 16 bits

Précision :
Tu dis que la longueur des fils est inconnue et peut faire plusieurs dizaines de mètres.
Par voie de conséquence, l'éloignement des deux cartes microcontrôleurs peut faire plusieurs dizaines de mètres. Tu es d'accord ?
Il serait bon de fixer la distance maximale.
Tu n'as pas l'intension d'ajouter une mesure de résistance ?

Les conditions d'utilisation sont importantes, si une liaison sans fil est recherchée (voir paragraphe suivant) il faut être sûr que les ondes passeront, surtout si c'est sur un chantier de construction.

A mon avis la priorité est de savoir si tu as besoin de sans fil ou pas.
Si le WiFi t'intéresses, et qu'il "passe" dans les murs un ESP32 est le bon candidat.
Reste à savoir quel ESP32 ? Dans les modèles récents, il y a l'ESP32-C3 et ESP32-S3.
Avec variantes C2, C3 ou (?) C4 et S2 ou S3 .

Autre hypothèse, la transmission Lora. Mais là j'ai une inconnue : j'ai lu qu'en 434 MHz on n'avait le droit d'émettre que pendant 10% d'unité de temps (Heure) c'est-à-dire pendant 6 minutes et qu'en 868 ce n'est plus 10 %, mais seulement 0,1 % soit 3,6 secondes par heure
Aucune idée de savoir si cette règle s'applique dans les faits et s'il y a une police des ondes.

Si le sans fil n'est pas nécessaire, il existe de nombreux autres candidats

La priorité suivante est le choix du "message" utilisé pour identifier un fil.
On t'a cité : un temps variable, une fréquence.
J'ajoute ma proposition : envoi d'un octet ce qui donne 256 possibilités de connexion et qui je pense, demandera le temps de traitement le plus court pour l'identification.

La priorité suivante est la liaison entre le micro émetteur et le récepteur.
Hors radio il existe 3 systèmes filaires bien normalisés :

  • la liaison dite "série" qui est le protocole de la RS232, mais sans les niveaux RS232 (ouf)
    Elle supporte les longues distances.
    Demande 2 fils plus la masse.
  • l'I2C qui ne supporte pas les grandes distances.
    Demande 2 fils plus la masse.
  • le SPI. Demande 4 fils plus la masse
    C'est le plus rapide (40 mHz avec ESP32) mais sera plus délicat à mettre en œuvre que la liaison série.

Mes 5cts.

Bonjour,

Ma suggestion à ESP32 + Wifi, c'est une idée de technicien qui présent qu'il y a un truc à tester par là.

Bon mais on peut dire "ça ne va pas marcher cette bidouille" et refuser le Wifi.

Perso je manque de bagage académique face à un vieil ingénieur du CNAM par exemple pour insister avec ma suggestion un peu originale pour "artiste brut de l'élec.".

Mais je reste persuadé que c'est une idée a tester.

Bonjour vitoscall61

Regardes du côté d'ESP-NOW.
Je développe, actuellement, dessus, super!

Cordialement
jpbbricole

Salut @68tjs

J'avais en effet exploré la possibilité de passer par des multiplexeurs (j'appelle ca comme ca, est-ce le nom officiel ?!?) mais en effet c'est plutôt complexe à mettre en œuvre. Le PCF8574 m'a donné des sueurs!
J'essaye toujours de trouver les solutions les plus fiables et dépannables, donc le plus simple possible.

Pour la distance, c'est purement hypothétique car en l'occurrence le sujet ne traitait que d'une armoire indus, mais j'aime pousser l'expérimentation. Prenons le cas d'un atelier, murs simples, porté de wifi -> 50m de distance de fil pour 20m de distance "entre MC".
Pour la mesure de résistance, non, ce n'est pas prévu. Cela aurait un intérêt ou un impacte ?

Le Wifi me parait être un bon moyen, amplifiable avec antenne et PCB supplémentaire au besoin.

En 100% filaire je pense qu'on peut oublier au vue du nombre de fils nécessaires.

Merci @68tjs