Question:
Meilleures pratiques en matière de transmission du signal analogique du capteur sur de plus longues distances (environ 100 pi) - dans les produits sensibles au coût pour les microcontrôleurs
risingtiger
2020-01-13 07:38:27 UTC
view on stackexchange narkive permalink

Je recherche les meilleures pratiques pour transmettre un signal de capteur analogique sur de longues distances à un microcontrôleur tel que l'Arduino fonctionnant à 3,3v ou 5v. Il est impératif de maintenir les coûts bas.

SPI et I2C sont très courants dans le pays Arduino, mais il semble qu'il n'y ait tout simplement pas beaucoup de solution lorsque les capteurs doivent être à plus de plusieurs mètres du microcontrôleur. Mais peut-être que I2C ou SPI fonctionnera avec les bons composants et le bon câblage. Des idées?

Les boucles de courant 4-20 mA semblent être une solution solide car le courant ne baisse pas sur les distances tant que la puissance fournie reste constamment au-dessus de la demande. Mais les systèmes 4-20 mA de capteurs, émetteurs et récepteurs semblent être des piliers dans le monde industriel et pratiquement absents des systèmes embarqués à faible coût.

Un besoin classique est de détecter la température à travers une thermistance résistive. Leurs émetteurs peu coûteux peuvent-ils être couplés à une thermistance pour transmettre un signal de boucle de courant 4-20 mA? Et puis un récepteur bon marché côté microcontrôleur? Je pense que quelque chose comme un MOSFET du côté de l'émetteur fonctionnerait, couplé à une résistance du côté intégré.

Hélas, étant un ingénieur logiciel, l'électronique est encore un peu floue pour moi.

MISE À JOUR: J'aurais dû en préciser plus. Distances de 30 à 150 pieds dans des environnements potentiellement bruyants électriquement. Je peux aller TRÈS bas sur le débit binaire: 10Khz. Même 1Khz si une telle chose est viable. Mettre en place un filtre passe-bas et / ou des filtres logiciels n'est pas un gros problème. Je voudrais être moins de 10 $ par capteur (boîtier non compris). Mais j'aimerais aussi rester à l'écart d'une carte PCB personnalisée au niveau du capteur si possible.

Vous avez raison à propos de la résistance du côté du récepteur en tant que convertisseur courant-tension afin qu'elle puisse être facilement lue par l'ADC du MCU.Je ne sais pas du côté de l'émetteur mais j'utiliserais un ampli-op au lieu d'un MOSFET (ou un ampli-op qui utilise un transistor externe comme ampli de puissance afin que l'ampli-op puisse gérer la régulation sans avoir besoin dedissiper la chaleur elle-même).Je n'essaierais pas d'exécuter I2C ou SPI sur quelques mètres, bien que vous puissiez et que les gens l'aient fait.RS-422 ou RS-485 est ce que j'utiliserais.
Pouvez-vous définir «longue distance»?Pouces?Mètres?Miles?
Cela nous aiderait si vous nous en disiez un peu plus sur votre candidature.Quel type de capteur ou qu'allez-vous mesurer?Combien d'énergie les capteurs consomment-ils?Comment les capteurs sont-ils disposés (étoile, ligne, grille)?S'agit-il d'un signal par nœud?(Êtes-vous certain qu'il restera un signal par nœud?;)
Comme le suggère DKNguyen, avez-vous envisagé d'utiliser SPI sur RS-422 (ou RS-485 semi-duplex)?
Cela dépend de votre bande passante, et combien bon marché est bon marché, combien de temps est longue distance? Selon https://www.lammertbies.nl/comm/info/rs-232-specs, alors que RS232 mesure environ 16 m à 19200 bauds, à 2400 bauds, il a été testé à 1000 m.Une boucle de courant de 60 mA pourrait gérer 5 km à faible vitesse.Les modems peuvent parcourir plusieurs kilomètres sur une paire torsadée.Ou peut-être, Bluetooth pourrait être la chose - bien qu'infiniment plus compliqué, une paire d'appareils Bluetooth est presque certainement moins chère que 500 m de câble.
Vous ** DEVEZ ** spécifier le débit de données requis.On peut dire 100 bps sur une corde mouillée (presque littéralement si elle est mouillée avec de l'eau salée :-)).||Il serait VRAIMENT utile de spécifier l'ordre de coût souhaité et toute autre contrainte que vous connaissez et que nous devons deviner.||Vous rejetez RS422 / 485 comme trop complexe.Ce n'est pas.Le mécanisme de base est une tension différentielle équilibrée et cela peut être fait pour bien moins d'un dollar.Et bien en dessous si ça doit être.
Vous pouvez utiliser le bus CAN
Vous parlez d'une thermistance à titre d'exemple.Si vous avez réellement besoin de mesurer la température, vous pouvez probablement vous en sortir en exécutant une paire torsadée de la thermistance directement vers la carte uC, plutôt que de numériser au niveau du capteur.La température change assez lentement, ce qui signifie qu'il est assez facile de faire la moyenne dans un logiciel pour supprimer le bruit.Cette solution est, bien entendu, moins valable pour tout signal analogique changeant plus rapidement.
@Selvek.C'est intéressant.Ce sera la température, l'humidité et le niveau d'eau.Tout change très lentement.Et tous fonctionnent hors de la mesure de résistance de base.Je sais que je peux faire beaucoup dans le code pour filtrer les signaux inattendus si je connais un taux de changement maximal (qui sera d'environ 1 degré par minute).Quelque chose comme Cat5 ou même Cat7 fonctionnerait-il en ligne?Et faites simplement passer un signal analogique.
Dans l'IoT, les lectures de données à basse fréquence sont courantes.Détection du niveau d'un réservoir d'eau, de la lumière ambiante à l'extérieur, de l'humidité du sol ou de l'humidité dans une serre.Ce sont des changements lents.Un point de données ne peut être acquis qu'une fois par minute.Cela contraste avec la plupart des applications industrielles.Pour ces points de données basse fréquence, la précision pourrait peut-être être acquise en lisant le signal analogique plusieurs fois pendant 2 secondes.Ensuite, exécutez des filtres passe-bas et passe-haut en fonction de la minute précédente.Calculez ensuite en fonction d'une moyenne mobile.
Considérez IR si la distance est grande et qu'il y a une ligne de vue
Y a-t-il une raison pour laquelle vous devez amener le signal sur une carte aussi éloignée, plutôt que de rapprocher la carte du signal?Aussi, qu'est-ce que «low cost»?Des dollars?Des dizaines de dollars?
Si vous souhaitez vraiment mettre en œuvre une solution analogique pour un capteur à distance, assurez-vous de prendre en compte le coût des câbles.Vous pourriez vous marier à une solution pour constater que vous avez besoin d'un câble magique pour que cela fonctionne correctement.
Si vous ne vous souciez que de la température, les thermistances NTC 10K sont très bon marché, ne nécessitent pas beaucoup de lecture et quelques ohms de résistance de câble ont un effet négligeable sur la précision.Nous les utilisons sur une paire torsadée non blindée sur plus de 50 mètres sans aucun problème dans les environnements de bureau.
@someonesomewheresupportsmonica.Je pense que pour les capteurs de température et de résistance simples, c'est la voie à suivre.
Dix réponses:
TimWescott
2020-01-13 08:10:14 UTC
view on stackexchange narkive permalink

Les "bonnes pratiques" et "bon marché" font toutes deux l'objet d'avis.

Dans tous les cas, je mettrais un petit processeur vraiment bon marché sur le capteur, et je le faisais parler numérique.La façon 1950-1975 de le faire serait de 4 à 40 mA, ou la télécommande enverrait un signal PWM ou modulé en fréquence.

  • Jusqu'à six pieds environ, alimentez le capteur à distance à partir de + 5 V (ou + 3,3 V) et exécutez une série asynchrone référencée à la terre (broches UART) directement du capteur au processeur "principal".
  • Jusqu'à une soixantaine de pieds, alimentez le capteur de la télécommande à partir de n'importe quoi et régénérez-le sur la télécommande.Je lui donnerais probablement + 12V pour les frais généraux, et utiliserais un régulateur de commutation «là-bas», mais vous pouvez utiliser un régulateur linéaire.Utilisez RS-422 avec la télécommande pour simplement envoyer, ou utilisez RS-485 en semi-duplex, avec une sorte de protocole afin que les télécommandes ne parlent que lorsqu'elles sont parlées.
RS-422 est un moyen pratique de transmettre sur de longues distances.Mais, ce projet nécessite de maintenir les coûts / complexités bas.Cela peut ne pas sembler un gros problème de simplement ajouter un microcontrôleur supplémentaire par capteur, mais cela augmente la complexité: plus de code;plus de cartes de circuits imprimés à fabriquer;plus de composants à casser;et plus de choses à entretenir.Mais, s'il existe un composant RS-422/485 simple et bon marché qui convertira simplement un signal analogique en signal numérique et le transmettra à travers la ligne, cela peut fonctionner.Encore une complexité supplémentaire, mais une complexité qui peut surtout être externalisée.
VillageTech
2020-01-13 08:56:45 UTC
view on stackexchange narkive permalink

L'autre solution peut être I2C - il existe des rallonges, permettant de créer des bus jusqu'à 100m (300ft). L'un d'eux est NXP P82B96. Il est très utile dans les constructions amateurs, car il n'est pas cher et existe également dans un boîtier DIP-8 facile à monter. De plus, il permet de traduire les niveaux logiques en tensions plus élevées (par exemple 12V). Vous pouvez trouver des notes d'application sur les pages NXP, par exemple: https://www.nxp.com/docs/en/application-note/AN10658.pdf

Il est également possible de construire un bus opto-isolé en utilisant P82B96: https://www.nxp.com/docs/en/application-note/AN10364.pdf

Une autre possibilité est P82B715, mais elle est probablement moins utile car la longueur maximale du bus est d'environ 50 m (150 pieds) et il y a d'autres limitations. Il y a cette note d'application: https://www.nxp.com/docs/en/data-sheet/P82B715.pdf

Utiliser I2C est une solution très efficace, car il existe de nombreuses puces d'interface bon marché sur le marché (ADC, DAC, IO, capteurs de température, etc.) donc, du côté capteur de vue, il n'est pas nécessaire d'utiliser un MCU (et pour créer un logiciel dédié pour ce MCU).

Personnellement, j'ai construit mon système domotique en utilisant cette solution (P82B96 avec opto-isolation) et je peux confirmer qu'il fonctionne très bien et qu'il est stable et fiable.

Intéressant!Le P82B96 semble une solution viable.Ajouter la complexité des MCU avec leur alimentation et les conversions nécessaires pour communiquer sur rs422 est excessif: plus de coûts;plus de composants à casser;plus de code à maintenir et plus de PCB à créer.De quel type de source d'alimentation le P82B96 a-t-il besoin?
Paul
2020-01-14 00:40:29 UTC
view on stackexchange narkive permalink

J'ai obtenu d'excellents résultats en transmettant des données de capteur à l'aide du Controller Area Network (CAN).J'ai un microcontrôleur 16 bits avec un CAN intégré qui s'interface via SPI à un convertisseur A / N 24 bits.Ce microcontrôleur échantillonne toutes les 20 ms et envoie les données via CAN vers un autre microcontrôleur (32 bits) situé à 50 mètres.CAN a un système avancé de vérification des erreurs que les anciens systèmes ne peuvent pas.Il utilise une paire différentielle donc il est assez bien insensible au bruit.Microchip fabrique le MCP2515 qui interfacera CAN via SPI.

+1 Il y a une raison pour laquelle la plupart de l'électronique automobile utilise CAN pour que les modules se parlent, au lieu de quelque chose comme RS-232 ou RS-485.C'est tout simplement un meilleur système et beaucoup plus fiable.Pour des raisons historiques, il existe d'autres systèmes utilisés pour OBD tels que ISO-9141 ("K-line") et J1939, mais pour que les modules se parlent, CAN est fondamentalement le seul jeu en ville de nos jours.
Bien que J1939 n'ait pas mentionné à l'origine CAN, cela implique presque certainement CAN ces jours-ci.Vous recherchiez peut-être J1850. Mais oui, CAN est un protocole fort.Au crédit de l'idée de la domotique, il y a un contingent d'automatisation industrielle utilisant CAN tel que CANOpen.Si c'est assez bon pour eux ...
CAN est vraiment impressionnant.Mais cela nécessite d'avoir un microcontrôleur à l'extrémité du capteur, du moins je suppose.Existe-t-il des composants viables sur le marché qui peuvent recevoir un signal analogique et le transformer en un signal CAN sur le fil?Le point ici, c'est que j'essaie de rester à l'écart de la complexité, des coûts et du code supplémentaires.Mais s'il existe sur le marché un convertisseur CAN simple et peu coûteux qui est assez plug and play, c'est peut-être la voie à suivre.
@foreverska Ah, mon erreur - cela fait quelques années que je n'y ai pas travaillé, et les chiffres se sont mélangés dans ma tête.:)
@risingtiger Ils existent pour différentes définitions de bon marché.AnalogX (Autosport Labs) coûte 100 $ apparemment.Pour 150-200 $, vous pouvez probablement vous procurer un coupleur de bus Beckhoff ou WAGO CANOpen + module analogique sur Ebay.
"CAN a une vérification avancée des erreurs que les anciens systèmes ne peuvent pas."C'est le moins qu'on puisse dire.La surcharge est énorme - il faut un minimum de 52 bits pour envoyer 8 bits de données - et c'est avant tout bourrage de bits.Ce n'est pas un problème dans ce cas, étant donné le faible débit de données.Mais le résultat est une très grande fiabilité sur de longues distances.Et vous pouvez obtenir un uP avec des convertisseurs CANBUS et A / N pour de l'argent très bon marché - Digikey vend DSPIC33EP32GP502-I / SO pour moins de 2 dollars en qté 1. Vous ne mentionnez pas d'autres exigences, donc je vous recommande d'aller àquelque part comme digikey et faire des recherches.
cstanto
2020-01-13 21:55:16 UTC
view on stackexchange narkive permalink

La boucle 4-20 mA nécessitera une électronique d'entraînement complexe et une tension d'alimentation plus élevée (les amplificateurs d'entraînement utilisés auparavant étaient de 18 V).Bien qu'il soit encore couramment utilisé dans les systèmes industriels à ce jour et présente des avantages, il s'agit vraiment d'un système hérité en ce qui concerne la plupart des applications, et principalement utilisé pour la modernisation de capteurs sur des systèmes daq plus anciens qui sont antérieurs au numérique répandu.communications disponibles aujourd'hui.

La solution la plus simple serait d'ajouter un pilote RS-422 ou RS-485 à votre circuit.Ces normes sont très courantes dans l'industrie des capteurs industriels.La plupart des circuits intégrés sont également fournis avec un circuit suggéré dans leur fiche technique, vous pouvez donc les implémenter sans trop de peine.

Les appareils 4-20 mA ne sont * pas * des appareils hérités - ce sont du pain et du beurre dans le monde industriel et les étagères sont remplies de nouveaux appareils de toutes sortes utilisant une sortie analogique 4-20 mA.
@J ..., cstanto a déclaré le * système * hérité, pas les appareils hérités.Bien sûr, il existe des appareils modernes conçus pour s'interfacer avec des systèmes hérités, et vice versa.Mais si l'on devait concevoir un système à partir de zéro aujourd'hui, je doute que le protocole de communication soit un premier choix.
@NateS.Et vous vous trompez.C'est vraiment un premier choix, même aujourd'hui.
@J Oui, je comprends que de nouveaux appareils sont toujours en cours de conception et de vente avec des boucles 4-20 mA, j'ai passé 5 ans à travailler pour une entreprise qui a fait exactement cela, mais une grande partie de cette popularité est due au fait qu'ils sont installés dans des systèmes qui n'ont pascapacités de communication numérique plus modernes.Nous recommanderions toujours des variantes CAN / RS232 / RS485 de nos instruments et capteurs sur des variantes 4-20 mA à moins que le client ne soit totalement opposé à elles et sache comment acquérir des données à partir d'un 4-20, car cela permettait des capacités de contrôle et de diagnostic plus sophistiquées.suite ...
... Avec «l'industrie 4.0» et la poussée croissante vers les capteurs intelligents, les boucles 4-20 mA ne seront éliminées du marché qu'avec le temps, sauf pour les applications de niche.
@cstanto Fair, et je ne nie pas l'utilité des communications numériques pour de nombreux appareils, mais il y a aussi beaucoup de composants simples dans les machines qui n'ont vraiment pas besoin de plus qu'une simple boucle analogique, et les avantages de ne pas surcharger le systèmene peut pas être négligé non plus.C'est encore une chose qui peut échouer, et je vois (et je conçois) certainement de tout nouvel équipement avec une bonne quantité d'E / S analogiques dans le mélange d'E / S.D'après mon expérience, les fabricants sont impatients de recommander la dernière chose juste pour vous tenir au courant de ce qui existe - cela ne signifie pas que c'est toujours la meilleure solution.
@J Je n'ai aucun doute qu'il y a un élément de leur vendre la dernière chose pour le plaisir de lui, et certaines applications plus simples ne nécessitent vraiment pas beaucoup plus qu'une sortie analogique.Mais d'après notre expérience, configurer les gens avec des sorties comme le modbus sur RS485 plutôt que l'analogique a conduit à beaucoup moins de temps passé à fournir un support technique aux clients car ils ne comprenaient pas comment convertir correctement leur 4-20 mA en quelque chose de lisible par l'homme, ou comment calibrerleur capteur avec potentiomètres etc.
Les communications numériques @J permettent d'effectuer de nombreux diagnostics, étalonnage et maintenance sans retirer le capteur / instrument de l'application et l'ouvrir, ce qui peut être extrêmement bénéfique pour les utilisateurs finaux.Cependant, nous avons souvent constaté que cela n’était pas toujours pris en compte avant de leur expliquer.
@cstanto On dirait que vous parlez de néophytes et de petits bricoleurs qui ne savent pas vraiment ce qu'ils font.Les personnes qui construisent des machines sérieuses de plusieurs millions de dollars n'ont pas besoin d'une telle prise en main lors de la conception et de la mise en œuvre d'un système.Si un capteur casse ou nécessite un étalonnage, vous devez le supprimer - je ne vois pas comment les communications numériques changent cela, pour être honnête.J'utilise à la fois des appareils numériques et analogiques - beaucoup d'entre eux, toutes les saveurs, tous les protocoles et tous les types - et ils ont chacun leurs avantages et leurs inconvénients.Je pense toujours qu'ils ont tous deux une place importante dans l'automatisation moderne.
@J Non, je parle définitivement de personnes travaillant pour de grandes entreprises.Nous n'avons pas eu affaire à des bricoleurs et des amateurs.Vous serez étonné de voir combien de personnes qui construisent des machines de plusieurs millions de dollars n'ont aucune idée de ce qu'elles font.J'ai vu des ingénieurs en mécanique, des gestionnaires, etc. sans expérience en électronique, regroupés avec des capteurs d'approvisionnement et des systèmes daq.
@J Des choses peuvent se produire dans un capteur qui nécessitent une attention, sans qu'il ne soit cassé.Être capable d'y voir sans démonter tout votre système pour y arriver n'a pas de prix.Vous n'avez pas non plus nécessairement à retirer les capteurs pour les calibrer, si le système est conçu correctement.
@cstanto C'est certainement vrai pour * certains * capteurs, mais ce n'est absolument pas vrai pour * tous * les capteurs.Dans tous les cas, il va de soi que les personnes qui perturbent votre support technique sont des personnes qui ne savent pas ce qu'elles font.Ce ne sera pas un échantillon représentatif de vos clients.Dans tous les cas, les E / S analogiques sont omniprésentes, actuelles et très vivantes.Comme tout, ce n'est évidemment pas la bonne solution pour tout, mais, comme tout, il y a toujours des endroits où il reste un premier choix.
jonathanjo
2020-01-15 20:04:22 UTC
view on stackexchange narkive permalink

Je partage votre réticence à mettre tout un processeur par capteur, cependant ...

RS-485 pour les communications capteur / sortie sensibles aux coûts

Je peux recommander ce qui suit, c'est ainsi que je fais maintenant ces types de capteurs / périphériques de sortie:

  • Très petit processeur local de type Arduino par position de capteur
  • Pilote RS-485
  • Très petit bloc d'alimentation local à mode commuté
  • Puissance centralisée
  • Connexion via CAT-5 ou câble d'alimentation + paire de données

Cela signifie que vous pouvez garder toute votre électronique par capteur très petite, ce qui simplifie tout (moins de bruit, moins de problèmes). Le logiciel pour parler au capteur est dédié - pas de multitraitement ni d'entrelacement de fonctions, il dispose d'un processeur complet. S'il n'y a qu'un seul capteur, je mets un adaptateur RS-485 sur l'ordinateur récepteur; plus généralement, j'ai un appareil Atmega avec RS-485 et Ethernet et je convertis vers et à partir de paquets UDP. Ensuite, le serveur - ou les serveurs, si faciles à rendre redondants - peuvent faire le travail partout où cela leur convient.

RS-485 est bon marché et simple et facile à déboguer si vous suivez quelques règles simples. Cela fonctionne sur de courtes ou longues distances. Vous choisissez votre vitesse et configurez un protocole simple (facile pour les ingénieurs en logiciel) et cela fonctionnera pour toujours. Je l'exécute souvent à 9600 ou même plus lentement. Si vous avez des LED adaptées, vous pouvez comprendre les casses sans aucun outil. C'est suffisamment simple que j'ai suivi un cours «d'informatique physique» dans une école d'art de New York pour faire démarrer un réseau en un seul après-midi, basé sur un format très similaire à syslog (RFC 3164) plus un CRC-32.

Dne pas utiliser radio Je me suis tenu à l'écart de tout ce qui est basé sur la radio, sauf là où il est absolument impossible de faire passer des câbles. On ne sait tout simplement pas quand une machine à interférences arrivera: trop souvent, c'est quelque chose comme des talkies-walkies de presse ou de police lors de l'inauguration de mon événement.

Dn'utilise pas ethernet J'utilisais auparavant ethernet avec POE, mais j'ai changé après avoir dû faire beaucoup d'environnements difficiles (extérieur, sous-marin, près de grosses machines industrielles). Il n'y a pas d'interrupteur à maintenir, pas de tensions POE. Et pas de course aux armements de 10BaseT, 100BaseT, 1000BaseT.

Dn'utilisez pas de bus de type carte Une fois, j'avais un système (construit par d'autres) qui était SPI à 2 mètres: cela fonctionnait à peu près mais quand nous devions le déplacer à 3 mètres ... cela n'a jamais fonctionné. À la fin, je l'ai remplacé par RS-485 comme décrit ici.

CAN est génial mais il résout un problème difficile et il y a donc beaucoup de complexité. La série et le RS-485 sont absolument omniprésents et cela vous fera gagner du temps encore et encore.

Les règles simples

  • Semi-duplex à deux fils (jamais à quatre fils)
  • Soit a) Un maître (PC) plusieurs esclaves (capteurs) ou b) Un haut-parleur et éventuellement plusieurs auditeurs
  • S'il y a plus d'une douzaine d'esclaves, pensez a) aux collisions et b) au chargement du bus
  • Alimentation depuis le centre
  • Pas de connexion locale côté capteur
    • Si vous en avez besoin, utilisez des opto-isolateurs ou des relais
  • Quel que soit votre protocole, il doit avoir une somme de contrôle
  • Utilisez-le comme UDP et non TCP
  • Exécutez-le aussi lentement que possible
    • À 9600, vous n'aurez probablement jamais de problèmes
  • Plus de 20 mètres, faites attention à la résiliation
  • Si vous êtes à l'extérieur ou sous l'eau ou si vous êtes à proximité, c'est toujours bon mais faites plus de devoirs
  • Si vous avez besoin de rapidité (disons 1 Mbit / s), toujours bon mais faites plus de devoirs
  • Si vous avez besoin d'isolement, toujours bien mais faites plus de devoirs
  • Si vous avez besoin de centaines de nœuds, c'est toujours bien, mais faites plus de devoirs

Coûts

Les coûts sont faibles, inférieurs à 10,00 $ / unité - la plupart dépendent du logement et des connecteurs. Voici les prix 10-off de Digikey ou Ebay.

Pour une carte unique ou expérimentale, j'utilise des cartes de Chine:

  • Convertisseurs TTL vers RS-485 d'Ebay (0,90 £)
  • Arduino "Pro Micro" ou similaire (avec bouton de réinitialisation!) (1,80 £)

Pour les cartes dédiées, je préfère les puces individuelles:

  • Puce 75176 broches 0,70 £ + socket si espace
  • ATTiny22 ou similaire 0,50-1,50 £

Le brochage 75176 est une norme pour les pilotes RS-485, ce qui signifie que vous pouvez utiliser des pilotes exotiques si vous en avez besoin (par exemple avec une protection ESD plus élevée).

Dans les deux cas, j'alimente 12VDC ou 24VDC pour l'alimentation avec une paire torsadée pour le signal. Plus de CAT-5 fonctionne bien, ou un câble d'alimentation + de données. Sur chaque unité, une alimentation Recom R-78E5.0-0.5 (1,99 £ / unité). Ces appareils sont super. Mettre un petit bloc d'alimentation à côté de chaque unité a fait disparaître tous les problèmes d'alimentation et de bruit.

À l'épreuve du temps

Un autre avantage de cette approche est qu'elle place tous les problèmes de compatibilité importants dans le protocole sur la ligne RS-485. Si, à l'avenir, vous ne pouvez pas obtenir le même capteur ou processeur, obtenez-en un différent et recréez-le. Si vous utilisez des puces de pilote à 75176 broches, vous pourrez toujours obtenir des remplacements.

Et si vous avez besoin de vous connecter à quelque chose que vous souhaitez isoler, il est facile d'obtenir un pilote isolé tel que celui de Digilent (bien que beaucoup plus cher, environ 17,00 £). Mais sans aucune refonte du système de base, ni recodage.

Références

Pour une lecture correcte du RS-485, commencez par ceux-ci et suivez les références.

  • Texas Instruments Guide de conception RS-485 PDF
  • Texas Instruments AN 1057 Dix façons de protéger les interfaces RS-485 PDF
  • Bob Perrin, "The Art and Science of RS-485", Circuit Cellar, juillet 1999. PDF

Spécificités

  • "Semi-duplex à deux fils" signifie en fait trois fils: une paire torsadée pour le signal et une masse, qui est souvent la masse de l'alimentation CC si les systèmes sont alimentés par la même puissance.
  • Vous verrez une énorme controverse sur la question de savoir si vous avez besoin d'un bouclier, mais Perrin dit que vous ne le faites pas à moins que vous ayez des circonstances exotiques.
  • En semi-duplex, la sortie du pilote est activée pendant la transmission.
    • Sur un PC, vous activez généralement le pilote avec RTS de votre sortie RS-232. Le noyau Linux a un appel ioctl (8) pour l'activer sur les lignes série TIOCSRS485 doc
    • Sur un microcontrôleur, vous utilisez une ligne IO pour Driver-Enable DE . Vous pouvez toujours écouter (connecter Receive-Enable / RE à la masse) ou, plus généralement, rejoindre DE et / RE et conduire à partir de la même broche IO . Vous pourriez éventuellement utiliser une broche IO et conduire / RE mais je ne l'ai jamais vu.
  • Il existe de nombreuses variantes de puces de pilote, mais choisissez-en une dans un package 75176 car c'est la plus courante
  • C'est une excellente idée d'utiliser des packages DIL à 8 broches et une prise pour le pilote afin que, lorsque quelqu'un le connecte mal, vous puissiez remplacer le pilote grillé; vous pouvez également utiliser des puces de pilote plus robustes si vous le souhaitez, ou des versions à faible EMI avec des taux de rotation inférieurs.
Hou la la!Réponse très bien présentée.Avoir un microcontrôleur au capteur est toujours un problème pour moi, dans cette situation.Bien qu'à peine, quand je considère à quel point même une carte Arduino complète est vraiment bon marché.Donc, votre réponse semble valable.
Gwyn
2020-01-14 03:52:15 UTC
view on stackexchange narkive permalink

Si vous cherchez à garder les choses simples et à ne pas convertir au format numérique, la détection de courant est un moyen peu coûteux et pratique.

Il n'est pas nécessaire que ce soit un système 4-20 mA. Vous êtes libre de choisir les courants en fonction des distances, de l'alimentation électrique disponible et du niveau de bruit électrique de votre environnement. Un autre avantage est que vous n'avez besoin que d'un câble à 2 conducteurs, donc tout (même le câble secteur) fera l'affaire.

Voici un exemple que j'ai utilisé avec un câble d'environ 40m. Le LM35 délivre une tension proportionnelle à la température, utilisée pour conduire un courant à travers R2. R1 est utilisé pour augmenter la limite inférieure des températures mesurables. Choisissez R_sense en fonction de votre tension d'alimentation et des entrées du microcontrôleur.

schematic

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Assurez-vous simplement que la tension minimale aux bornes de l'alimentation du LM35 est respectée dans votre cas d'utilisation. Vous trouverez plus d'informations dans la fiche technique du LM35 sur la manière de choisir les valeurs de résistance.

Connaissez-vous de bonnes ressources pour apprendre les méthodes de boucle actuelles?
@risingtiger.Je n'ai pas mon exemplaire sous la main pour le moment, mais il doit y avoir quelque chose dans «The Art of Electronics» de Horowitz et Hill.C'est mon livre de choix pour tout ce qui est électronique depuis que j'ai acheté un exemplaire d'occasion en tant qu'étudiant ....
Graham
2020-01-14 16:50:46 UTC
view on stackexchange narkive permalink

Si vous avez un micro approprié à chaque extrémité et que votre micro peut gérer le traitement requis, Ethernet est une très bonne solution pour les communications longue distance. Les câbles Ethernet Cat5 sont disponibles dans presque toutes les longueurs que vous souhaitez, et leur utilisation étendue dans toutes sortes d'applications signifie que vous pouvez également obtenir des versions renforcées. Astuce: les câbles utilisés pour connecter les bureaux de son et d'éclairage pour les applications de scène sont en effet très bons - si votre PC ne peut pas se connecter à Internet pendant environ une heure, pas de problème, mais si vous perdez le son et l'éclairage pour AC / DC jouer dans un stade alors vous avez une énorme facture entre les mains!

C'est plus simple si les micros à chaque extrémité exécutent un système d'exploitation "normal". Windows ou Linux fonctionnera, les systèmes d'exploitation commerciaux tels que Wind River fonctionneront bien aussi, et je suis sûr qu'il y en a d'autres. Windows ne serait pas mon premier choix, mais Linux devient assez bon pour le traitement en temps réel de nos jours. Avec un système d'exploitation en place, vous pouvez simplement utiliser les ports IP pour envoyer vos données.

Vous pourriez penser que cela semble floconneux, ou trop beau pour être vrai, mais c'est exactement comme ça que SpaceX connecte l'électronique dans ses fusées.

Les seuls fils entre la scène et chaque moteur sont un câble Ethernet et un câble d'alimentation.

S'ils peuvent le faire fonctionner pour envoyer une fusée dans l'espace, je suppose que cela fonctionnera aussi pour votre application. :)

J'ai utilisé des solutions similaires à celles décrites dans les projets précédents.Mais ces projets avaient un budget par installation beaucoup plus important.Ce projet particulier nécessite des coûts très faibles et un entretien très minime.Mais, oui, Ethernet est assez génial dans sa large application.
AaronD
2020-01-15 03:26:35 UTC
view on stackexchange narkive permalink

J'aime mieux la réponse de TimWescott, mais une autre option est de regarder un microphone professionnel pour le son en direct et le travail en studio. Ils parcourent souvent des centaines de mètres dans des environnements d'éclairage et d'alimentation secteur bruyants, avant d'être amplifiés à un niveau utilisable par le reste de l'électronique:

schematic

simuler ce circuit - Schéma créé à l'aide de CircuitLab

La capsule de micro elle-même est électriquement flottante, non connectée au boîtier métallique mis à la terre, et les deux fils de signal sont soustraits l'un de l'autre et la différence est transmise comme le signal prévu.

Ainsi, tout bruit passant à travers le blindage mis à la terre du câble et sur les deux fils est annulé au niveau du récepteur. Les tordre les rapproche le plus possible de la même position afin que la même quantité de bruit atteigne les deux, et garder leurs impédances égales leur permet de l'accepter dans la même mesure.


Si vous avez également besoin d'une alimentation à l'extrémité du micro et que vous ne voulez pas jouer avec les piles, vous pouvez utiliser «Phantom Power»:

schematic

simuler ce circuit

R1, 2, 5, 6 permettent au signal audio AC d'exister toujours sur les mêmes fils, et la haute tension de la source est de toute façon obtenir une quantité utile d'énergie à travers eux.

C1,2,3,4 bloque ce DC des composants audio.

R3,4 rétablit le niveau de DC moyen, après avoir été bloqué par les plafonds.

R7 maintient le pilote actif stable dans un long câble (capacitif).

R8 correspond à R7 pour maintenir les impédances égales et montre que le signal ne doit pas nécessairement apparaître sur les deux fils. Seule une différence quelconque est nécessaire, et une impédance égale.

jcaron
2020-01-15 17:46:43 UTC
view on stackexchange narkive permalink

Je ne sais pas quelles sont vos contraintes exactes, mais plutôt que d'apporter le signal à la carte, j'apporterais la carte au signal, puis je transmettrais les données résultantes via Ethernet (ou même Wi-Fi, si lel'environnement est adapté à cela).

Une carte ESP8266 ou ESP32 bon marché à côté du capteur ferait probablement l'affaire.

Si vous rencontrez un problème pour alimenter la carte, vous pouvez utiliser Power over Ethernet (PoE) pour l'alimenter, avec des injecteurs et des répartiteurs bon marché à chaque extrémité.

Il existe même des cartes avec PoE intégré, comme l'ESP32-POE-ISO d'Olimex ou le wESP32 disponible sur Crowd Supply.

richard1941
2020-01-17 10:24:13 UTC
view on stackexchange narkive permalink

Je construirais un oscillateur dont la fréquence dépend de la thermistance.Sa sortie pourrait être couplée à un transformateur pour bloquer le bruit de mode commun.On pourrait réaliser un démodulateur dont la sortie ne dépend que de la fréquence, et pas du tout de l'amplitude.Le reste n'est qu'un vilain problème d'étalonnage.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...