Haftungsausschluss: Bitte seien Sie sanft - ich bin ein Neuling mit Elektronik.
Überblick
Ich habe ein proprietäres analoges 24-V-DC-Sensorsignal, das ich mit einem Arduino-basierten Mikrocontroller verbinden möchte. Der Sensor hat nur zwei Anschlüsse, die sowohl für die Stromversorgung als auch für die Signalisierung verwendet werden.
Ansatz
Ich habe verschiedene Beiträge und Websites bezüglich der Umwandlung des 0-24-V-Analogsignals in den Bereich 0-5 V durchsucht, den der ADC auf dem Arduino Uno (eigentlich Freetronics Eleven mit ATmega328P) interpretieren kann.
Aus dem was ich zusammengebastelt habe:
Eine besondere Frage, die ich habe, betrifft die Tatsache, dass der ADC und das 24-V-Sensorsignal, das ich verbinden möchte, unterschiedliche Stromquellen haben, und anscheinend ist dies ein Problem, da sie nicht dieselbe GND teilen. Aus meiner Tiefe, also wäre ein Einblick nützlich. Der Arduino läuft mit 5V DC.
Mir ist klar, dass SE Q&A-Posts bevorzugt, aber für mich ist das Obige ein Kontext, der für die größere Schaltung zusammenpasst - zumindest denke ich das.
Ich würde es wirklich schätzen, wenn diejenigen mit mehr Verständnis und Wissen ihre Einsichten anbieten und meine obigen Gedanken geltend machen und sogar darauf eingehen könnten, um mein Verständnis zu erweitern und einige meiner Missverständnisse auszuräumen.
Vielen Dank!
Es scheint, als würde Ihre erste Aufgabe darin bestehen, festzustellen, welche Art von Signalisierung verwendet wird. Was Sie also zunächst benötigen, ist ein "Oszilloskop des armen Mannes" in Form eines Mikrocontrollers mit ADC. Sie werden es verwenden wollen, um sowohl die Spannung über den Sensordrähten als auch den Strom durch sie zu messen; Wenn die Drähte sowohl für die Stromversorgung als auch für die Kommunikation verwendet werden, ist es wahrscheinlich, dass die Art der Kommunikation darin besteht, die verbrauchte Strommenge zu erhöhen und zu verringern. In diesem Fall erhalten Sie die nützlichsten Informationen durch Messen der Stromwellenform.
Wie Sie beobachtet haben, kann der Arduino an seinen analogen Ports Spannungen zwischen 0 und 5 Volt messen. Um einen größeren Bereich bis zu 24 Volt zu messen, benötigen wir einen Spannungsteiler wie diesen:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Die grundlegende Funktionsweise eines Widerstandsteilers ist einfach. Ignorieren Sie 'Radc' für einen Moment und gehen Sie davon aus, dass 'IN' an eine Spannungsquelle angeschlossen ist. Strom fließt von IN durch Ra und Rb zur Erde; Die Höhe dieses Stroms hängt von der Spannung an IN ab. Wir können dies mit berechnen i = Vin / (Ra + Rb)
. Die Spannung, an der sich Ra und Rb treffen, hängt vom fließenden Strom und dem Wert von Rb ab - es ist Vdiv = i * Rb
.
Wenn wir dies wissen, können wir einen Teiler für jedes gewünschte Verhältnis konstruieren, indem wir einfach die relativen Werte von Ra und Rb bestimmen. Aber was ist mit den absoluten Werten? Im Prinzip können wir jede gewünschte Größenordnung wählen, aber in der Praxis gibt es einige wichtige Überlegungen:
Punkt 1 oben bedeutet, dass wir die Impedanz unseres Widerstandsteilers - die Summe beider Widerstandswerte - viel höher machen wollen als die Ausgangsimpedanz der Schaltung, die wir messen, damit wir unsere Messungen nicht beeinflussen. Punkt 3 oben bedeutet, dass wir den Widerstand, den unser ADC sieht – in diesem Fall Ra – viel kleiner als seine eigene Eingangsimpedanz machen wollen, damit die Impedanz des ADC die Messungen nicht beeinflusst. Wenn möglich, möchten wir dann einen Wert dazwischen wählen - einen Widerstand für Ra + Rb, der mehr als beispielsweise das 100-fache der Ausgangsimpedanz der Eingangsschaltung beträgt, und einen Widerstand für Ra, der weniger als beispielsweise 1/100 des ADC beträgt Eingangsimpedanz.
Was aber, wenn diese beiden Anforderungen miteinander in Konflikt stehen? Hier kommt ein Operationsverstärker ins Spiel.
Ein idealer Opamp (Operationsverstärker) hat eine unendliche Eingangsimpedanz – er stört das gemessene Signal überhaupt nicht – und eine Ausgangsimpedanz von Null – sein Ausgang ist eine perfekte Spannungsquelle. Reale Opamps weichen mehr oder weniger von diesem Ideal ab, aber für unsere Zwecke ist es nah genug an der Wahrheit.
Wir können diese Eigenschaften nutzen, um unsere Messschaltung zu verbessern, indem wir den Operationsverstärker wie folgt zwischen den Widerstandsteiler und den ADC-Eingang schalten:
Simulieren Sie diese Schaltung
Jetzt "sieht" unser Widerstandsteiler eine sehr hohe Ausgangsimpedanz vom Eingang des Operationsverstärkers, und unser ADC "sieht" eine sehr niedrige Eingangsimpedanz vom Ausgang des Operationsverstärkers - das Beste aus beiden Welten!
Aber welchen Operationsverstärker brauchen wir? Nun, wir haben ein paar Anforderungen:
Eine schnelle Suche auf Digi-Key zeigt den MCP6241 , der Eingangsspannungen von nur 0,3 Volt unter der negativen Schiene und bis zu 0,3 Volt über der positiven Schiene (5 V) und Ausgangsspannungen innerhalb von 35 Millivolt der negativen und positiven Schiene unterstützt , was für unsere Zwecke locker ausreicht. Die Power-Pins dieses Operationsverstärkers können direkt mit GND und VCC auf dem Arduino verbunden werden, wobei der Rest wie im obigen Diagramm gezeigt verdrahtet wird.
Was ist mit dem Widerstandsteiler? Nun, das Datenblatt des MCP6241 sagt, dass seine Eingangsimpedanz 10 13 Ohm beträgt – absurde 100 Teraohm oder 100 Millionen Megaohm. Dies ist selbst für einen Operationsverstärker hoch und bedeutet, dass wir einen Widerstandsteiler verwenden können, der ungefähr so groß ist, wie Sie möchten - oder so denken Sie.
Ein letztes Problem bei der Auswahl unseres Widerstandsteilerwerts ist, dass wir auch beim Aufbau unserer Schaltung nicht in einer idealen Welt leben. PCBs sind keine perfekten Isolatoren und Steckbretter auch nicht; Oberflächenverunreinigungen wirken sich ebenfalls auf den Widerstand aus, und wenn Sie Ihren Schaltkreis berühren, können Sie garantieren, dass der Widerstand durch Ihre Haut viel niedriger als ein Teraohm ist. All dies bedeutet, dass wir einen Widerstandsteilerwert wählen sollten, der viel niedriger als das theoretische Maximum ist - eine gute Faustregel ist etwas im Bereich von 100 Kiloohm bis 1 Megaohm.
Wir möchten unseren Eingang so aufteilen, dass 24 Volt Eingang ungefähr 5 Volt Ausgang sind, was bedeutet, dass wir ein Verhältnis von 5/24 = ~ 20% benötigen. Angenommen, wir setzen Rb auf 100 Kiloohm; Das bedeutet, dass Ra 4-mal größer sein sollte oder etwa 400 Kiloohm. 402 Kiloohm ist ein leicht verfügbarer Wert, der uns ein endgültiges Teilungsverhältnis von 100/(100+402) = 19,9 % gibt, was bedeutet, dass 24 Volt Eingang als 4,78 Volt Ausgang gemessen werden.
All dies zielt darauf ab, dass Sie auf einfache Weise ein 24-Volt-Signal an Ihrem Mikrocontroller messen können, ohne den Eingang stark zu stören. Wenn Sie stattdessen einen Strom messen möchten, ist Ihr Leben viel einfacher: Bestimmen Sie den wahrscheinlichen Bereich der Ströme, die Sie messen möchten, und wählen Sie einen Widerstand, der bei diesen Pegeln einen kleinen, aber messbaren Spannungsabfall erzeugt. Bei Ihrem 24-Volt-System kann alles bis zu 1 Volt akzeptabel sein. Platzieren Sie dann diesen Widerstand zwischen Masse und dem negativen Draht Ihres Sensors und messen Sie die Spannung direkt mit Ihrem ADC oder über den Operationsverstärker ohne den Widerstandsteiler, wenn Sie dies wünschen.
Der ADC ist mit einer Quellenimpedanz von < 10 K zufrieden. Wenn Sie einen Spannungsteiler R1 R2 an eine Spannungsquelle angeschlossen haben, beträgt die Quellenimpedanz 1/(1/R1 + 1/R2).
Das Verhältnis sollte für die Anwendung nahe bei 3,8:1 liegen.
Sie können also R1 = 38,3 K 1 % und R2 = 10,0 K 1 % (von Standard- E96 -Werten) auswählen.
Die Quellenimpedanz (vom ADC gesehen) beträgt 7,9 K, das Verhältnis ist so, dass 24 V -> 4,98 V.
Vorausgesetzt, eine Last von 48 K (10 K + 38,3 K) beeinflusst Ihr 24-V-Signal nicht übermäßig, sollte es Ihnen gut gehen.
Eine besondere Frage, die ich habe, betrifft die Tatsache, dass der ADC und das 24-V-Sensorsignal, das ich verbinden möchte, unterschiedliche Stromquellen haben, und anscheinend ist dies ein Problem, da sie nicht dieselbe GND teilen.
Ja, das ist definitiv ein Problem. Wenn die Massen für die 24-VDC- und 5-VDC-Systeme galvanisch voneinander getrennt sind und dies aus Sicherheitsgründen bleiben müssen, müssen Sie (z. B.) eine Trennverstärkerschaltung verwenden, um die bereitgestellte herunterskalierte Spannung sicher zu verbinden den Ausgang des ohmschen Spannungsteilers auf der 24-VDC-Seite mit dem ADC-Eingang auf der 5-VDC-Seite.
Sampled 24V out -> [IA] -> ADC in (5V side)
Für weitere Informationen führen Sie beispielsweise eine Internetsuche auf galvanic isolation
und durch.isolation amplifier IC
Techniker
Jaans
Techniker
Jaans
Techniker
Techniker
Techniker
Nick Johnson
Jaans
Jaans
Techniker
Techniker
Nick Johnson
Jaans
Jaans
Jaans