BLDC Motor dreht unruhig

Hallo,
wie ich in einem vorherigen Beitrag schon erzählt habe, möchte ich einen BLDC Motor per Arduino ansteuern. Da der Motor eigentlich für Ebikes gebaut wird, muss ich mit meinem Arduino den Hallsensor im Handdrehgriff simulieren. Dass habe ich über PWM gelöst. Soweit klar, aber der Motor dreht sich nicht gleichmäßig. Mal läuft er schneller, mal langsamer (er ruckelt). Die Spannung die vom Arduino kommt habe ich schon gemessen, die ist soweit konstant. Es muss also im Controller des BLDC-Motors irgendetwas unruhig laufen oder? Dachte vielleicht dass das PWM-Signal zu schnell ist oder so. Sollte ich mal einen DAC (Digital zu Analog - Wandler) probieren?

Das ist der einfache Arduino-Code um den Motor zu testen:

const int pwmPin = 9; // PWM Pin
int x = 100; // Gewünschter PWM-Wert

void setup() {
  pinMode(pwmPin, OUTPUT); // Setzt den Digitalpin als Ausgang
  Serial.begin(9600); // Startet die serielle Kommunikation
}

void loop() {
  for (int i = 0; i <= x; i++) {
    analogWrite(pwmPin, i); // Schreibt den PWM-Wert an den Pin
    Serial.println(i); // Gibt den aktuellen Wert von i aus
    delay(100); // Wartezeit für die schrittweise Erhöhung
  }
  analogWrite(pwmPin, x); // Hält den PWM-Wert konstant auf x
  while(1); // Stoppt das Programm
}

Wisst ihr wovon die Ruckler kommen könnten?

Das sind die Links zu Motor und Controller:

Ein OszilloScope könnte da wichtige Erkenntnisse liefern.

Meinst du dass ich die Variable x mal direkt in der Schleife definieren soll?

Hallo,
wenn der Controller für den Motor einen PWM Eingang hat ist das ja ok. Wenn der Eingang für einen analoge Gleichspannung gedacht ist könnte das die Ursache sein. Wenn das Datenblatt des Controllers keine Auskunft gibt wird nur messen helfen. Was kommt an dem Handgriff genau raus ?

Normalerweise sind die "Gasgriffe" nur ein Hallsensor + Magnet und ein wenig Mechanik. Bei unseren beträgt die Ausgangsspannung 0,4 - 4,3V bei 5V Versorgungsspannung.

Ich würde vorschlagen die PWM über einen Tiefpass glätten. Dann hat man eine relativ brauchbare Analogspannung und dann sollte der Motor ruhig laufen.

Welche PWM Taktfrequenz des Arduino wird denn verwendet? Wegen Berechnung Tiefpass.

Edit: Ich Depp, oben ist ja der Sketch und der Pin. Also 490 Hz.
Also so:

Widerstand 4,7kOhm
Kondensator 10µF

Das gibt eine relativ brauchbare Spannung bei 0,05V Ripple und eine Reaktionszeit von 0 auf 90% von 0,11 Sekunden und 99% in rund 0,4 Sekunden.

Falls jemand da ein Tiefpass Berechnungstool braucht und Englisch kann:
http://sim.okawa-denshi.jp/en/CRlowkeisan.htm
Da gibts unten die Berechnung für PWM.

Geht natürlich auch.

Gruß, Jürgen

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.