I'm sorry if this question is too stupid, unfortunately I have a very low experience with BLDC motors.
I would like to use 4 x 350W, 24VDC brushless motor hubs for my wheeled robot (they are usually used for ATVs or hover boards). Each motor is geared and comes with an encoder with 1024 pulses/rev.
The problem is that when the robot isn't moving, the wheels/motors can still move since they act like free wheels when no power is applied and this is bad if the robot stops in slope or if someone tries to pull/push the robot because it can be easily moved.
I never had this problem with other robots since I always used brushed DC motors with angled gearbox with high output torque so it was very hard to move the wheels when the robot is stopped.
The brushless motors come with U,V,W wires, three wires for Hall sensor, two wires for encoder, two wires for +5VDC and GND.
I was reading a discussion on researchgate about braking by shorting motor terminals. Few days ago, I've read a very interesting discussion on this forum about the difference between brushless and stepper motors. I think what I need should be the holding torque like it happens for stepepr motors.
I was thinking to try to implement something like that via software:
- the robot is not moving
- check if encoder pulses are changing and their direction
- if they are changing, then the robot is moving in free wheel
- if moving, try to apply power in opposite direction till encoder pulses are NULL.
This procedure looks complex for me so I would like to know if there is any smarter electronic solution.
P.S. I forgot to mention that obviously the controller can store the energy produced during the braking into the batteries.