0
\$\begingroup\$

I am making a huge line following robot and using arduino & sensor BLDC motor salvaged from Segway. The problem is that I am not able to control the motor properly. If the PWM signal is low the motor doesn't move, and if the PWM signal is slightly high then the motor goes at high speed. So I am not able to move the motor at slow speed which is giving problems.

Motor driver used: Kkmoon motor regulator

More info:

  1. Motor phase wire connected properly with driver
  2. Hall sensor wires not connected since it didn't make a difference in rotation when I was testing it.

Any solution to the above problem?

\$\endgroup\$
0
\$\begingroup\$

It is all down to the controller. While it is possible to somewhat control the position of a BDLC motor (not as precisely as a stepper), the controller has to support this.

The controller you link is a standard ebike controller and this won't work to have any precise control.

One DIY solution (which I would probably do) would be to take the controller apart, cutoff / unsolder the control electronics, keep the power/sensors stage, hook up an Arduino with and write a custom firmware to directly control the power stage. This will require a bit of electronic and programming knowledge but can be a fun project, especially if you want to learn.

The other solution is to try to find a BDLC controller which can specifically control the position or RPM but that might not be easy / or expensive.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ thanks for info, don't have that much electronics knowledge for now so can you suggest a better controller? \$\endgroup\$ – suu Jan 6 at 11:49
  • \$\begingroup\$ Request for specific products would be off-topic but a simple google search returns this post: forum.arduino.cc/index.php?topic=273771.0 \$\endgroup\$ – Damien Jan 6 at 11:56
0
\$\begingroup\$

While it is possible to control a BLDC motor like a stepper with an appropriate controller, you really don't want to do this. BLDC motors are wound in such a way that this kind of control is not effective; you'll get barely enough torque to move the motor rotor, and not much else.

What you really want is a better controller. It seems like you're fighting your bike controller's firmware, which is likely making decisions for you that are unique to eBikes. Since your motor is sensored, it is relatively simple to do good quality low speed control (again, with the appropriate controller). Sensored trapezoidal control would suffice, although you could get fancier and use an open source FOC controller (there are a couple good ones out there).

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Some examples of such open source drivers are VESC or Odrive. \$\endgroup\$ – Ocanath Jan 6 at 21:34
  • \$\begingroup\$ thanks for info, will look into those drivers when this project goes further. \$\endgroup\$ – suu Jan 7 at 6:24
  • \$\begingroup\$ BLDC have high torque at 0-low rpm, that is one reason why it is used in E-Scooter, EV.. \$\endgroup\$ – Damien Jan 9 at 5:17
  • \$\begingroup\$ @Damien BLDC motors do indeed have high torque at low RPM, if they are controlled properly. \$\endgroup\$ – Ocanath Jan 9 at 15:25
  • \$\begingroup\$ @Ocanath which they are otherwise they wouldn't rotate and their purpose as motor wouldn't be very successful. \$\endgroup\$ – Damien Jan 10 at 6:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.