Forum: Mikrocontroller und Digitale Elektronik Mach3 PWM an BLDC-Controller


von Brushlessfrager (Gast)


Lesenswert?

Hallo,

leider habe ich im Netz nicht wirklich was gefunden.

Es geht nicht um die Hardware sondern um die Signale.

Ich habe vor meine HF-Spindel 
(Beitrag "Brushlessmotor / Regler Fragen CNC-Spindel") mit mach3 zu steuern.
Im Moment habe ich einen Servotester dran.

Jetzt mein Problem:

Sehe ich das Richtig, das der Servotester ein Rechteckfrequenz erzeugt 
(es gab da schaltungen mit einem NE555 zum selbstbau). Und die 
Geschwindigkeit über die Frequenz mit einem gleichbleibenden 
Plus/Pausen-Verhältnis raus gibt?!

Mit wieviel HZ?


Im Gegensatz dazu wird gibt Mach3 wohl eine "klassische" PWM raus oder?
Da muss ich doch im Grunde nur die PWM einlesen und eine Frequenz 
ausgeben?


Oder bin ich da auf dem falschen Dampfer?


Gruß

von rmf (Gast)


Lesenswert?

Vermute mal du bist auf dem falschen Dampfer.
Die Servotester die mir spontan so einfallen (auch und gerade mit 555) 
sind für Modellbau Servos gedacht. Ich bin da sicher nicht auf dem 
aktuellen Stand der Technik aber früher (>20Jahre) war es so das die 
Frequenz konstant war (50Hz ?) und die Impulsbreite die Position des 
Servos gesteuert hat.
(Beispiel: 1ms Pulsbreite = Mittelstellung, 1,25ms = Endlage Links, 
0.75ms Endlage rechts)
Da findest du sicher was bei Wikipedia.

Das hat aber mit der Geschwindigkeitssteuerung eines BDLC Motors mittels 
PWM so garnichts zu tun.
Der Ansatz PWM "einlesen" und in BDLC Frequenz umwandeln passt da eher.

Gruß
Udo

von rmf (Gast)


Lesenswert?

Sorry muss natürlich BLDC heißen...

von Brushlessfrager (Gast)


Lesenswert?

Naja Fakt ist aber doch das der BLDC-Regler mit einem 
Standart-Servo-Tester angesteuert werden kann.

Dies mach ich ja im Moment mit erfolg.

Hätte ich ein Oszi würde ich mir die Signale anschauen, hab ich aber 
leider nciht.

von rmf (Gast)


Lesenswert?

Ich muß zugeben das ich den langen Tread nicht gelesen habe.
Wenn der BLDC Motor über einen Regler angesprochen wird, der für den 
Modellbau gedacht ist, geht das mit dem Servotester natürlich.
Die Daten für analoge Servos waren lt. Wikipedia 50Hz 1..2ms Pulsbreite. 
Wobei bei Dir die Pulsbreite dann die Geschwindigkeit bestimmen dürfte.
Ist zwar alles zusammen eine wirklich merkwürdige Kombination aber wenns 
Spaß macht.
Ob bei Mach 3 die PWM auf diese Werte eingestellt werden kann weiß ich 
allerdings nicht

von Brushlessfrager (Gast)


Lesenswert?

Naja so merkwürdig?

also ich gehe mal davon aus das Mach3 mit eine "normale" PWM 0-100% an 
einem Pin vom LPT ausgibt (ist ja einstellungssache). Diese lese ich mit 
dem AVR ein und gebe sie in eine Freuquent von 50Hz aus bei der die 
ersten 2ms die geschwindigkeit des Motors regeln?!

von Brushlessfrager (Gast)


Lesenswert?

Sorry für den doppelpost, aber hier sind Oszibilder der Mach3 PWM
http://www.buildlog.net/cnc_laser/mach_laser_power.html&docid=27Q8K3h8KZa3dM&imgurl=http://www.buildlog.net/cnc_laser/images/pwm_scope_50.jpg&w=320&h=240&ei=TPmlUaHGKqi64ATqrYAI&zoom=1&iact=hc&vpx=4&vpy=207&dur=1848&hovh=192&hovw=256&tx=123&ty=68&page=1&tbnh=122&tbnw=162&start=0&ndsp=18&ved=1t:429,r:0,s:0,i:81

Wie erwartet eine ganz nochmale.

ich könnte diese doch auch einfach gleichrichten über den ADC einlesen.
Damit hätte ich den Sollwert


Den Istwert würde ich dan z.B mit dem OCR0A vorgeben?
Der Timer wird natürlich über die Register auf 50Hz gestellt.

von Frank S. (franksanderdo)


Lesenswert?

Moin Moin,

es hat dazu im Mach3 Forum schon mal eine Diskussion gegeben und wenn 
ich mich recht erinnere auch in der CNC Ecke. Da hat schon mal jemand 
was gebastelt.

Grüße
Frank

von Udo S. (urschmitt)


Lesenswert?

Nix gleichrichten und ADC.
Du misst einfach das Puls Pausen Verhältnis mit dem Timer und der Input 
Capture Einheit des µCs.
Daraus bastelst du dir dann mit deinem Programm eine (Soft oder 
Hardware) PWM mit 50 Hz Widerholrate und 0,5 - 1,5 ms Duty Cycle.

von Input Capture? (Gast)


Lesenswert?

HiHo,

ich sitze gerade vor dem selben Problem.

Udo kannst du mal ein Bsp zeigen?
Bis jetzt habe ich nur Werte über den Adc eingelesen.
Ich habe keine Ahnung wie Das mit dem Timer gehen könnte.

Leider finde ich auch nichts, für mich verständliches, über die Capture 
Einheit.


Gruß

von Achim (Gast)


Lesenswert?

Hallo,

schade das es hier nicht weiter geht.
Suche auch noch eine "saubere Lösung" mit dem ICP.
Das hier tuts zwar auch ist aber noch ein bisschen unruhig.
Kann man natürlich mit dem Mittelwert mehrerer Messungen oder
der veränderung des Ausgangssignal erst, bei größerer veränderung am
Eingang, verbessern, geht aber auch eleganter.
1
$regfile = "m8def.dat"
2
$crystal = 8000000
3
$hwstack = 40
4
$swstack = 16
5
$framesize = 32
6
7
Dim Pwm As Word
8
9
Config Portb.1 = Output
10
Config Servos = 1 , Servo1 = Portb.1 , Reload = 10
11
12
Config Portb.0 = Input
13
Set Portb.0
14
15
Enable Interrupts
16
17
18
Do
19
20
Pulsein Pwm , Pinb , 0 , 1
21
22
Pwm = Pwm / 16'Eingangswert auf ein passenden Wert teilen
23
Pwm = Pwm + 71'Ein Offset für Mittelstellung dazu
24
25
Servo(1) = Pwm'Und fertig
26
27
Loop
28
29
End

Werte für Mach3 PWM 50Hz und meinem Regler ermittelt.

Gruß Achim

von Mr. X (Gast)


Lesenswert?

rmf schrieb:
> (Beispiel: 1ms Pulsbreite = Mittelstellung, 1,25ms = Endlage Links,
> 0.75ms Endlage rechts)
> Da findest du sicher was bei Wikipedia.

Udo Schmitt schrieb:
> Daraus bastelst du dir dann mit deinem Programm eine (Soft oder
> Hardware) PWM mit 50 Hz Widerholrate und 0,5 - 1,5 ms Duty Cycle.

Guter Tip mit Wikipedia. Bevor hier noch alle möglichen Werte und 
unmöglichen Werte für den Pulsbreitenbereich verewigt werden:

rmf schrieb:
> Die Daten für analoge Servos waren lt. Wikipedia 50Hz 1..2ms Pulsbreite.

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.