Forum: Mikrocontroller und Digitale Elektronik 3 Phasenmotor über PIC ansteuern


von Andi (Gast)


Lesenswert?

Ich Arbeite zur Zeit an einem Hobbyprojekt und habe ein Problem. Und 
zwar habe ich einen 3 Phasenmotor von einer internen Festplatte und 
möchte ihn mit einem PIC18f2520 ansteuern. Der Motor hat 4 Anschlüsse. 
1) die Versorgung und 2,3 und 4) die Phasen. Das heißt ich muss zuerst 
die 1. Phase einschalten und die anderen aus, dann die 2. ein und die 
anderen wieder aus usw.
Ich habe versucht mich im Internet schlau zu machen habe aber nur 
gefunden das ich das ich einen Timer Programmieren muss. Programmiert 
wird das ganze in C. Es wäre toll wenn ihr mir vielleicht einen Code 
hinnein stellen könntet. Ich bedanke mich bereits im vorhinein für 
jegliche Hilfe.

von Max H. (hartl192)


Lesenswert?

Zum ansteuern von Brushless DC würde ich mit das mal ansehen:
http://wiki.mikrokopter.de/BrushlessCtrl
Brushless-Controller für Modellbaumotoren

von Holger S. (alberich)


Lesenswert?

Die Ansteuerung ist komplizierter, als du dir das gerade vorstellst. Es 
gibt nicht einen Versorgungsanschluss und 3 mal "Minus". Wenn du den 
Zentralanschluss auf Plus und die drei anderen nacheinander auf Minus 
legst, dann kommst du mit viel Mühe maximal auf geringe Drehzahlen. Ich 
weiss das, ich hab' die Schaltung noch hier irgendwo liegen...

Microchip stellt Unmengen an Dokumentation zu dem Thema zur Verfügung, 
incl. Devboards für BLDC Motoren.
Schau mal hier:
http://www.microchip.com/pagehandler/en-us/technology/motorcontrol/motor-types/bldc.html

von Dreister Schnösel (Gast)


Lesenswert?

Na, so ein Zufall....
:-(

Noch Einer, der genau das Gleiche mit dem gleichen Kontroller machen
will...
Nein, ich werde jetzt nicht noch einmal den gleichen Text verfassen,
freue mich aber, daß der andere Thread so schnell gelöscht wurde.
Da macht das Helfen gleich doppelt so viel Spaß.

von Holger S. (alberich)


Lesenswert?

Hier hats einer mit dem Simpelansatz versucht & ist immerhin bis auf 6K 
RPM gekommen:
http://bradthx.blogspot.de/2010/02/fun-with-hard-drive-spindle-motors.html

Aber auch ihm ist aufgefallen, dass die "richtige" Ansteuerung etwas 
komplexer sit :-)

von Aleksandar J. (Gast)


Lesenswert?

Holger S. schrieb:
> Die Ansteuerung ist komplizierter, als du dir das gerade
> vorstellst. Es
> gibt nicht einen Versorgungsanschluss und 3 mal "Minus". Wenn du den
> Zentralanschluss auf Plus und die drei anderen nacheinander auf Minus
> legst, dann kommst du mit viel Mühe maximal auf geringe Drehzahlen. Ich
> weiss das, ich hab' die Schaltung noch hier irgendwo liegen...

das mann auf eine geringere drehzahl kommt weiß ich schon, da ich das 
ganze bereit mit einem arduino von einem freund getestet habe. ich komme 
auf mehr als die hälfte der max. drehzahl. diese reicht mir auch 
vollkommen (4325 RPM). mein problem ist nur der timer in C. und zwar 
schaffe ich es irgendwie nicht den PIC in c zu "definieren". damit meine 
ich das er alle befehle/register nicht erkennt. habe versucht dies 
hiermit aufzuheben "#include <pic18f2520>" hat leider nicht 
funktioniert.

von Frank K. (fchk)


Lesenswert?

Vor allem gibt es geeignetere PICs dafür. Stichwort "Motor Control". ZB 
dsPIC33EP256MC502.

fchk

von Chris B. (dekatz)


Lesenswert?

Aleksandar J. schrieb:
> mein problem ist nur der timer in C. und zwar
> schaffe ich es irgendwie nicht den PIC in c zu "definieren". damit meine
> ich das er alle befehle/register nicht erkennt. habe versucht dies
> hiermit aufzuheben "#include <pic18f2520>" hat leider nicht
> funktioniert.

Welcher Compiler? Welche IDE?

Glaube ich nicht so recht das der Compiler bei richtig! eingebundener 
Headerdatei die Timer-SFR nicht kennt.

btw: bei den XC Compilern wird auch nicht eine "pic18f2520....." 
eingebunden sondern über <xc.h> und den im Projekt definierten 
Controller die richtige Headedatei verwendet. (Über xc.h -> htc.h -> 
pic.h werden noch einige Dinge definiert welche zum "Funkteonieren" der 
Headerdatei nötig sind).

von Maude (Gast)


Lesenswert?

Dein Motor hat vier Anschlüsse?
Messe doch mal den ohmschen Widerstand eines jeden Anschlusses gegen 
jeden anderen und schreibe von jeder Kombination die gemessenen Ohm auf 
und noch besser poste sie hier.

Mir fallen zwei Möglichkeiten ein:

1.) Du hast einen Motor der nicht 3 sondern nur zwei Phasen hat nach 
diesem Prinzip:
http://www.google.de/imgres?imgurl=http%3A%2F%2Fwww.goetz-automation.de%2FSchrittmotor%2FBilder%2FBipolarschaltung_mit_2Phasen_Motor.gif&imgrefurl=http%3A%2F%2Fwww.goetz-automation.de%2FSchrittmotor%2FBipolarschaltung.htm&h=295&w=542&tbnid=2Jq6ue0Qcfb_xM%3A&zoom=1&docid=7C6QXMh21yJiJM&ei=L-9RVNOZPOLmyQPJyIHABQ&tbm=isch&client=firefox-a&iact=rc&uact=3&dur=601&page=1&start=0&ndsp=24&ved=0CCUQrQMwAQ

oder

2.)
Du HAST einen 3 Phasenmotor mit rausgeführtem Sternpunkt

von Aleksandar J. (Gast)


Lesenswert?

Maude schrieb:
> Dein Motor hat vier Anschlüsse?
> Messe doch mal den ohmschen Widerstand eines jeden Anschlusses gegen
> jeden anderen und schreibe von jeder Kombination die gemessenen Ohm auf.

Das habe ich bereits getan. Und zwar habe ich herausgefunden das ich 
eine "common" habe. (Wie? => Ich habe zuerst den rechten Anschluss mit 
allen anderen gemessen und festgestellt das der Anschluss ganz link die 
hälfte der anderen 2 ausgibt. Dann habe ich den linken Anschluss wieder 
mit allen anderen gemessen und nun war der Ohmsche Widerstand überall 
gleich. Lauf Recherche fand ich heraus das der Anschluss ganz link mein 
"common (Versorgung)" sein muss.

von Aleksandar J. (Gast)


Lesenswert?

Chris B. schrieb:

> Welcher Compiler? Welche IDE?
MPLAB IDE v8.92

von Aleksandar J. (Gast)


Lesenswert?

Aleksandar J. schrieb:

DURCH Recherche fand ich heraus das der Anschluss ganz link mein
> "common (Versorgung)" sein muss.

von Max H. (hartl192)


Lesenswert?

Aleksandar J. schrieb:
> Chris B. schrieb:
>> Welcher Compiler? Welche IDE?
> MPLAB IDE v8.92
Damit hast du erst 50% der Punkte...

von Aleksandar J. (Gast)


Lesenswert?

XC16

von Holger S. (alberich)


Lesenswert?

Dann gehts hier eigentlich nicht um die Ansteuerung eines Motors, 
sondern eher um die richtige Konfiguration einer IDE bzw. Einbindung der 
korrekten Headerdateien in einem C Projekt...?

"Können" werden das alle IDEs, ich verwende MPLAB X mit XC8. Richtig 
konfiguriert "kennt" die IDE dann alle Ports/Register des verwendeten 
PIC.

Mir sind bisher nur 3-phasige Festplattenmotoren untergekommen. Der 
Unterschied 3pol/4pol ist der nicht immer herausgeführte Sternpunkt.

von Max H. (hartl192)


Lesenswert?

Aleksandar J. schrieb:
> XC16
Der Compiler ist für 16bit PICs (PIC24 dsPIC), versuch mal den XC8.

von Maude (Gast)


Lesenswert?

>Das habe ich bereits getan. Und zwar habe ich herausgefunden das ich
>eine "common" habe. (Wie? => Ich habe zuerst den rechten Anschluss mit
>allen anderen gemessen und festgestellt das der Anschluss ganz link die
>hälfte der anderen 2 ausgibt. Dann habe ich den linken Anschluss wieder
>mit allen anderen gemessen und nun war der Ohmsche Widerstand überall
>gleich. Lauf Recherche fand ich heraus das der Anschluss ganz link mein
>"common (Versorgung)" sein muss.

Dann würde ich auch von einem 3 Phasenmotor in Sternschaltung mit 
rausgeführtem Sternpunkt ausgehen.
Im Zweifel lässt sich der Motor tatsächlich bewegen, wenn man den 
Sternpunkt auf Vcc oder Masse hängt und die anderen Anschlüsse im 
richtigen Muster mit dem jeweils anderen Potential beschaltet - Sinn der 
Sache ist das allerdings nicht.

>Anmerkung:
Da es sich bei deinem Motor um einen Laufwerksmotor handelt, gilt zu 
berücksichtigen, dass bei den meisten PC´s auch negative 
Spannungsschienen existieren. Es kann also gut sein, dass der Sternpunkt 
an Massepotential angeschlossen war und die anderen Anschlüsse in einer 
bestimmten Reihenfolge an +12V und -12V geschaltet wurden.

Ein oft benutzter Trick bei Brushlessstellern ist, nur zwei der drei 
Phasen zu bestromen und an der dritten den Phasendurchgang abzupassen um 
die Kommutierung zu steuern. Die induzierte Spannung an der dritten 
Phase wird über deren Anschluss und einem meist virtuell in der 
Schaltung abgebildeten Sternpunkt gemessen. In deinem Fall scheint der 
Sternpunkt netterweise rausgeführt zu sein.

Ich habe den Verdacht, dass dir einige Stichpunkte nicht ganz klar sind 
(soll kein Vorwurf sein)

- Phasendurchgang,
- Nullleiter bei 3 Phasensystemen
- Dreicheck-, Sternschaltung
- evtl. Kommutierung

Um das Ganze abzurunden: Ein Brushlessmotor ist im Fachjargon eine 
"permanent erregte Synchronmaschine". Um eine Solche verwenden zu können 
braucht man einen Frequenzrichter (FQ). Im Prinzip sind Modellbauregler 
so etwas. Im "Prinzip" deshalb weil viele wie oben beschrieben arbeiten 
und keinen echten 3 phasigen Drehstrom erzeugen.

von Heizgals (Gast)


Lesenswert?

Maude schrieb:
> Im "Prinzip" deshalb weil viele wie oben beschrieben arbeiten
> und keinen echten 3 phasigen Drehstrom erzeugen.

Im Prinzip ist ein Rotkohl-Kopf auch eine Banane.
SCNR

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.