Hi uC.net Community, ich versuche über einen ATmega 644 per PWM-Signal ein Pulsweitenmodul von Robbe (roxxy bl-control-960-6) anzusteuern, dieses dann per interner Regelung einen Motor von Robbe (bl-outrunner 4240/12, 7-15v) ansteuert. Leider funktioniert das ganze nicht und nach langem recherchieren im INet und Datenblatt lesen, sowie vielen Tests muss ich mich hier melden. Ich hoffe das vor allem das PWM-Modul einigen Usern hier ein Begriff ist, weil ich denke das vor allem hier das Problem liegt. Wie schon erwähnt verwende ich einen ATmega644 und das PWM-Signal für das PWM-Modul habe ich bereits programmiert und mit einem Scope gemessen und das müsste normalerweise, nach den "Richtlinien" für die Ansteuerung für Servomotoren hier auf uC.net ( http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung ) richtig sein. Habe eine Frequenz von 50Hz (Periode 20ms) und meine Pulsweite stelle ich zwischen 0,9ms und 2,1ms ein, das stimmt doch so? Wenn ich dann das Signal auf mein PWM-Modul übertrage passiert nichts. Nur bei einer PWM-Weite von 1,5ms und mehrmaligen ein und ausschalten der Spannungsversorgung dreht sich mein Motor mit geringer Drehzahl, Zufall ? Wenn ich dann mein PWM-Signal wegnehme hört der Motor auf sich zu drehen. Also kommt am PWM-Modul ein Signal an, womöglich nur das Falsche, oder ein falsches Timing, warum sollte es sich sonst drehen ? Hat hier jemand mal sowas gemacht bzw. Erfahrung ein PWM-Modul anzusteuern ? Benötige ich überhaupt ein PWM-Signal und wenn ja liege ich mit meinen 50Hz richtig oder soll ich eine höhere Frequenz z.B 400Hz einstellen ? Sehr viele Fragen ^^ ich danke schon mal allen die sich das durchlesen und sich die Mühe geben mir zu helfen und hoffe auf viele Antworten :) mfg c_l
Eine nur kurze schnelle Google-Suche ergab u.a. http://www.2ehandsrc.nl/Robbe-ROXXY-BL-CONTROL-960-6-_2-6LI_-+V2-nr.-1-86348642-Pakket-N_art_13058.php Und dort steht: > High pulse frequency (32,000 Hz) for ultrafine speed control Nichts mit 50 Hz also. Also bringst Du am besten die Solldaten erst einmal in Erfahrung, evtl. durch Ausmessen einer vorhandenen Steuerung.
Hi, danke schon mal für die Hilfe, die 32 Hz habe ich auch schon ausprobiert, mit dem gleichen Tastverhältnis der 50Hz, hat leider auch nicht funktioniert ( das habe ich vergessen zu erwähnen ) Bleibt das Tastverhältnis für einen Servomotor immer gleich wenn die Frequenz geändert wird ? Leider habe ich keine Refernzschaltung bzw. Steuerung aufgebaut, deshalb kann ich bisher nichts vergleichen oder messen. Nur in der aufgebauten Schaltung...
Das ist englischsprachiger Text (dort ist das Komma der Tausender-Indikator). Die 32,000 Hz sind also 32 kHz.
Leider funktioniert es mit 32khz (dem gleichen Tastverhätlnis wie bei 50hz) auch nicht.
Hallo Closed Loop die Ansteuerung eines Drehzahlsteller ist genauso wie die Ansteuerung eines Servos. Hast du mal versucht ein Modellbauservo anzuschliessen? Teste deine Hard. und Software mal mit einem Servo. Bei 1,5ms sollte das Servo etwa in Mittelstellung stehen. Beim Regler ist dann wahrscheinlich das Problem, daß sich der Regler erst "scharf stellt" wenn du ihm die PWM für Motor aus schickst. Teste erst mal das mit dem Servo. Ansonsten später mehr. Gruß Günter
Hast du dir auch mal die Anleitung des Reglers angesehen? http://data.robbe-online.net/robbe_pdf/P1122/P1122_1-8634.pdf
Hc Zimmerer schrieb: > Nichts mit 50 Hz also. Also bringst Du am besten die Solldaten erst > einmal in Erfahrung, evtl. durch Ausmessen einer vorhandenen Steuerung. Das ist auf der Motorseite und hat nichts mit der Ansteuerung des Reglers zu tun. Ist ja schoen, wenn du helfen willst, aber so voellig ohne Ahnung ist das kontraproduktiv. Wie andere schon schrieben, haben fast alle Modellbauregler einen Schutz gegen versehentliches hochdrehen beim Einschalten - wie der ueberwunden wird, steht in der Anleitung.
RE: Hc Zimmerer Die 32 kHz sind die Frequenz die der Regler intern für die Ansteuerung des Motors macht. Die Verbindung µC-Regler läuft 100% mit 50Hz und die Impulse müssen zwischen etwa 1ms und 2ms lang sein. Also zb. 1ms High und dann 19ms Low oder 1,5ms High und dann 18,5ms Low
Moin, wichtig ist die Impulslänge. Die beträgt normalerweise 1,1ms bis 1,9ms, Mitte 1,5ms. Diese werten gelten für Graupner bei Servoweg 100%. Die Periodendauer darf ruhig etwas schwanken, wobei die 20ms wohl der Quasistandard sind. Du solltest am Steller den "Gasweg" einlernen, also minimale und maximale Impulslänge für 0-100%. Dan sollte es klappen. Gruß, Stefan
Hallo Leute, die 32 kHz beziehen sich nicht auf die Ansteuerung mit dem PWM-Signal sondern auf die Regelschleife für den Motor. Die Ansteuerung für das PWM Signal bleibt bei den typischen 20 Hz wie bei einem Servo. Ich denke das Problem liegt darin, dass der Regler beim ersten mal programmiert werden muss (Nullstellung, Voll-Schubstellung, ...), sonst läuft er nicht an und der Start muss auch von der Nullstellung aus beginnen sonst startet der Motor aus Sicherheitsgründen nicht. Grüße Larsen
Äääh, das sind nicht 20 Hz, sonder 20ms, also 50Hz. Ist zwar nicht all zu kritisch, aber 20 Hz könnten doch etwas wenig sein. Gruß, Stefan
Hey Leute, danke schon mal für die viele Hilfe, also ich habe mir jetzt einen Servomotor von einem Kollgen ausgeliehen, ihn direkt angesteckt und der läuft d.h, bei 1,5ms in Mittelstellung und bei 2ms in die "Endposition". Es liegt also definitiv am PWM-Modul, und entweder an einer Sicherheitsfunktion oder wirklich das ich alle Stellungen einprogrammieren muss. Leider habe ich bis jetzt nur eine Fernsteuerung nicht das Programmermodul (ist bestellt). Ich kann aber leider nicht, egal mit was ich programmiere die Sicherheitsfkt. ausstellen z.B - Anlaufschutz,verhindert ungewolltes Anlaufen des Motors Ich denke es liegt am Anlaufschutz, da mein PWM-Signal kontinuierlich am PWM-Modul liegt sobald ich meiner Platine saft gebe und somit diese Funktion intern ausgeführt wird. Sobald alles funktioniert werde ich dann noch mal eine komplette Zusammenfassung mit Lösung hier reinstellen. Für weiter Lösungsvorschläge bin aber ich weiterhin sehr dankbar :)
Aalso, ich kenne die Motorsteuerungen für die Roxxy Brushless Motoren so, dass man beim ersten Einschalten die Stellwege anlernen muss. Das wird, wenn ich mich recht erinnere, durch das Blinken einer LED angezeigt. Machst Du das? Ich kann mich nicht erinnern, ob die Einstellungen erhalten bleiben, wenn die Betriebsspannung weg ist oder nicht. Könnte mir vorstellen, dass aus Sicherheitsgründen bei jedem Einschalten ein Anlernen notwendig ist. Aber das stand eigentlich gut verständlich in der Anleitung. Hast Du da mal reingeschaut? Grüße, Stefan
closed_loop schrieb: > Ich denke es liegt am Anlaufschutz, da mein PWM-Signal kontinuierlich am > PWM-Modul liegt Das kann sein. Probiere doch mal beim einschalten eine Pulslänge von >= 1,1ms. Dann sollte der Anlaufschutz nicht greifen. Ansonsten schalten die meidten Steller bei ausfall des Signals den Motor ab. Gruß, Stefan
Hi, der Impuls am PWM Signaleingnag (weiß) für den roxxy Regler muss alle 20ms kommen (nicht nur bei Änderung der Pulsweite). Habe es selbst schon erfolgreich mit einem Mega8 am laufen. Pulsweiet (1ms-2ms und Periodendauer von 20ms) Um den Regler zu nutzen, muss nach anschlißen des Akkus zuerst die Mittelstellung (1,5ms Puls) anliegen, dann piepst der Regler (ich glaube 3x) und dann kann mit Änderung der Pulslänge die Drehzahl & Drehrichtung verstellt werden. mfg
Mit welcher Spannung betreibst du den roxxy-Regler? Möglicherweise erkennt der Unterspannung (leerer Akku) und lässt den Motor auf diesem Grund nicht anlaufen.
ich benutzen den vislero v2 11.1V 3S1P 2200mAH LiPO Akku, den wir vor kurzem nochmal aufgeladen haben. Wenn wir direkt nach anschließen des Akkus, die Mittelstellung 1,5ms anlegen piepst er auch dreimal und die rote LED auf dem Regler leuchtet permanent. Nur leider will der Motor sich nicht drehen, auch nicht wenn wir die Pulslänge per Schalter umschalten. Gestern habe ich das auch schon mit den 1,5ms Pulsweite probiert. Als wir dann immer wieder an und ausgeschaltet haben, konnten wir zumindest erreichen dass der Motor dann irgendwann lief. Heute geht das leider nicht mehr. Er reagiert zwar kurz man hat das Gefühl er will losdrehen dann hört er aber direkt auf. @Stefam mit einer Pulslänge von 1,1ms genau das gleiche Verhalten. Soll ich mal unseren Quelltext anhängen, vielleicht hilfts ja.
Das die Rote LED leuchtet ist auch OK, dass habe ich auch nachdem er in Mittelstellung steht. Dann geht nach verändern der Pulslänge die LED aus und der Motor dreht sich. closed_loop schrieb: > Nur leider will der Motor sich nicht drehen, auch nicht wenn > wir die Pulslänge per Schalter umschalten. Evtl hat der Regler eine Fail-Save Funktion, die eine zu große sprunghafte Änderung der Pulsweite als Fehler erkennt. Am Besten mal nen Poti an den Mega644 anschließen, und mit dem Wert aus dem AD-Wandler damit die Pulsweite vorgeben. dann kann man sie auch in kleine Schritten verändern. mfg
Hast Du das hier in der Anleitung gelesen ? ... Falls nach (Punkt 3.1.2) die LED leuchtet, muß am Sender SERVO- REVERSE betätigt werden, die Spannungsversorgung zum Regler unterbrochen und erneut mit (Punkt 3.1.1) begonnen werden. Die Vorwärtsposition des Knüppels muß in der Nähe des mechani- schen Anschlags stehen. ... Vielleicht hast Du vorwärts mit rückwärts verwechselt. Also mal mit vorwärts (1,9ms) und rückwärts (1,1ms) probieren (evtl. sind die Signallängen auch andersrum, auswendig weiss ich das nicht). Signal anlegen, und dann den Regler einschalten. Der Rest steht in der Anleitung. Ich würde mal drei fixe Längen programmieren, 1,1; 1,5; 1,9; und mit denen mal probieren. closed_loop schrieb: > Leider habe ich bis jetzt nur eine Fernsteuerung nicht das Und wenn Du eine Fernsteuerung hast, hast Du mit dieser schon probiert, den Motor zum Laufen zu bringen ? Das würde ich doch zuerst machen, dann kannst Du Fehler von deiner SW ausschliessen - und verstehst, wie der Fahrtenregler / Motorsteller initialisiert werden will. Und dann die Signalfolge, die Du ja mit dem Scope zur Not anschauen kannst, nachprogrammieren.
Wenn Du nach der Anleitung vorgehst, mußt Du - einen 1,9ms Impuls erzeugen (Vollgas) - dann die Bestätigung des Stellers abwarten - dann einen Impuls mit 1,1ms anlegen - und wieder auf die Bestätigung des Stellers warten. Damit hast Du dann den "Knüppelweg" respektive minimale und maximale Impulslänge für 'vorwärts / stop' eingelernt. Wenn Du 'vorwärts stop rückwärts' benötigst, dann mußt Du noch die Mittelstelleung, z.B 1.5ms, dazwischeschieben. Siehe Anleitung 3.1. Wenn dann die rote LED leuchtet das Ganze nochmal mit umgekehrten Impulslängen. Wie schon weiter oben geschrieben gelten die von mir genannten Impulslängen für 100% Stellweg nach Graupner. Alles andere zwischen 0.9ms un 2.1ms sollte auch funktionieren. Grundsätzlich sollte das Umschalten per Schalter kein Problem darstellen. Wir machen es ja in unseren Fliegern (manchmal) genau so. Wie erzeugst Du Dein Signal? PWM-Modus eines Timers oder CTC? letzteres wäre nicht ganz so schön.... Gruß, Stefan
stefan hennig schrieb: > Könnte mir vorstellen, > dass aus Sicherheitsgründen bei jedem Einschalten ein Anlernen notwendig Hallo Stefan, das kommt ganz auf den Steller an (ich wehre mich gegen den Begriff Regler). - Mein Jeti erwartet eine Impulsweite von ~1.1ms oder kleiner, dann merkt er sich die Leerlaufstellung. Anschließend einmal Vollgas, dann weiß er wo das ist. Wird also jedes mal eingelernt. - Meine Turnigys muss ich explizit auf den Sender einlernen, die merken sich das. - Der alte PICO25 von Graupner muß auch explizit angelernt werden. Gruß, Stefan
@tsag das war die Lösung!!! Der hat scheinbar eine Fail-Save Funktion. Ich habe nun nach Anschließen des Akkus zuerst die Mittelstellung (1,5ms Puls), dann stelle ich durch einen Schalter auf 1,58ms Puls und der Motor läuft. Was ich noch nicht herausgefunden habe (aber auch für mich nicht wirklich essentiell ist), wie man den Motor in die andere Richtung drehen kann. Ich dachte, wenn ich den Puls kleiner als 1,5ms stelle würde er dann in die andere Richtung drehen. An dieser Stelle möchte ich mich bei "Allen" für die vielen qualifizierten Antworten bedanken!
Stefan Weßels schrieb: > Äääh, das sind nicht 20 Hz, sonder 20ms, also 50Hz. Ist zwar nicht all > zu kritisch, aber 20 Hz könnten doch etwas wenig sein. Eigentlich sind es sogar 45Hz: http://www.aerodesign.de/peter/2000/PCM/PCM_PPM.html#Anker234605 Zumindest fuer aktuelle Multiplex-Anlagen kann ich die angegebenen Werte bestaetigen.
closed_loop schrieb: > drehen kann. Ich dachte, wenn ich den Puls kleiner als 1,5ms stelle > würde er dann in die andere Richtung drehen. Das ist auch richtig so, aber es kann sein, dass der Regler in Werkseinstellung auf Bremsfunktion eingestellt ist, dann ist kurz nach der Mittelstellung Bremse und dann darüber hinaus dann Rückwärts. Das kann man aber mit dem Programmiertool umstellen.
Peter Stegemann schrieb: > Stefan Weßels schrieb: >> Äääh, das sind nicht 20 Hz, sonder 20ms, also 50Hz. Ist zwar nicht all >> zu kritisch, aber 20 Hz könnten doch etwas wenig sein. > > Eigentlich sind es sogar 45Hz: Der Link ist klasse, den kannte ich noch gar nicht. Da gibts bestimmt unterschiedliche Frequenzen / Periodendauern, ich habe es nie nachgemessen. Die 50Hz werden jedenfalls gerne gemommen. Die MC22 hat eine Periodendauer von 22.5ms, die MX24 hat irgendwas um 12ms im 5-Kanalbetrieb usw. Auf keinen Fall wollte ich den Anschein unendlicher Weisheit erwecken... ;-) Gruß, Stefan
Stefan Weßels schrieb: > Auf keinen Fall wollte ich den Anschein unendlicher Weisheit erwecken... Meines Wissens gibt es keinen offiziellen Standard, solange es funktioniert, kann man also schlecht sagen, was richtig ist und was nicht... das macht es auch so leicht fuer einige Hersteller, sich so weit aus dem Fenster zu lehnen, damit es mit "Fremdprodukten" nicht mehr geht.
Ich habe nun nicht den ganzen Thread gelesen, aber: Zuerst musst Du den Regler programmieren. Also Timing, Akkutyp, Abschaltspannung, ... GAAAAAAANNNNNNZZZZ wichtig: Motor AUS Position des Knüpples am Sender, wenn der Motor aus sein soll. Also bei Deiner Schaltung die Länge des Impulses, wenn der Motor stehen soll und die Vollgas Position. Also bei Deiner Schaltung die Länge des Impulses bei maximaler Drehzahl. Wenn Du das gemacht hast, dann läuft die Sache nur, wenn beim Anstecken des Antriebsakku die Motor AUS Impulslänge anliegt. Dann erst initialisiert (tüddelt ein paar Töne mit dem Motor) der Regler und erst nach dem Initialisieren kannst Du anfangen und Gas geben. So sind die Modellbauregler alle. Sonst könnte man ja einen Heli bei Halbgas an den Akku stöpseln und bekäme die Finger verkloppt oder bei einem Flieger die Finger im Propeller zerhäckselt.
Modellbauer schrieb: > Ich habe nun nicht den ganzen Thread gelesen, aber: Haettest du vieleicht machen sollen. > So sind die Modellbauregler alle. Nein, sind sie nicht. Und weiter oben steht das auch schon :-(
Modellbauer schrieb: > Sonst könnte man ja einen Heli bei > Halbgas an den Akku stöpseln und bekäme die Finger verkloppt In der Anfangszeit gab es auch so etwas...... Gruß, Stefan
Peter Stegemann schrieb: > Meines Wissens gibt es keinen offiziellen Standard, Den gibt es mit Sicherheit nicht. Ich denke mal das die Frequenz stark von der Anzahl der übertragenen Kanäle abhängt. Im Prinzip brauche ich ja nur [Synchronisation(3ms?) + Kanalzahl * max. Impulslänge + (Kanalzahl-1) * Pause] zu berechnen, dann habe ich die Periodendauer. Ich vermute mal das es auch Sender mit variabler Periodendauer gibt. Ich glaube ich muss mir mal ein Oszi leihen, dann messe ich mal MX16s und MC12 durch. Das interessiert mich jetzt. Gruß, Stefan
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.