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.
Zum ansteuern von Brushless DC würde ich mit das mal ansehen: http://wiki.mikrokopter.de/BrushlessCtrl Brushless-Controller für Modellbaumotoren
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
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ß.
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 :-)
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.
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).
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
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.
Aleksandar J. schrieb: DURCH Recherche fand ich heraus das der Anschluss ganz link mein > "common (Versorgung)" sein muss.
Aleksandar J. schrieb: > Chris B. schrieb: >> Welcher Compiler? Welche IDE? > MPLAB IDE v8.92 Damit hast du erst 50% der Punkte...
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.
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.