PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erhöhung der Frequenz des PPM/PWM Signals für einen ESC



vandeer
16.07.2014, 15:37
Hi,

Ich arbeite derzeit an einem Quadrocopter und habe ein Problem mit dem Signal für die ESC (electronic speed Controller). Diese ESC verarbeiten ein Signal vom Arduino zu einem kompatiblen Signal für die Brushlessmotoren.
Im Moment arbeite ich mit der Servo-Bibliothek und einem Arduino MEGA2560.

Esc:
http://www.hobbyking.com/hobbyking/store/__13429__HobbyKing_30A_BlueSeries_Brushless_Speed_ Controller.html

Nach Anfrage bei Hobbyking sagten sie mir, dass dieser bis zu 430 Hz verarbeiten kann.

The ESCs will handle up to 400hz -430hz refresh rate.



=> Nun kommt die erste Frage. Sind diese 430Hz die Frequenz des Signals vom Arduino, die der ESC verarbeiten kann, oder ist es etwas anderes? Werden die ESC funktionieren, wenn ich ein Signal mit einer höheren Frequenz als die von Standard (50Hz) oder muss ich sie flashen?

=> Angenommen, sie können. Wie kann ich nun ein Signal mit einer höheren Frequenz auf einfache Art generieren. Ist es irgendwie möglich, es ohne output compare register oder dem fast PWM mode zu machen?

Wie in anderen Forenthemen vorgeschlagen, habe ich versucht, die Konstante REFRESH_INTERVAL in der Bibliothek zu verändern,was aber logischerweise nicht die Frequenz veränderte.

Das gemessene signal der Servo library: (Zeitschritte sind 1 ms)
2866928670




Vielen Dank für irgendwelche Ideen

Gruss

lukas

Che Guevara
16.07.2014, 15:44
Hi,

die Refreshrate ist in der Tat die Pwm-Input Frequenz (bzw. deren Umkehrwert), also JA zu deiner Frage.
Ich kenne deine Hardware jetzt nicht, aber wenn möglich würde ich die PWM von den Timern in Hardware erzeugen lassen, Soft-PWM braucht zu viel Rechenzeit, da wirst du Probleme bekommen.

Gruß
Chris

vandeer
16.07.2014, 16:52
Hi Chris

Danke für die schnelle Antwort.
Es ist möglich mit dem Arduino ein fast PWM manuell mithilfe von Timern und Interrupts zu generieren. Ich werde mich wahrscheinlich da noch etwas einlesen müssen.
Ich weiss aber nicht genau, ob das Signal nun ein echtes PWM ist oder auch noch einige Kriterien des PPM erfüllt. Was meinst du dazu? Im Arduino forum gibt es mehrere Threads zu diesem Thema, diese sprechen aber für unterschiedliche Signalformen.

Gruss
lukas

Che Guevara
16.07.2014, 18:38
Hi,

also aus eigener Erfahrung kann ich sagen, dass viele China (und auch andere) Regler ein PWM Signal bis 500Hz verstehen. Allerdings sind diese normalen Brushlessregler nicht für Quadrocopter konzipiert, d.h. es dauert eine Weile, bis der neue Eingangswert an den Motor weitergeleitet wird. Für den Anfang wirds reichen, aber wenn du mal ein etwas "stärkeres" System willst, wirst du um speziell für Kopter entwickelte Regler nicht mehr rumkommen.
Deine Frage verstehe ich nicht so ganz? Du musst für die Regler einfach nur ein stinknormales PWM-Signal erzeugen, PPM verstehen die wohl nicht.

Gruß
Chris

vandeer
16.07.2014, 20:35
Hi Chris

Bedeutete das also, ich kann mit dem Befehl analogWrite() einen ESC ansteuern? andere Benutzer im arduino Forum meinen, dieses Signal sei für ESC's nicht geeignet.
The analogWrite() is a pwm output, that is not compatible with the servo signal. Servo Signal, weil momentan ich die servo library für die Erzeugung des Signals benutze.

Danke dass du dir meine Fragen ansiehst

Gruss
lukas

Che Guevara
16.07.2014, 21:19
Hi,

mit Arduino kenne ich mich nicht aus, deshalb weiß ich auch nicht, was die Funktion analogWrite macht. Ich kann dir nur sagen, dass ein ESC ein PWM-Signal braucht.

Gruß
Chris