- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 55

Thema: DIY Brushless Regler für Modellbaumotoren (max. 20A)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hi,

    ich hab den Widerstand vor allem deswegen drin, damit keine zu großen Strömen fließen, da ansonsten die Leiterbahnen des IR2104 sehr viel größer sein müssten (auch wenn die Ströme nur kurzzeitig fließen).
    Anfangs hatte ich 470nF drinnen, nun bin ich eben auf 1.47µF raufgegangen, werde aber wohl noch ein paar "Reserven" einbauen. Der aktive Freilauf ist beim IR2104 übrigens Standart, also gibts in dieser Hinsicht keine Probleme.
    Zum aktuellen Stand:
    Das Motor-Timing (7,15,30°) lässt sich einstellen, genauso wie die Pwm-Frequenz. Was noch fehlt ist eine Drehrichtungsumkehr per Software, da ist mir noch kein eleganter Ansatz eingefallen...
    Außerdem fehlt noch die Drehzahlregelung, bis jetzt hab ich das so gemacht, dass ich dem µC Informationen über den Motor gegeben hatte (kV & Polzahl). Das gefällt mir aber garnicht, es sollte automatisch für jeden Motor ohne jegliche Konfiguration funktionieren. Auch das aktive Bremsen fehlt noch, da weiß ich noch nicht genau, wie ich das mache. Evtl. "einfach" zwei Phasen auf GND (bzw. gleiches Potenzial) legen, aber da weiß ich nicht, wie lange und v.a. welche Pegel (also z.b. PhaseA auf 20% Pwm, PhaseB auf 50% Pwm).
    Hast du dazu evtl. ein paar Infos?

    Gruß
    Chris

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von derNeue
    Registriert seit
    01.01.2011
    Ort
    Bierstadt Radeberg
    Alter
    39
    Beiträge
    101
    Der aktive Freilauf ist beim IR2104 übrigens Standart,
    Ich dachte, den wolltest du ausschaltbar machen?

    Was noch fehlt ist eine Drehrichtungsumkehr per Software, da ist mir noch kein eleganter Ansatz eingefallen...
    Also du meinst, das du einen Motor in beide Richtungen drehen kannst, ohne zwischendurch neue Software aufzuspielen? Also ich würde das mit zwei Arrays erledigen, in denen eben die Port und Pin Adressen gespeichert sind. Je nachdem, welches Array du Stück für Stück lädst schaltet er eben andere Pins um. Wie gibst du deinem Regler bis jetzt die Information, was er machen soll? Oder dreht der Motor einfach los, sobald du Strom anlegst?

    Das gefällt mir aber garnicht, es sollte automatisch für jeden Motor ohne jegliche Konfiguration funktionieren.
    Also ich übergebe meinem Regler einfach einen PWM-Wert, den er einstellen soll, ohne Drehzahlvorgabe. Wenn du wirklich die Drehzahl fest vorgeben willst, brauchst du die Infos nach der Polpaarzahl, ohne wird das nix. Für deinen Regler gibts nur die el. Umdrehungen, die mechanischen bekommt er ja nicht mit. Dann brauchst du ja nur die Zeit zu messen, zwischen den Umschaltungen, dann weist du ja, dass er (1/6)/Polpaarzahl geschafft hat.

    Auch das aktive Bremsen fehlt noch, da weiß ich noch nicht genau, wie ich das mache.
    Also hast du einen PID mit im deinem Regler? Weil bei aktivem Freilauf ist die Rückspeisung der Energie ansich "kostenlos" mit dabei. Zumindest klappt das bei mir bestens.

    Dennis
    Ich studiere die Wirkung der Sonnenstrahlen auf das Liebesleben der Pflastersteine

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Das mit dem aktiven Freilauf ausschaltbar machen, hab ich erstmal hinten angestellt, sollte ja nur eine Art Studie sein
    Ja, ich hab mir schon folgendes vorgestellt:
    Code:
    //declaration
    int16_t PwmArray[2];
    int16_t SdArray[2];
    ...
    //left
    PwmArray[0] = 1; SdArray[0] = 1;
    PwmArray[1] = 0; SdArray[1] = 0;
    //right
    PwmArray[0] = 0; SdArray[0] = 0;
    PwmArray[1] = 1; SdArray[1] = 1;
    ...
    //StateMachine
    PhaseAPwm = PwmIn * PwmArray[0];
    PhaseBPwm = PwmIn * PwmArray[1];
    PhaseASd = SdArray[0];
    PhaseBSd = SdArray[1];
    Mal sehen, obs funktioniert wie ich mir das vorstelle und ob ich nicht noch eine einfachere Variante finde, v.a. weil ich noch keine Idee für die AC-Einstellungen habe.

    Momentan hab ich anfangs eine 2sec Wartezeit, anschließend gibt er Töne aus, dreht langsam hoch, gibt kurzzeitig 1/2 Vollgas und stoppt wieder.

    Dass die Drehzahlregelung auch ohne diese Infos an jedem beliebigen Motor funktioniert, zeigen verschiedene Regler, u.a. Mikrokopter BL3.0 oder auch "normale" Modellbauregler (z.b. Graupner), welche einen sog. Govenor-Modus haben.
    Aber leider kann ich mir eben auch nicht vorstellen, wie das funktionieren soll ...
    Ich hab mir mal die Drehzahl (bzw. die Kommutierungszeitpunkte) ausgeben lassen, da geht wohl noch was (hoffe ich zumindest).

    Gruß
    Chris

Ähnliche Themen

  1. I2C brushless Regler (für quadcopter)?
    Von ichbinsisyphos im Forum Motoren
    Antworten: 3
    Letzter Beitrag: 04.03.2013, 22:29
  2. Brushless Regler raucht ab
    Von Che Guevara im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 17.07.2012, 00:04
  3. Brushless Motor und Regler
    Von Gremlin im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 23.02.2012, 20:45
  4. Brushless regler ansteuern
    Von MSN im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 24.05.2011, 08:05
  5. Brushless Regler ansteuern
    Von scales im Forum Elektronik
    Antworten: 21
    Letzter Beitrag: 05.08.2007, 16:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress