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ß
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
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.
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
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?!
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.
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
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.
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ß
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.