Mower Motor AM Board 1.4 => BLDC8015A => ACT 57BL03 Motor - Zu hoher Strom (APP) + Kein RPM

jcbmania

New member
Hallo Zusammen,

Mein Mähmotor schaltet ab, wenn ich ihn manuell starte mit der Quittung:
ERROR: mow motor, average rpm too low: pwm=189.34 pwmLP=100.70 rpmLP=0.00

Mit der Mähscheibe versehen kommen auch unglaubliche Stromwerte, die ich so nicht messen kann (max 1,4 A) mit Digitalmultimeter

Vielleicht kann mir jemand helfen der die gleiche Konstellation hat wie ich:

Ardumower Mainboard 1.4 Mit Sunray,1.0.286, 1,97, Adafruit Grand Central M4
Grünes Ardumower Brushless Board (ohne Version) by BS 08/2020 => keine PullUps verlötet!! (vielleicht is das der Fehler) Das WIKI hat das für meine Boards nicht angegeben.
BLDC8015A Treiber korrekt angeschlossen Siehe Foto. Das Adapterboard verwende ich nicht, da ich das Flachbandkabel schneiden musste. Daher direkt verbunden. Beide Kippschalter aus.

Die config.h
Code:
#define MOTOR_DRIVER_BRUSHLESS   1     // uncomment this for new brushless motor drivers
//#define MOTOR_DRIVER_BRUSHLESS_MOW_DRV8308  1 // uncomment for brushless DRV8308 driver and mowing motor
//#define MOTOR_DRIVER_BRUSHLESS_MOW_A4931  1    // uncomment for brushless A3931 driver and mowing motor
#define MOTOR_DRIVER_BRUSHLESS_MOW_BLDC8015A 1  // uncomment for brushless BLDC8015A driver and mowing motor
//#define MOTOR_DRIVER_BRUSHLESS_MOW_JYQD 1  // uncomment for brushless JYQD driver and mowing motor (https://forum.ardumower.de/threads/jyqd-treiber-und-sunray.24811/)
//#define MOTOR_DRIVER_BRUSHLESS_GEARS_DRV8308  1   // uncomment for brushless DRV8308 driver and gear/traction motors
//#define MOTOR_DRIVER_BRUSHLESS_GEARS_A4931  1    // uncomment for brushless A4931 driver and gear/traction motors
#define MOTOR_DRIVER_BRUSHLESS_GEARS_BLDC8015A 1   // uncomment for brushless BLDC8015A driver and gear/traction motors
//#define MOTOR_DRIVER_BRUSHLESS_GEARS_JYQD 1   // uncomment for brushless JYQD driver and gears/traction motor

#define MOTOR_FAULT_CURRENT 6.0    // gear motors fault current (amps)
#define MOTOR_OVERLOAD_CURRENT 0.8    // gear motors overload current (amps)

//#define USE_LINEAR_SPEED_RAMP  true      // use a speed ramp for the linear speed
#define USE_LINEAR_SPEED_RAMP  false      // do not use a speed ramp

// motor speed control (PID coefficients) - these values are tuned for Ardumower motors
// general information about PID controllers: https://wiki.ardumower.de/index.php?title=PID_control
#define MOTOR_PID_KP     2.0    // do not change 2.0 (for non-Ardumower motors or if the motor speed control is too fast you may try: KP=1.0, KI=0, KD=0)
#define MOTOR_PID_KI     0.03   // do not change 0.03
#define MOTOR_PID_KD     0.03   // do not change 0.03

#define MOTOR_LEFT_SWAP_DIRECTION 1  // uncomment to swap left motor direction
#define MOTOR_RIGHT_SWAP_DIRECTION 1  // uncomment to swap right motor direction

// ------------ dynamic gear motors speed ----------------
// speed will be adjusted by the mowing motor current. If USE_MOWMOTOR_CURRENT_AVERAGE is set to false, the Speed
// will be changed if the mow Current is lower or higher than MOWMOTOR_CURRENT_FACTOR * MOW_OVERLOAD_CURRENT.
// If USE_MOWMOTOR_CURRENT_AVERAGE is set to true the algorithm will detect the current at the middle PWM of the mowMotor.
// The mowing average will be calculate over 10000 loops and start at MOWMOTOR_CURRENT_FACTOR.
#define ENABLE_DYNAMIC_MOWER_SPEED false
#define SPEED_ACCELERATION 0.005 // Speed factor will be changed with every programm loop

#define SPEED_FACTOR_MAX 1.2
#define SPEED_FACTOR_MIN 0.5
#define USE_MOWMOTOR_CURRENT_AVERAGE true
#define MOWMOTOR_CURRENT_FACTOR 0.25


// ----- mowing motor -------------------------------------------------
// NOTE: motor drivers will indicate 'fault' signal if motor current (e.g. due to a stall on a molehole) or temperature is too high for a
// certain time (normally a few seconds) and the mower will try again and set a virtual obstacle after too many tries
// On the other hand, the overload detection will detect situations the fault signal cannot detect: slightly higher current for a longer time

#define MOW_FAULT_CURRENT 8.0       // mowing motor fault current (amps)
#define MOW_OVERLOAD_CURRENT 2.0    // mowing motor overload current (amps)

// should the direction of mowing motor toggle each start? (yes: true, no: false)
#define MOW_TOGGLE_DIR       true
//#define MOW_TOGGLE_DIR       false

// should the error on motor overload detection be enabled?
#define ENABLE_OVERLOAD_DETECTION  true    // robot will stop on overload
//#define ENABLE_OVERLOAD_DETECTION  false    // robot will slow down on overload

// should the motor fault (error) detection be enabled?
#define ENABLE_FAULT_DETECTION  true
//#define ENABLE_FAULT_DETECTION  false       // use this if you keep getting 'motor error'

#define ENABLE_RPM_FAULT_DETECTION  true     // use mow rpm signal to detect a motor fault (requires mowing motor with rpm output!)
//#define ENABLE_RPM_FAULT_DETECTION  false     // do not use mow rpm signal to detect a motor fault

// should the robot trigger obstacle avoidance on motor errors if motor recovery failed?
#define ENABLE_FAULT_OBSTACLE_AVOIDANCE false 

// ----------- dynamic mowingm motor RPM --------------
// RPM of the mow motor will be adjust over the actual current of the mow motor. If the motor needs more current the PWM will be higher.
// it can be used 3 different functions for the calculation of the PWM depended´nt on the mowMotor current. The root-Function is recommended
#define ENABLE_DYNAMIC_MOWMOTOR true // set true to activate, set false to deactivate
#define DYNAMIC_MOWMOTOR_ALGORITHM 2 // 1 - linear; 2 - root-Function; 3 - square-Function
#define MIN_MOW_RPM 170   //minimum value of mow RPM
#define MAX_MOW_RPM 255   // maximum value is 255

In einem anderen Thread habe ich gesehen, dass der Nutzer im Code Änderungen vorgenommen hatte. Jedoch konnte ich diese nicht nachvollziehen, da ich seine Version völlig anders war.

Daher ist mein Code unverändert.

Die beiden Gear Motoren aus dem Shop laufen einwandfrei daher hatte ich mich nach einem Rückschlag mit dem original Mähtreiber für die BLDC8015A eintschieden.


Bin für jede Hilfe dankbar.

Beste Grüße,

Jens
 
Ich habe jetzt erstmal einen neuen Brushless Adapter geholt. Meine Befürchtung ist, dass ich beim ersten mal, als ich den A3931 gehimmelt hatte auch das Brushless Board (oder zumindest die Chips für den Mähmotor) mit in den Abgrund gerissen habe.

Auf jeden Fall ist auch mit der Mäh-Scheibe dran keine Nennenswerte Stromüberschreitung zu erkennen.
Da leider der Mower den Betrieb verweigert, wenn "er" einen zu hohen Stromanstieg sieht, kann ich somit erstmal nicht mähen.

Weitere Beobachtungen, die ich gemacht hatte, zeigten, dass der Mähmotor im AT+Q Test keinerlei Anstalten machte, die Geschwindigkeit zu ändern. Es blieb immer konstant.
Mit der RV Funktion des 8015 Treibers konnte ich die Geschwindigkeit sauber regeln.

Somit: Warten auf Dienstag. Marotronics ist ja derzeit ziemlich schnell. Ich hoffe, ich bekomme noch einen ab.

In diesem Sinne
 
Ich habe das Problem gelöst, indem ich "#define ENABLE_DYNAMIC_MOWMOTOR true // set true to activate, set false to deactivate" auf false gesetzt habe.
 
Danke Dir, das hatte ich bereits versucht. Es sieht tatsächlich so aus, dass ich das BL Adapterboard auch gehimmellt habe. Das neue funktioniert einwandfrei.

Trotz allem, danke für deine Antwort.

Gruß,

Jens
 
Oben