Hi guys
,
Background:
My project requires me to build a customized design to spin a cylinder.
Equipment:
I have a question about controlling the BLDC motor speed using Arduino with an ESC powered by one 2S Lipo battery (7.4V nominal).
Firstly, I tried to get the motor to work by calibrating the ESC which uses the setting: neutral (1500us), full throttle (2000us) and full reverse (1000us), and it worked! Here, I use a function in the Servo library called writeMicroseconds.
However, my project doesn't require the motor to switch direction during the experiment. Therefore, I think I can re-calibrate the ESC to allocate more 'range' for one direction. However, I do notice one thing: it seems the motor doesn't react to small signal change such that if I put 1550us, the motor doesn't move. It starts to spin if I put 1600us.
If I do the math correctly, for such setting (neutral = 1500us, full throttle = 2000us, 2S Lipo = 7.4V), every 100us means 1.48V = 7.4/5. For no load condition, that means the resolution for such speed control is pretty large 1.48 * 3040~ 4499RPM
Question:
Here comes to my question:
I understand 50us is such a small number that corresponds 20k Hz. Is it possible to have a finer speed control resolution? By finer, I mean the resolution is in the order of 100RPM?
Thank you guys in advance! Your input would be greatly appreciated!