BLDC Motor Controller reverse with relay module

I’m trying to reverse a sensored brushless motor which uses a sine wave controller. the reverse connector has two wires connected by a molex and it moves the motor in the reverse direction when those connectors are bridged and in the forward direction when disconnected.


But I couldn’t get to switch the direction of the motor without touching the reverse connector. I’ve tried using a relay module to switch between forward and reverse direction but it doesn’t work as intended; if one of the reverse pins is connected to NC and the other to COM it reverses when it receives HIGH signal but doesn’t move at all when it receives LOW signal rather than move forward. But it it’s switched to NO then it moves forward when the input signal is high but doesn’t move if the input is LOW signal rather than move in the reverse direction.

I’ve not sure what I’m doing wrong and any help/suggestion is really appreciated. Code snippet to move the motor is below:

int reverse_pin1 = 5;
int throttle_pin = 6;

int hall1 = 2;
int hall2 = 18;
int hall3 = 19;

void setup() {
  pinMode(hall1, INPUT);
  pinMode(hall2, INPUT);
  pinMode(hall3, INPUT);

void loop() {  
  digitalWrite(reverse_pin1, LOW);
  //digitalWrite(reverse_pin1, HIGH);
  analogWrite(throttle_pin, 100);

show the wiring, too.

This is the motor and controller:

This is the wiring, it’s a 3 phase bldc motor:

This is the wiring of the relay module to the reverse pin:

If you’re using a relay like this, it should be behaving exactly as a mechanical
switch in the same situation - if so then presumable using a switch won’t work

I think a possibility is that the motor controller is too smart to let you change direction
when the motor is moving, and you have to bring the speed to zero first, then change
direction and accelerate up again.

[Note that reversing a motor at full speed will pull twice the stall current, which is likely
to cause problems (burn out the controller) - hence the protection]

I’ve tried moving it in the reverse direction from a state of rest but that didn’t work either. But it seems there is some kind of protection like you stated because the motor moves slightly for a second then no movement.

Also the hall sensor pins reads 011 continuously.

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