Ich erstelle einen Controller für ein 12-V-System mit einem Arduino Uno-Mikrocrontroller. Für die Ausgänge verwende ich einen Relaisschirm, um die 12-V-Komponenten zu schalten. Ich habe einen 12-V-Kippschalter, der einige 12-V-Komponenten im System einschaltet, und ich möchte ein Triggersignal von demselben Schalter verwenden, um es an einen digitalen Arduino-Eingang zu senden. Ich weiß, dass der Arduino nur maximal 5 V verarbeiten kann. Was wäre der beste Weg, um die 12 V, die vom Schalter kommen, auf 5 V für den Eingang zu verringern?
EDIT: Das System ist für den Einsatz in einem Auto. Müsste die Stromstärke der Autobatterie irgendwie gesenkt werden, um die Komponenten nicht zu sprengen?
Gute Nachrichten! Das wird billig! :-)
Ein einfacher Widerstandsteiler bringt die 12 V auf die 5 V, die ein Arduino verdauen kann. Die Ausgangsspannung kann wie folgt berechnet werden
Widerstandswerte im Bereich von 10 kΩ sind eine gute Wahl. Wenn Ihr R2 10 kΩ beträgt, sollte R1 14 kΩ betragen. Nun ist 14 kΩ kein Standardwert, aber 15 kΩ schon. Ihre Eingangsspannung beträgt 4,8 V anstelle von 5 V, aber der Arduino sieht dies immer noch als hohen Pegel. Etwas Headroom hat man auch, falls die 12 V mal etwas zu hoch sein sollten. Selbst 18 kΩ liefern immer noch ausreichend hohe 4,3 V, aber dann müssen Sie anfangen, über die 12 V etwas zu niedrig nachzudenken. Wird die Spannung immer noch als hoch angesehen? Ich würde bei den 15 kΩ bleiben.
bearbeiten
Sie erwähnen eine Automobilumgebung, und dann benötigen Sie zusätzlichen Schutz. Die 12 V des Autos sind nie ganz 12 V, aber meistens höher, mit Spitzen, die mehrere Volt über den nominalen 12 V liegen. (Eigentlich sind es eher 12,9 V bei 2,15 V pro Zelle.) Sie können einen 5-V-Zener platzieren Diode parallel zu R2, und dies sollte jede Spannung abschalten, die höher als die 5 V des Zeners ist. Eine Zenerspannung variiert jedoch mit dem Strom, und bei dem niedrigen Eingangsstrom, den die Widerstände Ihnen geben, wird sie bei niedrigeren Spannungen abgeschaltet. Eine bessere Lösung wäre eine Schottky-Diode zwischen dem Eingang des Arduino und der 5-V-Versorgung. Dann führt jede Eingangsspannung über etwa 5,2 V dazu, dass die Schottky-Diode leitet, und die Eingangsspannung wird auf 5,2 V begrenzt. Dafür benötigen Sie wirklich eine Schottky-Diode, eine herkömmliche PN-Diode hat eine 0.
Besser
Michaels Optokoppler ist eine gute Alternative, wenn auch etwas teurer. Sie werden häufig einen Optokoppler verwenden, um den Eingang vom Ausgang zu isolieren, aber Sie können ihn auch verwenden, um einen Eingang wie hier zu schützen.
Funktionsweise: Der Eingangsstrom leuchtet die interne Infrarot-LED auf, was einen Ausgangsstrom durch den Fototransistor bewirkt. Das Verhältnis zwischen Eingangs- und Ausgangsstrom wird als CTR (Current Transfer Ratio) bezeichnet. Der CNY17 hat eine minimale CTR von 40 %, was bedeutet, dass Sie einen 10-mA-Eingang für einen 4-mA-Ausgang benötigen. Kommen wir zum 10-mA-Eingang. Dann sollte R1 (12 V - 1,5 V) / 10 mA = 1 kΩ sein. Der Ausgangswiderstand muss bei 4 mA einen Abfall von 5 V verursachen, dann sollten das 5 V / 4 mA = 1250 Ω sein. Es ist besser, einen etwas höheren Wert zu haben, die Spannung wird sowieso nicht mehr als 5 V abfallen. Ein 4,7 kΩ begrenzt den Strom auf etwa 1 mA.
Vcc ist die 5-V-Versorgung des Arduino, Vout geht an den Eingang des Arduino. Beachten Sie, dass der Eingang umgekehrt wird: Er ist niedrig, wenn 12 V vorhanden sind, hoch, wenn dies nicht der Fall ist. Wenn Sie das nicht möchten, können Sie die Position des Ausgangs des Optokopplers und des Pull-up-Widerstands vertauschen.
Bearbeiten 2
Wie löst die Optokoppler-Lösung das Überspannungsproblem nicht? Der Widerstandsteiler ist ratiometrisch: Die Ausgangsspannung ist ein festes Verhältnis des Eingangs. Wenn Sie 5 V Ausgang bei 12 V Eingang berechnet haben, ergeben 24 V Eingang 10 V Ausgang. Nicht OK, daher die Schutzdiode.
In der Optokopplerschaltung können Sie sehen, dass die rechte Seite, die mit dem Eingangspin des Arduino verbunden ist, überhaupt keine Spannung höher als 5 V hat. Wenn der Optokoppler eingeschaltet ist, zieht der Transistor Strom, ich habe im obigen Beispiel 4 mA verwendet. Ein 1,2 kΩ verursacht aufgrund des Ohmschen Gesetzes (Strom mal Widerstand = Spannung) einen Spannungsabfall von 4,8 V. Dann beträgt die Ausgangsspannung 5 V (Vcc) - 4,8 V über dem Widerstand = 0,2 V, das ist ein niedriger Pegel. Wenn der Strom niedriger wäre, wäre auch der Spannungsabfall kleiner und die Ausgangsspannung würde steigen. Ein Strom von 1 mA beispielsweise verursacht einen Abfall von 1,2 V, und der Ausgang beträgt 5 V - 1,2 V = 3,8 V. Der Mindeststrom ist Null. Dann haben Sie keine Spannung über dem Widerstand und der Ausgang beträgt 5 V. Das ist das Maximum.
Was ist, wenn die Eingangsspannung zu hoch wird? Sie schließen versehentlich eine 24-V-Batterie statt 12 V an. Dann verdoppelt sich der LED-Strom, bildet 10 mA auf 20 mA. Die CTR von 40 % verursacht einen Ausgangsstrom von 8 mA anstelle der berechneten 4 mA. 8 mA durch den 1,2-kΩ-Widerstand wären ein Abfall von 9,6 V. Aber bei einer 5-V-Versorgung wäre das negativ, und das ist unmöglich; Sie können hier nicht unter 0 V gehen. Während der Optokoppler sehr gerne 8 mA ziehen würde, begrenzt der Widerstand dies. Der maximale Strom fließt, wenn die vollen 5 V an ihm anliegen. Der Ausgang ist dann wirklich 0 V und der Strom 5 V / 1,2 kΩ = 4,2 mA. Unabhängig davon, welches Netzteil Sie anschließen, wird der Ausgangsstrom nicht höher als dieser Wert, und die Spannung bleibt zwischen 0 V und 5 V. Kein weiterer Schutz erforderlich.
Wenn Sie eine Überspannung erwarten, müssen Sie prüfen, ob die LED des Optokopplers den erhöhten Strom verarbeiten kann, aber die 20 mA sind für die meisten Optokoppler kein Problem (sie sind oft auf maximal 50 mA ausgelegt), und außerdem ist das doppelt so hoch Eingangsspannung, was IRL wahrscheinlich nicht passieren wird.
Eine gute Möglichkeit, das 12-V-Schaltsignal zu isolieren, besteht darin, es durch einen Optokoppler zu leiten. Die Schaltung würde ähnlich wie folgt konfiguriert werden.
Vi im Diagramm stellt die 12 V in Ihrem Stromkreis dar, die von Ihrem Schalter (S1) geschaltet werden. Wählen Sie R1, um den Strom durch den D1-Teil des Optokopplers auf einen Wert zu begrenzen, der innerhalb der Nennwerte der ausgewählten Komponente liegt.
Optokoppler sind nicht die schnellsten Komponenten der Welt, insbesondere nicht die billigsten, aber im Fall einer langsamen Aktion wie einem von Menschen gesteuerten Schalter spielt die Geschwindigkeit des Kopplers keine Rolle.
Verwenden Sie für Spannungsunabhängigkeit einen Widerstand, um den Strom zu regulieren, und einen Zener, um die Spannung zu regulieren, wie folgt:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Mit einem 30k-Widerstand gibt dies 4,99 V aus und verbraucht nur etwa 234 uA bei 12 Vin.
In diesem Fall:
R1 verbraucht 234 µA x (12 V - 4,99 V) = 1,64 mW
D1 verbraucht 234 µA x 4,99 V = 1,17 mW
Gesamtstromverbrauch: 2,81 mW (bei hohem Eingang)
Sie können auch eine Diode und einen Widerstand wie folgt verwenden:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Ich würde den Widerstand ziemlich steif machen, sonst werden Sie viel Strom aus dieser Schaltung ziehen. Das Schöne an dieser Schaltung (im Vergleich zum Spannungsteiler) ist, dass es egal ist, ob Ihre ursprüngliche Spannung 12 V, 14 V oder 15 V beträgt: Sie beträgt unabhängig davon 5 V (eigentlich 5,2-5,3 V, je nach Diode). die Eingangsspannung.
Etwas spät, aber in meinem Auto verwende ich den LM7805. Funktioniert super und ist günstig.
KyranF