mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BLDC in beide Richtungen drehen lassen


Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
so ich beschäftige mich wieder mal mit dem Thema BLDC.
Ich habe eine schöne Treiberstufe gebaut mit MOSFETs. Dazu noch eine 
kleine Leiterplatte mit nem Controller, und damit steuere ich jetzt 
einen BLDC an.
Im Moment lasse ich den Controller noch auf die Hallsensoren pollen, und 
beim entsprechenden Status der Hallsensoren werden die Wicklungen 
dementsprechend geschaltet. Das funktioniert auch, die Drehzahl lässt 
sich (per PWM) einstellen, und das Teil macht 12000 Touren. Allerdings 
dreht der Motor nur links rum. Ich möchte ihn aber in beide Richtungen 
drehen können!

Also, beim Drehen in die eine Richtung lege ich die Signale wie folgt 
an:

Hallsensor   Phase
1 2 3        U V W
----------------------
1 0 1        + -
1 0 0        +   -
1 1 0          + -
0 1 0        - +
0 1 1        -   +
0 0 1          - +

So, damit dreht der Motor wie gesagt ganz ordentlich. In welcher 
Reihenfolge muss ich denn den Motor bestromen, dass er in die 
entgegengesetzte Richtung dreht?
Und, noch eine reine Verständnisfrage: warum dreht sich der Motor nicht 
mehr, wenn ich zwei Phasen vertausche? Eigentlich müsste er ja dadurch 
die Richtung umkehren. Allerdings tut er das nicht; vielmehr bleibt er 
immer an einer bestimmten Position stehen.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Und, noch eine reine Verständnisfrage: warum dreht sich der Motor nicht
>mehr, wenn ich zwei Phasen vertausche?

Die Hall-Sensoren hast du auch entsprechend mitgetauscht?

Oliver

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte der Motor nicht unabhängig davon drehen?

Autor: Pieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin moin,

lade Dir mal das Datenblatt zum SI9979, da ist das mit einer Tabelle 
erläutert.

Pieter

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, es läuft!

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Walter schrieb:
> Danke, es läuft!

Super, lag es tatsächlich am R4?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Super, lag es tatsächlich am R4?

Ja, der war verkehrt herum eingelötet.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neeee, meine Kommutierungsreihenfolge war nicht ganz richtig.
Wenn es euch interessiert kann ich ja noch paar Codeschnipsel und 
Oszibilder posten.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön! raus damit, lass dich nicht lange bitten ;-))

Autor: Tueftler86 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Hast du jetzt die Hardware geaendert, um die Richtung zu aendern?

Ich dachte sofwaremaessig kann man das dadurch erreichen, dass man die 
Bestromung der Phasen um 180Grad verschiebt, gegen die Hallsensor 
Signale. Also indem du anstelle des ersten Musters das dritte einstellst 
und ausgibst.
gruss Tueftler86

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> um 180Grad verschiebt, gegen die Hallsensor Signale.

Wie soll das denn bitte gehen, oder denke ich falsch?
Wenn du den Motor 180°gegen die Hallsignale drehen lässt, ändert sich 
doch
automatisch auch die Richtung der Hallsignale, oder nicht??
Und schon bist du wieder in Phase mit den Signalen.

Autor: Tueftler86 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also die hallsignale sind einzig von der Rotorstellung abhaengig, und um 
ein Moment in die entgegengesetzte Richtung zu erzeugen, laesst du den 
Strom in die andere Richtung fliessen. Wenn du oben in die Tabelle 
guckst, siehst du dass dieser vorgang genau einer Verschiebung um 3 
"Takte" entsrichts. Du ordnest also bei Vorwaerts der 
Hallsensorkombinationnummer "eins" die erste Phasenansteuerung zu. Bei 
Rueckwaerts hingegen die dritte Phasenansteuerung.
Dachte ich.
Gruss Tueftler86

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man die Seqeuenz als Array gespeichert hat, dann kann man einfach 
das Array von hinten nach vorne durchspulen, statt von vorne nach hinten 
;)

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du vorwärts die Phasen/Hallsensoren A,B,C bestromst und änderst das 
ab zb. in A,C,B dann dreht der Motor in die andere Richtung. Also nicht 
nur einfach verschieben sondern 2 Phasen samt Hallsensoren vertauschen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe nicht genau wie du das meinst, bei obiger tabelle wuerde das 
jedenfalls nicht so funktionieren.
Meiner Meinung nach muss man die Phasen umpolen bei gleicher 
Hallinformation.
Eleganter geht das Phasenansteuern finde ich noch, indem man zwei 
nebeneinander gesetzte bits durch ein Register shiftet, muss man aber 
noch den Uebertrag nach dem 6.Bit beachten.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab mich auf Simon bezogen.

@ Hagen: Fuehr doch mal etwas verstaendlicher aus, wie du das meinst.
wenn du dir obige Tabell anschaust, wirst du feststellen, dass wenn man 
anstelle der ersten Kombination aus der Tabelle (fuer die phasen) die 
dritte raussuchst, der Strom in die entgegengesetzte Richtung fliesst 
und damit auch das Moment umgekehrt wird.
Oder verstehe ich da was falsch?

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallsensor   Phase
1 2 3        U V W
----------------------
1 0 1        + -
1 0 0        +   -
1 1 0          + -
0 1 0        - +
0 1 1        -   +
0 0 1          - +

1 0 1        +   -
1 0 0        + -
1 1 0          - +
0 1 0        -   +
0 1 1        - +
0 0 1          + -

Vergleiche mal beide Tabellen UVW -> UWV

U ist sagen wir mal unsere absolute Position. Jenachdem ob man als 
nächstes V oder W bestromt wird die Drehrichtung beeinflusst. Die 
Hallsensor Tabelle habe ich jetzt mal nicht verändert.

Übrigs findet man bei Atmel ne ganze Menge an AppNotes + Source in denen 
man das nachlesen kann.

Gruß Hagen

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Meiner Meinung nach muss man die Phasen umpolen bei gleicher
>Hallinformation.

Korrekt, oder Phasen gleichlassen und Hallssensoren austauschen. Wobei 
immer nur 2 der 3 Hallesensoren/Phasen ausgetauscht werden dürfen.

Umpolen suggeriert hier in die falsche Richtung, besser vertauschen da 
die Polung/Bestromung im Grunde gleichbleibt.

Wenn man also einfach 2 Strippen des BLDC austauscht dreht er in die 
andere Richtung. Abhängig von der Art der Hallsensoren, sprich Winkel, 
muß man dann auch bei denen noch in Software was ändern.

Gruß Hagen

Autor: df1as (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macht ihr das kompliziert ...

Wie ändert man denn bei einem gewöhnlichen DC-Motor die Drehrichtung? 
Aha - umpolen! Das gilt natürlich auch für den BLDC.

Wenn das hier für den Rechtslauf gilt:

Hallsensor   Phase
1 2 3        U V W
----------------------
1 0 1        + -
1 0 0        +   -
1 1 0          + -
0 1 0        - +
0 1 1        -   +
0 0 1          - +

... sieht der Linkslauf ganz einfach so aus:

Hallsensor   Phase
1 2 3        U V W
----------------------
1 0 1        - +
1 0 0        -   +
1 1 0          - +
0 1 0        + -
0 1 1        +   -
0 0 1          + -

Autor: Chris B. (cbb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

obwohl es schon älter ist, antworte ich hier mal.
Beim letzten Post ist noch zu beachten, dass die Hallsensorwerte so 
NICHT
auftreten werden, sondern die Werte werden Rückwärts "durchlaufen" und 
nicht vorwärts...Und etwas an den Hallsensoren verändern von der 
Verkabelung ist meiner Meinung nach nicht notwendig...

grüße

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich möchte mich hier nochmal einklinken weil ich trotz der vielen 
guten Anregungen immer noch nicht völlig durchblicke.
Aus folgendem Grund.
Grundsätzlich würde ich zur Drehrichtungsumkehr einfach 2 Phasen 
tauschen. Soweit so gut.
Hier mal eine aktuelle Tabelle für Rechtslauf aus meinem UNI-Skript:

Schritt    U  V  W
  1           +  -
  2        -  +
  3        -     +
  4           -  +
  5        +  -
  6        +     -

Dies entspricht der Linkslauf-Tabelle von Walter mit der Einschränkung, 
dass die Ansteuerung um 3 Schritte verschoben ist.
Wie das funktionieren soll ist mir völlig unklar:
Wenn ich mir für jeden Schritt den Motor mit seinen Wicklungen 
aufzeichne:

        U1
     V2    w2
     W1    V1
        U2

Dann dreht doch mein Feld in diesen Wicklungen immer rechts rum.
Selbst den Linkslauf kann ich mir hiermit nicht erklären, auch wenn 
deine Tabelle sicher richtig ist:
Beispiel Linkslauf:

Schritt 1: U1&V2 sind "aktiv"
Schritt 2: W2&U1
Schritt 3: V1&W2......

Will damit sagen, auf meiner Motoren-Uhr wandert mein Feld außen RECHTS 
rum. Wie kann dann der Rotor links drehen??
Ich bin völlig verwirrt.

Die einzig sinnvolle Lösung für linkslauf wäre für mich die Tabelle 
einfach von Schritt 6-1 zu durchlaufen, dann würde mein Feld außen in 
die andere Richtung drehen...

Vielleicht hilft mir jemand aus meiner Verwirrung, nächste Woche ist 
Klausur =)

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht noch um meine Verwirrung komplett zu machen:
Den Sprung von Schritt 1 zu Schritt 2 bei linkslauf entspricht dann 
Schritt 5 zu Schritt 6 bei Rechtslauf.
Danach geht's wieder von vorne los, es werden also dich gleichen 
Schritte abgearbeitet - egal ob rechts oder links - nur mit einem 
Versatz von 180°
Wieso dreht der Rotor dann beim gleichen Sprung einmal nach rechts und 
links?

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm.
jetzt steh ich auch auf dem schlauch.
Für rechtslauf und linkslauf die gleiche schrittabfolge???

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pol doch einfach die zweii Draehte endlich mal um und Berichte, ob es 
nun geht oder nicht.

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab nix zu umpolen... =)
mir erschließt sich nur die Vorgehensweise nicht so ganz...
vielleicht bringt mal wer licht in mein dunkel...

Autor: nicht "Gast" (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich hab nix zu umpolen... =)

Genau so etwas dachte ich mir auch fast. Machst hier alle verrückt.

Isch 'aben gargein audo.

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was soll das denn jetzt?
es war nur ne frage, da ich die Thematik nicht ganz verstanden hab...
wenns mir keiner erklären kann und nur doofe antworten kommen dann lass 
ich das hier sein.
danke.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.