Ich erstelle einen Controller für ein 12-V-System mit einem Arduino Uno-Mikrocontroller. Für die Ausgänge verwende ich einen Relaisschirm zum Schalten der 12-V-Komponenten. Ich habe einen 12-V-Kippschalter, der einige 12-V-Komponenten im System einschaltet, und ich möchte ein Auslösesignal dieses Schalters verwenden, um es an einen Arduino-Digitaleingang zu senden. Ich weiß, dass der Arduino maximal 5 V verarbeiten kann. Was wäre der beste Weg, um die vom Schalter kommenden 12 V auf die 5 V für den Eingang zu reduzieren?
EDIT: Das System ist für den Einsatz in einem Auto. Müsste die Stromstärke der Autobatterie irgendwie abgesenkt werden, um die Bauteile nicht zu sprengen?
Antworten:
Gute Nachrichten! Das wird billig! :-)
Ein einfacher Widerstandsteiler bringt die 12 V auf die 5 V, die ein Arduino verarbeiten 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. Jetzt ist 14 kΩ kein Standardwert, aber 15 kΩ. Ihre Eingangsspannung beträgt 4,8 V anstelle von 5 V, aber das Arduino sieht das immer noch als hohen Pegel an. Sie haben auch ein bisschen Headroom, falls die 12 V etwas zu hoch sein sollten. Sogar 18 kΩ geben Ihnen immer noch ausreichend hohe 4,3 V, aber dann müssen Sie anfangen, über die 12 V ein bisschen 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 benötigen dann zusätzlichen Schutz. Die 12 V des Autos sind nie ganz 12 V, aber die meiste Zeit höher, mit Spitzenwerten von mehreren Volt über den Nennspannungen von 12 V. (Die Nennspannung entspricht eher 12,9 V bei 2,15 V pro Zelle.) Sie können einen 5 V-Zener einsetzen Diode parallel zu R2, und dies sollte jede Spannung abschalten, die höher als 5 V des Zeners ist. Eine Zenerspannung ändert sich jedoch mit dem Strom, und bei dem niedrigen Eingangsstrom, den die Widerstände Ihnen geben, wird sie bei niedrigeren Spannungen abschalten. Eine bessere Lösung wäre eine Schottky-Diode zwischen dem Arduino-Eingang und der 5-V-Versorgung. Bei einer Eingangsspannung von mehr als 5,2 V leitet die Schottky-Diode, und die Eingangsspannung ist auf 5,2 V begrenzt. Hierzu 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. Sie können ihn jedoch auch verwenden, um einen Eingang wie hier gewünscht zu schützen.
So funktioniert es: Der Eingangsstrom leuchtet der internen Infrarot-LED auf, die einen Ausgangsstrom durch den Fototransistor verursacht. 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. Lassen Sie uns für den 10-mA-Eingang gehen. Dann sollte R1 (12 V - 1,5 V) / 10 mA = 1 kΩ sein. Der Ausgangswiderstand muss bei 4 mA einen 5-V-Abfall verursachen, dann sollte dieser 5 V / 4 mA = 1250 Ω betragen. Es ist besser, einen etwas höheren Wert zu wählen, da die Spannung ohnehin nicht mehr als 5 V abfällt. Mit 4,7 kΩ wird der Strom auf ca. 1 mA begrenzt.
Vcc ist die 5-V-Versorgung des Arduino, Vout geht an den Eingang des Arduino. Beachten Sie, dass der Eingang invertiert wird: Er ist niedrig, wenn 12 V anliegen, und hoch, wenn er nicht anliegt. Wenn Sie das nicht möchten, können Sie die Position des Optokopplerausgangs und des Pull-up-Widerstands vertauschen.
edit 2
Wie löst die Optokopplerlösung das Überspannungsproblem nicht? Der Widerstandsteiler ist ratiometrisch: Die Ausgangsspannung ist ein festes Verhältnis zum Eingang. Wenn Sie für 5 V out bei 12 V in gerechnet haben, ergibt 24 V in 10 V out. Nicht OK, daher die Schutzdiode.
In der Optokopplerschaltung sehen Sie, dass die rechte Seite, die mit dem Eingangspin des Arduino verbunden ist, überhaupt keine höhere Spannung als 5 V aufweist. Wenn der Optokoppler eingeschaltet ist, zieht der Transistor Strom. Im obigen Beispiel habe ich 4 mA verwendet. 1,2 kΩ verursachen einen Spannungsabfall von 4,8 V aufgrund des Ohmschen Gesetzes (Strom mal Widerstand = Spannung). 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 geringer und die Ausgangsspannung steigt an. Ein Strom von 1 mA verursacht beispielsweise einen Abfall von 1,2 V, und der Ausgang beträgt 5 V - 1,2 V = 3,8 V. Der Mindeststrom ist Null. Dann liegt am Widerstand keine Spannung an und der Ausgang ist 5 V. Das ist das Maximum.
Was ist, wenn die Eingangsspannung zu hoch wird? Sie haben versehentlich eine 24-V-Batterie anstelle von 12 V angeschlossen. Dann verdoppelt sich der LED-Strom von 10 mA auf 20 mA. Die 40% CTR verursacht einen Ausgangsstrom von 8 mA anstelle der berechneten 4 mA. 8 mA über 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 niedriger als 0 V gehen. Während der Optokoppler sehr gerne 8 mA ziehen würde, wird der Widerstand dies begrenzen. Der maximale Strom durch ihn ist, wenn die vollen 5 V daran 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 und die Spannung bleibt zwischen 0 V und 5 V. Es ist kein weiterer Schutz erforderlich.
Wenn Sie Überspannung erwartet werden Sie überprüfen , ob die LED des Optokopplers verarbeiten kann der erhöhte Strom, aber die 20 mA wird kein Problem für die meisten Optokoppler sein (sie sind oft bei 50 mA maximal bewertet), und außerdem, dass die für Doppel Eingangsspannung, die wahrscheinlich nicht IRL passieren wird.
quelle
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 sein.
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 Pegel zu begrenzen, der innerhalb der Nennwerte der von Ihnen ausgewählten Komponente liegt.
Optokoppler sind nicht die schnellsten Komponenten der Welt, insbesondere die billigsten, aber für den Fall einer langsamen Aktion wie bei einem vom Menschen gesteuerten Schalter ist die Geschwindigkeit des Kopplers von geringer Bedeutung.
quelle
Sie können auch eine Diode und einen Widerstand wie folgt verwenden:
simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab
Ich würde den Widerstand etwas ziemlich steif machen, sonst verbrauchen Sie viel Strom von dieser Schaltung. 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 von der Diode 5 V (tatsächlich 5,2 bis 5,3 V) die Eingangsspannung.
quelle
Verwenden Sie zur Spannungsunabhängigkeit einen Widerstand, um den Strom zu regeln, und einen Zener, um die Spannung zu regeln:
simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab
Bei einem 30k-Widerstand werden 4,99 V ausgegeben und nur etwa 234 uA bei 12 V in verwendet.
In diesem Fall
verbraucht R1 234 uA x (12 V - 4,99 V) = 1,64 mW.
D1 verbraucht 234 uA x 4,99 V = 1,17 mW
Gesamtleistungsaufnahme: 2,81 mW (bei hohem Eingang)
quelle
Ein bisschen spät, aber in meinem Auto benutze ich den LM7805. Funktioniert super und ist günstig.
quelle