Es ist eine lange Geschichte, aber ich nahm ein RC-Auto auseinander und wollte den Arduino verwenden analogRead()
, um die Werte meiner Motoren und Lenkung zu erhalten. Ich habe mit meinem Multimeter gemessen, dass die Spannung in meinem ferngesteuerten Auto von -6 V bis 6 V reicht.
Der Arduino unterstützt jedoch nur das Lesen von maximal 0 V bis 5 V. Gibt es eine Möglichkeit, die -6 V und + 6 V in 0 V und 5 V umzuwandeln? Ich habe gehört, dass dies mit einem Operationsverstärker möglich ist. Einige Leute haben mir auch gesagt, ich solle einen Spannungsteiler verwenden. Mit anderen Worten, wenn ich das RC-Auto nicht steuere, sollte der Arduino 2,5 Volt sehen.
Jedenfalls ist mir nicht ganz klar, wie ich das machen würde. Kann mir bitte jemand einen geeigneten Operationsverstärker mit einer Schaltung für dieses spezielle Szenario empfehlen?
ODER, wenn möglich, kann mir jemand zeigen, wie man die negative und positive Spannung mit zwei Arduino-Pins liest? Wenn beispielsweise -6 V gegeben sind, würde Analog Pin 0 1023 zurückgeben. Wenn 0 V gegeben sind, würden beide Analog Pins 0 und 1 0 sagen. Und wenn +6 V gegeben sind, dann würde Analog Pin 1 1023 zurückgeben Wie kann ich eine Schaltung bauen, die so funktioniert?
Ich wäre Ihnen dankbar, wenn Sie einen Schaltplan dafür haben. Vielen Dank!
Drei Standardwiderstände erledigen die Arbeit, vorausgesetzt, der Motor sieht -6 V bezogen auf Masse und nicht bezogen auf die andere Motorklemme.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Wenn Vm von -6 bis 6 V variiert, variiert der Ausgang von 0 bis 4,9 V.
Wenn der Motor von einer vollständigen H-Brücke angetrieben wird und Sie möchten, dass Ihr Arduino den gleichen Massebezug wie der Rest des Autos hat, können Sie Folgendes verwenden:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Beide Ausgänge reichen von 0 .. 2V4, und Sie sollten die interne Referenzspannung von Arduino auf 2V56 einstellen. Indem Sie beide Ausgänge an ihren eigenen analogen Eingang anschließen, können Sie die Motorspannung berechnen, indem Sie sie subtrahieren. Die Kondensatoren dienen dazu, PWM-Signale zu mitteln, damit sie vom ADC gemessen werden können.
Hier ist eine Lösung ohne Operationsverstärker. Dafür benötigen Sie einen zusätzlichen Eingangspin am Arduino.
Wenn der Eingangsstift 0 liest, ist die Spannung vom ADC positiv. Sonst ist die Spannung negativ.
Durch den Spannungsabfall am Brückengleichrichter haben Sie das Problem der Absenkung von 6V auf 5V gelöst. Sie haben jetzt maximal 6 - 2 * 0,7 = 4,6 V. D5 ist optional und dient nur der Sicherheit.
Der Nachteil ist, dass die Spannung größer als +1,4 V oder kleiner als -1,4 V sein muss, um gemessen zu werden.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Anindo Ghosh
Lösungshacker
Chris Stratton
David Tweed