BLDC nur mit 0-5V am AVR möglich?

Gast #5311470
Lesenswert?

Ich habe einen kleinen Modellbau-Brushless-Motor geschenkt bekommen. Ich 
möchte ihn gerne einmal ausprobieren und dazu die 3 Anschlüsse mit 3 
Widerständen (150 Ohm) an AVR-Pins anschließen.

Zur Ansteuerung habe ich mir dies hier angesehen:

https://de.nanotec.com/support/tutorials/animation-buerstenlose-dc-motoren/?tx_nanotec_animation%5Binitial%5D=motor_bldc_block_delta

Kann ich den so zum Drehen bekommen, also mit diesen 6 "Phasen"? Also 
wenn ich nur 0V, 5V und Hochohmig (Input) schalten kann, oder brauche 
ich zwingend die Umpolung / negative Spannung?
#5311480
Lesenswert?

Auch wenn ich nicht weis, welche Daten der BLDC hat, würde ich 
behaupten, daß mit den 150Ohm (30mA) sich wohl nix drehen wird.
Ansonsten: solch ein Modellbaumotor braucht ein 3-Phase-Drehfeld (also 
wie bei Drehstrom). Du mußt also das entsprechende Impulsmuster an den 
Phasen erzeugen (120° Versatz).

>Kann ich den so zum Drehen bekommen, also mit diesen 6 "Phasen"? Also
>wenn ich nur 0V, 5V und Hochohmig (Input) schalten kann, oder brauche
>ich zwingend die Umpolung / negative Spannung?

Du brauchst eine Spannungsdifferenz. Ob das jetzt +/-2,5V sind, oder 
0V/5V, ist egal.
Gast #5311484
Lesenswert?

Du musst halt jeden Anschluss des Motors zwischen positiver und 
negativer Versorgung umschalten können.
Vorausgesetzt die 5V bzw. der Strom der AVR-Pins reicht, könnte man wohl 
schon erreichen, dass der BLDC irgendwie zuckt. Aber etwas was den Namen 
"Drehbewegung" verdient, wird da nicht so einfach heraus kommen.
Gast #5311489
Lesenswert?

Peter S. schrieb:
> Du musst halt jeden Anschluss des Motors zwischen positiver und
> negativer Versorgung umschalten können.

also wenn das Bild da stimmt (so wie verlinkt), müsste ich doch 2 
beliebige von den 3 Anschlüssen ansteuern können: wenn ich den einen auf 
HIGH 5V und den anderen auf LOW 0V schalte, und danach genau anders 
herum, müsste sich doch der Motor um 180° drehen, oder?
Gast #5311515
Lesenswert?

Hinweiser schrieb:
> Du hast das mit dem Strom aber schon gelesen?

Ja. Ich habe mal am Netzteil probiert: mit 50mA schafft er es, sich 180° 
zu drehen beim umpolen. Ich müsste wohl 2 Pins zusammenschalten, dann 
käme ich auf max. 80mA, und ich müsste die Widerstände auf ca. 30 Ohm 
verringern..

Ich probiere mal morgen weiter. Sollten nicht 3 Takte reichen?:

Anschlüsse
1 2 3
Takte (Z= hochohmig)
H L Z
Z H L
L Z H
H L Z
Z H L
L Z H
H L Z
Z H L
L Z H

usw?
#5311532
Lesenswert?

>also wenn das Bild da stimmt (so wie verlinkt), müsste ich doch 2
>beliebige von den 3 Anschlüssen ansteuern können: wenn ich den einen auf

Ich sehe in Deinem Liunk nur zwei Spulen-/Polpaare. Also kein 
3-Phasenteil.

>HIGH 5V und den anderen auf LOW 0V schalte, und danach genau anders
>herum, müsste sich doch der Motor um 180° drehen, oder?

Wenn Du Deinen BLDC meinst - nein. Der hat mehrere Magnetpolpaare, also 
nicht nur 2 N-S-Wechsel. Der würde da also nur paar Grad 
weiterschlüpfen. Nur wird der Motor unschlüssig sein, in welche 
Richtung.

>Ach und was ich nicht weiß: ist so ein Modellbaumotor intern "Delta"
>oder "Star" angeschlossen? (also siehe Animation)

Beides möglich.

>Ich probiere mal morgen weiter. Sollten nicht 3 Takte reichen?:

>Anschlüsse
>1 2 3
>Takte (Z= hochohmig)
>H L Z
>Z H L
>L Z H
>H L Z
>Z H L
>L Z H
>H L Z
>Z H L
>L Z H

>usw?

Ja.
#5311569
Lesenswert?

>(Stern oder Dreieck)
>> Beides möglich.

>kann ich das ausmessen an den 3 Leitungen? War wohl mal in einem kleinen
>Multicopter..

Klar - anhand mehrerer R-Messungen an den Anschlüssen. Einmal einfach an 
zwei Anschlüssen, und einmal an drei Anschlüssen, wobei zwei davon 
gebrück werden. Das Verhältnis beider R-Messungen ist bei Dreieck und 
Stern unterschiedlich (0,5 bzw 0,75). Natürlich brauchst Du ein 
Messgerät für niedrige R's (also normalerweise 4-Leiter-Messung).


>> Nur wird der Motor unschlüssig sein, in welche
>> Richtung.

>Warum? in Richtung des nächsten Taktes, hoffe ich doch?

Die Drehrichtung ist ungewiss, denn er könnte ja in beide Richtungen um 
180° wegdrehen.
Allerdings wird ein BLDC nicht so radikal von H auf L umgepolt, sondern 
es sind eben auch die Tristate (Z)-Phasen dazwischen, damit eben das 
(180°) nicht passiert.
Übrigens wird ein Modellbau-BLDC wie ein sensorless BLDC gesteuert, also 
die 4. Variante in deinem Link.
Gast #5311748
Lesenswert?

BLDC schrieb:
> Ach und was ich nicht weiß: ist so ein Modellbaumotor intern
> "Delta"
> oder "Star" angeschlossen? (also siehe Animation)

Das müsstest du dem Datenblatt entnehmen. Aber prinzipiell ist für dich 
erst mal egal, ob der Motor im Stern oder Dreieck verschaltet ist. Das 
hat keine Auswirkung auf die Ansteuerung. Abgesehen von ein paar 
Nebeneffekten, hat Stern oder Dreieck nur Auswirkung auf die 
Betriebsparameter (z. B. die maximale Drehzahl).

Du musst einfach nur die Phasen in der Richtigen Reihenfolge bestromen, 
damit sich der Motor "dreht", bzw in 60°-Schritten (elektrisch gesehen) 
weiter hüpft. Das wäre dann so eine Art "gesteuerter Six-Step-Betrieb".

Vielleicht googelst du einfach mal nach "BLDC Six-Step Kommutierung". 
Das ist im Endeffekt das was du machen musst.
Gast #5311756
Lesenswert?

Achja, das Thema "Freilaufdioden" könnte noch interessant sein. Es kann 
sein, dass dir deine AVR-Pins wegschmoren, wenn diese eine induktive 
Last schalten müssen.

Das Thema ist in deinem Fall wahrscheinlich gar nicht so trivial zu 
lösen. Vielleicht versuchst du es zunächst einfach mal ohne, aber dann 
nicht wundern, wenn der AVR die Grätsche macht ;)
Gast #5311905
Lesenswert?

neuer Stand: ich habe jetzt je 56 Ohm zwischen Motoranschluss und Pin.

Der Motor bewegt sich, aber er dreht sich nicht: Ob ich ihn nun in 6 
Schritten oder in 3 schritten ansteuere (der auskommentierte Teil)

Bei 3 Schritten geht er auf eine Position im ersten Schritt, dann ein 
Stück weiter im 2. Schritt (wahrscheinlich aufs nächste Polpaar?) aber 
beim dritten schritt macht er nichts - dann dreht er wieder zurück zur 
ersten Position. Also Schritt-RückSchritt-Pause

Bei 6 Schritten macht er 2 Schritte in die eine Richtung, dann nichts, 
dann 2 Schritte in die andere Richtung, dann nichts. Also Also 
Schritt-Schritt-Pause-RückSchritt-RückSchritt-Pause.

Woran liegt das? Evtl. ist im Motor was kaputt? Ich habe die Ansteuerung 
durchgemessen und auch die Motoranschlüsse - sieht alles richtig aus.. 
hier mein Programm:
1
#define L1 5
2
#define L2 6
3
#define L3 7
4
int pause = 200;
5

6
void setup() {
7
}
8

9
void loop() {
10
  // schritte nacheinander ausführen
11
  p1();  delay(pause);
12
  p2();  delay(pause);
13
  p3();  delay(pause);
14
  p4();  delay(pause);
15
  p5();  delay(pause);
16
  p6();  delay(pause);
17
  
18
  /*
19
  pX();  delay(pause);
20
  pY();  delay(pause);
21
  pZ();  delay(pause);
22
  */
23
}
24

25
//siehe https://www.daedalus.ei.tum.de/en/archiv/bldc-regler
26

27
void p1() { //1-Z-3
28
  pinMode(L2, INPUT);
29
  pinMode(L3, OUTPUT); digitalWrite(L3, LOW);
30
  pinMode(L1, OUTPUT); digitalWrite(L1, HIGH);
31
}
32

33
void p2() { //Z-2-3
34
  pinMode(L3, INPUT);
35
  pinMode(L3, OUTPUT); digitalWrite(L3, LOW);
36
  pinMode(L2, OUTPUT); digitalWrite(L2, HIGH);
37
}
38

39
void p3() { //2-1-Z
40
  pinMode(L3, INPUT);
41
  pinMode(L1, OUTPUT); digitalWrite(L1, LOW);
42
  pinMode(L2, OUTPUT); digitalWrite(L2, HIGH);
43
}
44

45
void p4() { //3-Z-1
46
  pinMode(L2, INPUT);
47
  pinMode(L1, OUTPUT); digitalWrite(L1, LOW);
48
  pinMode(L3, OUTPUT); digitalWrite(L3, HIGH);
49
}
50

51
void p5() { //3-2-Z
52
  pinMode(L1, INPUT);
53
  pinMode(L2, OUTPUT); digitalWrite(L2, LOW);
54
  pinMode(L3, OUTPUT); digitalWrite(L3, HIGH);
55
}
56

57
void p6() { //1-2-Z
58
  pinMode(L3, INPUT);
59
  pinMode(L2, OUTPUT); digitalWrite(L2, LOW);
60
  pinMode(L1, OUTPUT); digitalWrite(L1, HIGH);
61
}
62

63

64

65
void pX() { //1-2
66
  pinMode(L3, INPUT);
67
  pinMode(L2, OUTPUT); digitalWrite(L2, LOW);
68
  pinMode(L1, OUTPUT); digitalWrite(L1, HIGH);
69
}
70

71
void pY() { //2-3
72
  pinMode(L1, INPUT);
73
  pinMode(L3, OUTPUT); digitalWrite(L3, LOW);
74
  pinMode(L2, OUTPUT); digitalWrite(L2, HIGH);
75
}
76

77
void pZ() { //3-1
78
  pinMode(L2, INPUT);
79
  pinMode(L1, OUTPUT); digitalWrite(L1, LOW);
80
  pinMode(L3, OUTPUT); digitalWrite(L3, HIGH);
81
}
Gast #5311918
Lesenswert?

ergänzend: Die Schritte liegen vielleicht so 5 Grad auseinander. 
Auffällig ist, dass wenn ich den Motor mit der Hand auf eine beliebige 
andere Position drehe, geht er dahin zurück. Als hätte er so eine 
"Lieblingsposition" über die er nicht hinweg kommt

Vielleicht reicht ja wirklich einfach der Strom nicht.. schade,,
#5312205
Lesenswert?

BLDC schrieb:
> sorry falscher Link, hier der richtige:
>
> 
https://de.nanotec.com/support/tutorials/animation-buerstenlose-dc-motoren/?tx_nanotec_animation%5Binitial%5D=motor_bldc_block_delta

Ich kann hier zwar leider inhaltlich nichts beitrage, wollte mich aber 
für den super Link bedanken.

Er verweist auf eine geniale Animation, um die Funktionsweise von BLDC 
Motoren zu verstehen!

Viele Grüße

Igel1
Gast #5312220
Lesenswert?

> Die sind bis 1mA spezifiziert.

Ich meine mich zu erinnern, dass die Belastbarkeit der ESD Dioden der 
AVR mC gar nicht spezifiziert sind. Lediglich eine ziemlich alte App 
Note weist darauf hin, dass man sie nicht über 1mA belasten soll.

Doch eine App Note ist keine Spezifikation und gilt sicher auch nicht 
automatisch für alle neueren Modelle, die danach konstruiert wurden.
Gast #5312599
Lesenswert?

Stefan U. schrieb:
> Doch eine App Note ist keine Spezifikation und gilt sicher auch nicht
> automatisch für alle neueren Modelle, die danach konstruiert wurden.

Kann sein, dafür hab ich zu lange nicht mehr mit den Teilen gearbeitet. 
Ich würde aber nicht davon ausgehen, dass es besser geworden ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren