Forum: Mikrocontroller und Digitale Elektronik Arduino Uno & Gleichstrommotor


von Dennis C. (bommis)


Angehängte Dateien:

Lesenswert?

Hallo,

es ist mir furchtbar peinlich, weil es zu dem Thema unzählige Einträge 
und Internethilfen gibt, allerdings scheine ich trotzdem etwas nicht zu 
verstehen, weshalb ich hier um Hilfe bitte:

Ich mache gerade die ersten Schritte mit einem Arduino Uno und möchte 
gerne diverse Gleichstrommotoren schalten (erstmal nur an und aus). Ich 
besitze zwei Gleichstrommotoren, die ich aus alten Geräten ausgebaut 
habe. Um wenigstens etwas über die Motoren in Erfahrung zu bringen, habe 
ich sie an eine 6V-Spannungsquelle angeschlossen und den Strom gemessen, 
der während des Betriebes floss.

Motor 1: 0,2 A
Motor 2: 0,7 A


Dann habe ich eine Schaltung nach der Skizze im Anhang aufgebaut und 
folgende Komponenten verwendet:

- Motor 1
- Transistor: 2N2222 mit hfe = 50 (im Datenblatt steht hfe max = 75)
- Basisvorwiderstand errechnet durch:

IB = 0,2 A / 50   Rb = (4,3 V)/IB ~ 1000 Ohm

Bei den 4,3 Volt handelt es sich um die vom Mikrocontroller gelieferte 
Spannung abzüglich der Spannung Basis-Emitter von 0,7 Volt.

Soweit so gut, die Schaltung funktioniert einwandfrei.

Nach dem Wechsel auf Motor 2 (und Neuberechnung des Basiswiderstandes) 
wird der Transistor sehr heiß, und der Motor springt auch nicht an. Im 
Datenblatt steht aber auch IC = 600 mA, also ging ich davon aus, dass 
ich an der Grenze dieses Transistors angelangt war.

Ich habe deshalb einen Transistor BC637 gekauft. Laut Datenblatt ist der 
bis ca. 1 A  geeignet. Für den Fall, dass etwas schiefgeht, habe ich 
davon gleich 3 besorgt.

Die Schaltung ließ ich weitgehend unverändert, allerdings berechnete ich 
den Basisvorwiderstand neu und setzte natürlich den neuen Transistor 
ein. Im Datenblatt ist ein hfe von maximal 160 angegeben, ich habe 
einfach mal mit 80 gerechnet. Damit kam ich auf einen Wert von ca. 500 
Ohm.

Leider bewegt sich der Motor noch immer kein Stück, der Transistor wird 
aber auch nicht warm. Ich habe dann probehalber das in der Skizze 
gezeigte Amperemeter angeschlossen und festgestellt, dass ein Strom von 
0,04 A fließt. Ich habe dann probehalber die Basisvorwiderstände 
variiert (150 Ohm und 1000 Ohm) um zu prüfen, ob sich am Kollektorstrom 
etwas ändert. Der blieb aber konstant bei 0,04 A.


Nun zu meinen Fragen:

- Warum stellt sich bei den verwendeten Komponenten ein Strom von nur 
0,04 A ein? Ich wollte doch auf 0,7 A kommen...
- Warum ist dieser Wert nicht abhängig vom Basiswiderstand? Durch 
Änderung des Widerstandes ändere ich doch gerade Ib und es gilt doch: Ic 
= hfe * Ib oder was habe ich da nicht verstanden?


Danke im Voraus für die Hilfe

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ich schätze, der Transistor ist kaputt, weil Du auf die unbedingt 
notwendige Freilaufdiode verzichtet hast.

Weiterhin darfst Du die maximalen Leistungsangaben der Datenblätter 
nicht ganz so blauäugig annehmen. Wenn da 1A steht, dann ist das der 
maximale Strom und der gilt in aller Regel nur entweder bei 
außergwöhnlicher Kühlung oder nur sehr kurzzeitig unter normalen 
Bedingungen.

Du musst auf Folgendes achten:

Im Datenblatt steht drin, wieviel Spannung im Lastkreis am Transistor 
abfällt. Collector-emitter saturation voltage 500mV.

Multipliziere das mal mit den angeblich maximal zulässigen 1A, dann hast 
Du 0,5 Watt Verlustwärme. Transistoren mit diesem kleinen Gehäuse 
vertragen unter realen Umständen nur halb so viel. Dass heisst, der 
Transistor wird ratz fatz so heiß, dass er kaputt geht.

Selbst mit den 700mA ist er noch überfordert. Wobei der Motor beim 
Anlaufen sicher viel mehr Strom zieht. Bis der Motor mit Anlaufen fertig 
ist, könnte der Transistor längst geschmolzen sein.

Du brauchst einen Transisotr mit Kühlkörper-Anschluss (z.B. im TO-220 
Gehäuse) und einen kleinen Kühlkörper. Oder einen MOSFET Transistor wie 
den IRLU024N, dann geht's auch ohne Kühlkörper, denn der hat weniger 
Verlustspannung im Lastkreis also auch weniger Verlustwärme.

von Jürgen S. (jurs)


Lesenswert?

Dennis C. schrieb:
> Danke im Voraus für die Hilfe

Zum ersten mal ist der "Nennstrom" eines Motors nicht identisch mit dem 
"Maximalstrom", den er ziehen kann. Der Maximalstrom ist viel höher, 
z.B. beim Anlaufen und Beschleunigen.

Und zum zweiten killst Du mit Deiner Schaltung den Transistor, weil Du 
die Freilaufdiode in der Schaltung vergessen hast.

Wenn Du "induktive Gleichstromlasten" schaltest, mußt Du immer eine 
Freilaufdiode antiparallel zum induktiven Verbraucher geschaltet haben.

Siehe Diode im Schaltbild hier:
http://www.dummies.com/how-to/content/how-to-spin-a-dc-motor-with-the-arduino.html

Siehe auch Wikipedia-Artikel: http://de.wikipedia.org/wiki/Schutzdiode

von Mike (Gast)


Lesenswert?

Dennis C. schrieb:
> Ic = hfe * Ib oder was habe ich da nicht verstanden?

Du willst den Transistor als Schalter betreiben. Dafür musst er mit 
deutlich höherem Basisstrom gesteuert werden.

http://www.elektronik-kompendium.de/sites/bau/1506161.htm

von Dennis C. (Gast)


Lesenswert?

Danke für die Hinweise. Ich versuche es mal mit der Diode und ggf. mit 
einem geeigneteren Transistor und melde mich dann wieder :)

von Dennis C. (bommis)


Lesenswert?

Hallo,

Ist ja schon eine Weile her, aber inzwischen läuft alles. Habe einen 
Bd241 gekauft, und die freilaufdiode integriert.

Danke für  die Hilfe.

von MaWin (Gast)


Lesenswert?

Dennis C. schrieb:
> Ist ja schon eine Weile her, aber inzwischen läuft alles. Habe einen
> Bd241 gekauft, und die freilaufdiode integriert.

Immer noch schlecht, weil der BD241 zwar 3A aushält, aber nur noch eine 
miese Stromverstärkung hat (weit schlechter als BD137 oder BD237).

Um 3A schalten zu können möchte der BD241 600mA Basisstrom sehen. So 
viel liefert natürlich kein Mikrocontrollerausgang. Der liefert eher 
20mA, was zu geschalteten 100mA führt. Deine Motoren brauchen mehr. 
Daher ist die Dimensionierung schlecht.

Man kann nun entweder einen Transistor vorschalten

     +5V      +9V
      |        |
uC --|< BC547 Motor mit Freilaufdiode
      |E       |
      +--4R7--|<
               |E
              GND

oder man nimmt einen etwas uneffektiveren Darlingtontransistor

           +9V
            |
          Motor mit Freilaufdiode
            |
uC --100R--|< BD675
            |E
           GND

oder man greift gleich zu einem LogocLevel N Kanal MOSFET

        +9V
         |
       Motor mit Freilaufdiode
         |
uC --+--|I IRLZ34
     |   |S
    10k  |
     |   |
    GND GND

der schaltet dann problemlos 4A ohne Kühlung und 25A mit Kühlung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.