PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo über Transistor steuern



hirnfrei
22.11.2016, 11:11
Mahlzeit!

Nachdem ich nun zwei Arduino Nano gegrillt habe, während ich einen hitec HS-805MG direkt angesteuert habe, will ich sicherheitshalber einen Transistor dazwischen klemmen. Ich habe schon ein paar Schaltungen mit dem Arduino und einem Transistor gebaut, die bisher auch sehr gut funktioniert haben. Lüfter, Motoren, einen Glühdraht der echt viel Amper frisst.

Hier bin ich nun zu dämlich irgendwie. Solange der Servo nicht dran steckt funktioniert die Schaltung einwandfrei. Ich kann Befehle über Bluetooth senden und empfangen. Alles prima. Sobald ich aber den Servo dran stecke geht das Bluetooth-Modul sofort aus.

Ich hab das Ganze mal mit Fritzing nachgebaut. Dabei hat der Akku 8,4 Volt, der einzelne Widerstand hat 33 Ohm, das Paar jeweils 39 Ohm. Nachgemessen ergibt sich beim Spannungsteiler eine Spannung knapp 6 Volt. Also bis dahin alles wie geplant. Der Transistor ist ein N-Kanal IRLZ24N.

Was zur Hölle mache ich da nun falsch? Oder ist der Servo im Eimer?

oberallgeier
22.11.2016, 12:13
.. Sobald ich aber den Servo dran stecke geht das Bluetooth-Modul sofort aus .. Nachgemessen ergibt sich beim Spannungsteiler eine Spannung knapp 6 Volt. Also bis dahin alles wie geplant .. Was zur Hölle mache ich da nun falsch? Oder ist der Servo im Eimer?Was Du falsch machst? Vermutlich Messen zum falschen Zeitpunkt. Will sagen: vermutlich sind die genannten knappen 6 Volt am Spannungsteiler bevor der Servo eingeschaltet wird. Ich würde mal nachmessen NACHdem der Servo eingeschaltet wurde. Vorher aber bitte jede Erinnerung an Kirchhoff und seine Sätze ausschalten. Lass mich raten: sobald der Motor eingeschaltet wird, sind am Knoten zwischen dem 33R und dem (ersten) 39R weniger als vier Völtchen. Denn so ein Servo hat schon Stromhunger ; beim Einschalten will der schon mal reichlich über ein Ampere. Warum? Weil Kirchhoff und Ampère üble Gesellen sind, die so manche Schaltung stören.

hirnfrei
22.11.2016, 12:35
Wo du recht hast...

Also für den Servo einen neuen Spannungsteiler reinbauen?

BMS
22.11.2016, 12:48
Hallo,
lieber einen Spannungsregler wie den 7805 oder 7806 verwenden anstatt einem Spannungsteiler.
Der Transistor ist im grunde genommen völlig unnötig, als Schutz reicht ein Widerstand. Die PWM-Steuerleitung muss ja nur ?mA treiben können.
Viele Grüße,
Bernhard

hirnfrei
22.11.2016, 12:57
Wie jetzt? Ein Widerstand reicht? Es geht weniger darum, was der Servo will wie mehr was der Arduino hergeben kann ohne abzubrennen.

shedepe
22.11.2016, 13:36
Jetzt fassen wir noch mal zusammen was alles gesagt wurde:
1. Ein Spannungsteiler ist komplett ungeeignet um eine feste niedrigere Ausgangsspannung einzustellen. Warum: Es gilt wie immer U = R * I. Die Spannung über dem Spannungsteiler ist also abhängig vom Strom der fließt. Die Spannung wird bei einem großen Strom kleiner, wie z.B: dann wenn der Servo einschaltet. Verwende lieber einen Linearregler (7085) oder einen Schaltregler (LT2576). Der Linearregler kann als einstellbarer Widerstand angesehen werden, der sich dem Strom anpasst.
2. Wann brauchst du einen Transistor um den Servo anzusteuern mit einem Mikrocontroller: Dann wenn der Servo (oder generell das Endgerät) einen höheren High Pegel als dein Mikrocontroller besitzt (In der Regel 3,3V oder 5V). Dann benötigst du den Transistor Pegelwandler. Der andere Fall ist wenn der Servo (oder das Endgerät) einen höheren Strom zieht als dein Mikrocontroller Pin liefern kann (in der Regel 20mA bis 60mA). Dann arbeitet der Transistor als Treiberstufe.
3. Warum reicht in dem Fall doch ein Widerstand um den Ausgangspin zu schützen: Dein Servo sollte auf dem Steuereingang nicht mehr als 20mA ziehen und wenn doch kann der Strom durch einen Widerstand begrenzt werden. Dadurch wird zwar das Signal etwas abgeflacht (Wir erinnern uns an U = R * I ) weil man einen Spannungsabfall am Widerstand hat. Da die meisten Servos jedoch ein digitales Signal einlesen (Ein PWM Signal) ist das nicht so tragisch da auch kleinere Pegel als High erkannt werden (Je nach Technologie ab 2,9V bis 3,9V )

hirnfrei
22.11.2016, 13:48
Da ich den Servo mit 6V betreiben will also doch einen Transistor. Habe ich den nicht umsonst vorgesehen ^^.

Verwende dann jetzt auch einen Spannungsregler. Wollte ich eigentlich nur deshalb nicht, da das Bauteil, welches ich habe, nicht auf die Platine passt. Aber wie ich ja jetzt gelernt habe, es macht mehr Sinn.

Dankeschön!

shedepe
22.11.2016, 14:32
Wenn du dir meinen Beitrag komplett durchliest dann kommt irgendwo ein Abschnitt weshalb man den Transistor doch weglassen kann ;)

hirnfrei
22.11.2016, 15:03
Kann. Das habe ich schon verstanden. Im übrigen ist der Servo, welchen ich eigentlich einsetzen wollte, wohl im Eimer. Habe es jetzt mit einem anderen versucht und siehe da, klappt perfekt.

Allerdings ist seltsam, wenn ich ein Update meines Sketch auf den Arduino aufspiele schlägt der Servo immer kurz voll aus, wobei am Signal fast 3A ankommen. Warum auch immer das so ist. Da ich ja sowieso einen Sockel auf die Platine gelötet habe und es gut funktioniert bleibt das jetzt auch so. Du sagtest ja, man kann ihn weglassen. Man muss es nicht ^^

Sisor
22.11.2016, 16:18
Allerdings ist seltsam, wenn ich ein Update meines Sketch auf den Arduino aufspiele schlägt der Servo immer kurz voll aus, wobei am Signal fast 3A ankommen. Warum auch immer das so ist.

Die Servo-Bibliothek kann nicht wissen, wo der Servo beim Einschalten gerade ist. Wenn du servo.attach(...) aufrufst, wird das PWM-Signal gesendet, und der Servo ist aktiv. Er startet bei 0°. Wenn du einen anderen Startwinkel willst, schreib in der setup-Routine vor attach() noch write() mit Wuschstartwinkel.

hirnfrei
22.11.2016, 16:38
Super! Danke. Probiere ich aus!

oberallgeier
09.04.2018, 17:15
Hallo hirnfrei - Dein Postfach ist voll.