Forum: Analoge Elektronik und Schaltungstechnik PC-Lüfter (BL-Motor) - Spulen direkt ansteuern


von Christoph (Gast)


Angehängte Dateien:

Lesenswert?

Morgen!

Ich wollte zum Verstänis einen bürstenlosen Motor mit einem AVR 
ansteuern. (D.h. nur die Spulenbestromung, die Lüfterelektronik wird 
nicht verwendet). Da ich (noch) keine Motoren habe habe ich einen 
PC-Lüfter zerlegt.

Dieser PC-Lüfter hat - wie die meisten vermute ich - nur zwei Phase.
(Die Spulen sind in Reihe geschaltet mit einem Mittelabgriff zwischen 
den Spulen - siehe Plan unter der Tabelle. Die Bezeichnung A,B,Z sind 
willkürlich gewählt).

Dafür habe drei Gegentaktendstufen aufgebaut um die beiden Spulen in 
beide Richtungen zu bestromen.

Die Elektronik funktioniert soweit wie sie soll.
Der Lüfter dreht auch, aber es ist nicht mehr als ein unwilliges, 
langsames gehoppel.

Auf dem - zugegenen nicht so hübschen - Plan habe ich den prinzipiellen 
Aufbau aufgezeichnet.
VCC sind +7V.
Die Signaleingänge A,B,Z haben noch einen Eingangswiderstand (1kOhm) und 
liegen an einem Port vom AVR.

Die Tabelle beschreibt wie ich den Motor steuern will.
A,B,Z führen entweder logisch high (1), oder logisch low(0).
Ia, Ib, Iab beschreibt die Richtung der Ströme durch die Spulen.
+: positiv (in Pfeilrichtung), -: negativ (gegen Pfeilrichtung), 0: kein 
Strom weil kein Spannungsabfall über die jeweilige Spule(*).

Drehen sollte er sich meiner Überlegung nach wenn ich nacheinander Apos, 
Bpos, Aneg, Bneg schalte. Die Dauer zwischen dem Schalten bestimmt 
letzendlich die Rotationsgeschwindigkeit.
(Allerdings mit dem Hintergedanken dass ich nicht weiß, ob Apos und Aneg 
bzw. Bpos und Bneg vielleicht vertauscht werden müssen da ich nicht 
sicher bin wie die Spulen gewickelt, und demnach wie sich das Magnetfeld 
ausbreitet. Der Versuch das mit einem Kompass zu ermitteln hat mich 
nicht weitergebracht.)

Wenn ich ca. 1-2 Sekunden zwischen dem Schalten warte dann hoppelt der 
Lüfter jeweils um 90° weiter. Aber schneller gehts nicht. Je nach 
Wartezeit vibriert er oder macht garnichts mehr. Bei geeigneter 
Ansteuerung habe ich ihn sogar schon zum "Singen" bewegt und eine kleine 
Melodie àla Tetris&co. auf ihm abspielen können. War aber nicht so ganz 
was ich vor hatte ;-)

Viel Text, eine Frage: Habe ich noch einen prinzipeillen Denkfehler?
Müsste es so nicht funktionieren?

(*) kein Spannungsabfall stimmt nicht ganz weil ein kleiner Strom von 
ca. 6mA trotzdem durch die Spule fließt. Liegt meiner Überlegung nach 
daran dass ich die Endstufe aus Bipolartransistoren aufgebaut habe und 
die Basis-Emitter-Spannung gegen Masse bleibt.

von MaWin (Gast)


Lesenswert?

Die Original-Elektronik hatte einen Hallsensor.
Bei dir sehe ich keinen.
Wie meinst du, willst du das hinbekommen, ohne Rückmeldung über die 
aktuelle Position des Rotors ?

> Die Dauer zwischen dem Schalten bestimmt
> letzendlich die Rotationsgeschwindigkeit

Nein.

Der zeitliche Versatz zwischen dem Schalten und der aktuellen 
Rotorpositionbestimmt das Drehmoment.

Die Rotationsgeschwindigkeit ergibt sich dann aus dem Drehmoment gegen 
den Luftwiderstand.

Passen real sich ergebende Drehzahl und Rotationsgeschwindigkeit des 
Feldes nicht zusammen, hoppelt es eben.

von Hajo K. (plurimi)


Lesenswert?


von Ingo W. (Gast)


Lesenswert?

> Die Original-Elektronik hatte einen Hallsensor.
> Bei dir sehe ich keinen.

Ausserdem sind die Lüftermotoren keine 3-Phasen-Ausführung, sondern 
typischerweise werden 2 Wicklungsenden abwechselnd nach Masse gezogen, 
der gemeinsame Mittelpunkt kommt an die Betriebsspannung, also 
eigentlich ein Wechselstrommotor.
Der richtige Umschaltzeitpunkt wird durch den Hallgeber (s.O.) 
vorgegeben.
Ansonsten kannst Du ja mal versuchen, das hin-und-herschalten extern zu 
machen, ist sogar noch einfacher, wie deine Anordnung.

Solltes Du jetzt fragen, wie da ein Drehfeld entstehen kann, das muss in 
der Magnetik des Motors, ähnlich
http://de.wikipedia.org/wiki/Lavet-Schrittmotor
allerdings mit vertauschtem Rotor/Stator realisiert sein.

mfG ingo

von Fritz (Gast)


Lesenswert?

Schau dir mal die AVR442 Application Note an,
http://atmel.com/dyn/resources/prod_documents/doc8005.pdf
die könnte für dich evtl. interessant sein.

von Thor (Gast)


Lesenswert?

Tach Christoph,

du machst es dir, wie Ingo bereits sagte, deutlich zu schwer. Wenn du 
einen extra rausgeführten Mittelpunk hast dann nutze ihn verdammt!

Du kannst auch mit deiner Schaltung durch kommen. Allerdings vergisst du 
tatsächlich was. Eine 0 am Ausgang des AVR bedeutet eben nicht kein 
Strom sondern Masse und da fließt in deinem Falle eben noch was.

Beispielhaft im ersten Schritt(Apos): Du willst das der Strom von A nach 
Z fließt. Leider ist aber auch B Masse und damit teilt sich der Strom 
zwischen Z und B auf. Das Verhältnis gibt der Widerstand von Spule B an. 
Um dies zu umgehen, musst du das DDR des entsprechenden bits aus machen. 
Dann kann tatsächlich kein Strom mehr fließen(vorausgesetzt der Port 
gibt auch ein Low aus).

Wenn durch "die andere" Spule Strom fließt macht das das Magnetfeld 
asymmetrisch. Das kann uU schon reichen um den Rotor aus dem Tritt zu 
bringen.

Außerdem solltest du beachten, dass so ein Rotor auch der Massenträgheit 
unterliegt. Wenn du keine Positionsmeldung hast, musst du gaaaaanz 
langsam anfahren, denn der Rotor kann dem Magnetfeld nicht von jetzt auf 
gleich folgen.

Thor

von Christoph (Gast)


Lesenswert?

Moin
also erstmal vielen Dank für die Antworten, ich habe mal wieder etwas 
gebraucht mich wieder hiermit zu befassen.

Ingo hat es auf den Punkt gebracht, ich war mir nicht im klaren wie das 
Drehfeld entsteht. Ich gedacht es funktioniert wie bei einem "normalen" 
BLDC. (Wobei ich mich ja schon über den minimalen Schaltungsaufwand 
gewundert habe ...)

Ursprünglich hatte ich sogar nur eine Beschaltung mit zwei Transitoren, 
habe eine Nacht darüber geschlafen und mich am nächsten morgen gefragt 
wie das überhaupt funktioniern soll. (Da wusste ich auch noch nicht dass 
der Motor anders funktioniert als gedacht). Rückwirkend betrachtet habe 
ich vielleicht schon das beste aus meiner Beschaltung rausgeholt denn 
gedreht hat er sich ja schon einmal damit. Nur ziemlich schlecht...


> Du kannst auch mit deiner Schaltung durch kommen. Allerdings vergisst du
> tatsächlich was. Eine 0 am Ausgang des AVR bedeutet eben nicht kein
> Strom sondern Masse und da fließt in deinem Falle eben noch was.
Das ist klar, sonst würde die Transistorschaltung auch nicht 
funktionieren ;-) (oben npn, unten pnp. Ist ja nicht so sauber 
gezeichnet.)

> Beispielhaft im ersten Schritt(Apos): Du willst das der Strom von A nach
> Z fließt. Leider ist aber auch B Masse und damit teilt sich der Strom
> zwischen Z und B auf. Das Verhältnis gibt der Widerstand von Spule B an.
Das war mir auch bewusst. Theoretisch dürfte durch B bei Apos kein Strom 
fließen weil beide Enden der Spule B in dem Fall auf dem gleichen 
Potential liegen. Die Realität sieht etwas anderes aus, das ist klar. 
Aber ich dachte kleine Abweichungen verzeiht mir das Drehfeld.

(Ich habe die Schaltung aber auch mit dem Hintergedanken aufgebaut 
demnächst einen Dreiphasenmotor damit anzutreiben.)

> Außerdem solltest du beachten, dass so ein Rotor auch der Massenträgheit
> unterliegt. Wenn du keine Positionsmeldung hast, musst du gaaaaanz
> langsam anfahren, denn der Rotor kann dem Magnetfeld nicht von jetzt auf
> gleich folgen.
Das habe ich auch schon beobachtet. Der Rotor pendelt sich halt immer 
auf seine Position ein.


Ich glaube mir ist jetzt recht klar wie ich es machen muss. Danke auch 
an Fritz für die Application Note!

Jetzt muss brauche ich "nur" noch einen Hallsensor oder eine geeignete 
Rückkopplung...


Schönen Gruß
Christoph

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.