Hi guys,
I am trying to commutate BLDC motor using encoder and one revulation is 1024 encoder value.And motor 10 pole pairs,in this case 18 encoder value(60 electrical degree) equals 6 mechanical degree so that when the rotor reached the 18 alteration I have to perform next stage.
For example now rotor in 0. position and rotate encoder 13 value and then rotate CCW -10(1024-13-10= 1001) I can't decice how can I find the right sequence.I can't find a good solution algorithm for it?How people do it right?
What I have tried:
encoderValue = Get_Encoder_Pos();
if(((encoderValue - xEncoderValue) >= 18) && dir==1)
{
Set_Commutation_and_DutyCycle(table[x],PWM);
}