PWM invertiert??

Mark

Member
Hallo,

Ich experimentiere aktuell mit dem Board 1.3 und der Azurit Software. Das Board soll mit mit zwichengeschalteten LevelShifter den "QS-909 JYQD" BLDC Treiber und Faulhaber Außenläufern meinen Selbstbau antreiben.

Das PWM für Vorwärts arbeitet auch wie erwartet. Nur das PWM für die Rückwärtige Bewegung oder auch wenn einer der Motoren in der Drehrichtung geändert werden soll ( was ich auch benötige beim rechten) bekomme ich ein invertiertes PWM Signal aus dem Ardumover board heraus. Welches der BLDC Treiber als nahezu vollgas versteht. Wenn bedarf besteht kann ich auch gerne Screenshots vom Oszilloskop liefern.

Hat jemand eine Idee was ich in der Software ändern muß damit das Ardumover-board auch bei Drehrichtungsumkehr ein "normales" PWM liefert?
(evtl ein Hinweis zum Foren Thema wo dies schon gelöst wurde?)

besten Dank - Mark
 
Das Problem liegt in der Ansteuerung des MC33926 in der Datei. drivers.cpp Funktion setMC33926

Die PWM wird hier invertiert: PinMan.analogWrite(pinPWM, 255-((byte)abs(speed)));
 
Hallo,

Ich experimentiere aktuell mit dem Board 1.3 und der Azurit Software. Das Board soll mit mit zwichengeschalteten LevelShifter den "QS-909 JYQD" BLDC Treiber und Faulhaber Außenläufern meinen Selbstbau antreiben.

Das PWM für Vorwärts arbeitet auch wie erwartet. Nur das PWM für die Rückwärtige Bewegung oder auch wenn einer der Motoren in der Drehrichtung geändert werden soll ( was ich auch benötige beim rechten) bekomme ich ein invertiertes PWM Signal aus dem Ardumover board heraus. Welches der BLDC Treiber als nahezu vollgas versteht. Wenn bedarf besteht kann ich auch gerne Screenshots vom Oszilloskop liefern.

Hat jemand eine Idee was ich in der Software ändern muß damit das Ardumover-board auch bei Drehrichtungsumkehr ein "normales" PWM liefert?
(evtl ein Hinweis zum Foren Thema wo dies schon gelöst wurde?)

besten Dank - Mark
The motor driver use 1 pin for PWM and one for direction
The PWM is always send as normal in PWM PinPWM and pinDir for direction (can be 0 or 1 to change the direction.)

You need to write your own fonction for your driver (for example SetXXXX ) into driver.cpp and set the correct pin according.
See driver.cpp
line 386 for MC33926
line 170 for L9958
etc...

and now into mower.cpp into setActuator line 667 and 668
replace SetMC33926 by your own SetXXXX function

That 's all and very easy.
 
Oben