Wird diese Servo-Stall-Erkennungsschaltung einen Arduino beschädigen?

Ich bin Teil einer Gruppe, die ein Projekt für die Schule baut, das einen Servo beinhaltet. Wir haben eine Schaltung für unseren Arduino erstellt, um zu erkennen, wann das Servo unter starker Last / Stalling steht. Die Schaltung, die wir gebaut haben, erkennt Strömungsabrisse recht gut, aber wir sind uns nicht sicher, was Schaltungsschäden angeht.

Wir wissen, dass es im Internet noch andere Schaltungen zur "Stall-Erkennung" gibt. Wir wollten jedoch eine generische Form der Erkennung, die mit einer Methode erreicht werden kann, die:

  • Verwendet übliche Komponenten, die wir herumliegen hätten (Widerstände, Kappen, Dioden)
  • Benötigt keine Hochleistungs-Shunt-Widerstände
  • Benötigt keine ICs
  • Verringert nicht die Leistung des Servos

Hier ist, was wir haben:Servo-Stall-Erkennungsschaltung

Die + Leitung des Servo-PS (V1) geht durch einen 75-kΩ-Widerstand und dann zu einem analogen Eingangspin am Arduino (A0), wobei eine 0,1-μF-Keramikkappe auf Masse geht und eine Schottky-Diode von Masse auf A0.

Bei Bewegung des Servos ohne Zusatzlast wurde der Strom mit ca. 100mA gemessen. Unter starker Belastung zieht es etwa 300mA. Ein vollständiger Stillstand beträgt etwa 500 mA.

Wenn das Servo unter geringer Last steht, zeigt der analoge Pin 1023 von 1023 an, mit einem kleinen Sprung nach unten bis etwa 900. Wenn das Servo unter hoher Last steht, ist das Springen stark. Unter einem vollständigen Strömungsabriss bleibt der analoge Wert bei etwa 850 mit wenig Sprung. Offensichtlich waren diese Messwerte nicht schwer für die Stall-Erkennung zu verwenden.

Zum Schutz der Komponenten bin ich mit Flyback oder EMF nicht sehr vertraut. In Bezug auf Servos konnte ich nichts darüber finden, nur normale Motoren, fast so, als ob sich die Leute nicht um Servos kümmern würden. Es scheint, dass einige Leute glauben, dass die interne Schaltung von Servos vor Flyback / EMF schützt ...?
Die Diode wurde zum Flyback-Schutz hinzugefügt, aber ich weiß nicht, ob sie bei diesem Setup wirklich hilft.

Wir sind uns auch nicht sicher, wie sich ein Servo in Bezug auf Widerstand und Spannungsabfall unter Last verhalten soll. Die Stall-Erkennung wurde "vor" dem Servo in der Schaltung platziert, um zu vermeiden, dass die Leistung des Servos durch einen Widerstand in Reihe mit ihm reduziert wird, und um zu vermeiden, dass ein Shunt-Widerstand mit hoher Leistung bestellt werden muss. Ich kann nicht persönlich sagen, warum diese Erkennung funktioniert, aber sie funktioniert.

Können wir diese Schaltung trotzdem so verwenden, wie sie ist, oder laufen wir Gefahr, den Arduino zu beschädigen? Wenn die Schaltung aus Sicherheitsgründen modifiziert werden muss, was wäre eine minimale Möglichkeit, dies mit gemeinsamen Komponenten zu tun?

Sie haben tatsächlich einen Shunt-Widerstand in Ihrer Schaltung - er besteht aus dem Innenwiderstand der 5V / 2A-Servostromversorgung.

Antworten (1)

Nein, Sie werden Ihren Arduino mit diesem Setup wahrscheinlich nicht beschädigen. Tatsächlich ist die Diode wahrscheinlich unnötig, da das RC-Filter zunächst alle Transienten stark begrenzt. Der Widerstand allein begrenzt den Strom durch den Pin auf nicht mehr als 1 mA für jede anhaltende Spannung im Bereich von ±75 V.

Das größere Problem ist, dass dieses ganze Schema auf der Tatsache beruht, dass die V1-Quelle einen bestimmten Wert der Quellenimpedanz hat und Sie den Spannungsabfall über dieser Impedanz messen, um auf den vom Servo gezogenen Strom zu schließen. Wenn Sie zu einer anderen Quelle wechseln (höhere Stromkapazität, niedrigere Quellenimpedanz), könnte das Ganze nicht mehr funktionieren.

Aus diesem Grund verwenden die meisten veröffentlichten Schemata einen expliziten Strommesswiderstand, um diese Abhängigkeit zu beseitigen und sicherzustellen, dass die Schaltung mit jeder Quelle funktioniert. Wenn Sie sich wirklich Sorgen um den Leistungsverlust über einen solchen Widerstand machen, können Sie stattdessen einen Hall-Effekt-Stromsensor verwenden. Dafür stehen mehrere kommerzielle Geräte zur Verfügung.

Gibt es eine Möglichkeit, einen Strommesswiderstand zu verwenden, ohne dass Widerstände mit einer Nennleistung von über 1 W und minimaler Verlustleistung für das Servo erforderlich sind?
Sicher, errechnen Sie einfach die Zahlen, basierend darauf, wie viel Strom Sie zulassen möchten und wie viel Spannungsabfall (Verlustleistung) Sie tolerieren können. Zum Beispiel entspricht 0,5 V bei 500 mA 1,0 Ohm (dies entspricht dem, was Sie gerade messen), und das verbraucht nur 0,25 W im Widerstand. Sie könnten wahrscheinlich eine zuverlässige Erkennung bei halber Spannung erhalten, verwenden Sie also einen 500-Milliohm-Widerstand, der nur 125 mW abführt. (Wählen Sie ein 250-mW-Gerät für einen Designspielraum von 2:1.)
+1 4 Jahre später :-)\