esc won't go slow

hey guys and gals, i can’t seem to get my esc to slow down to a reasonable speed “losi twin motor esc, and 2 venom 370 brushed motors, and the esc is hooked directly to the arduino and the motors”
here is the sketch

#include <Servo.h> 
 
Servo myservo1;  // create servo object to control a esc
int pos;
int armValue=90; //"ZERO" position for arming ESC. As some wont arm with a '0' value from the arduino.

void arm() //Arming sequence of sending a minimum or 'joystick zero' for 5-10 seconds to simulate radio gear is ON and operational. 
{
myservo1.write(armValue); 
delay(5500); //Delay for the ESC to activate. 
}
void setup() 
{ 
  myservo1.attach(5);  // attaches the esc on pin 11 to the servo object 
  arm(); // Arming sequence finished
} 

void loop() 
{
//--------------------------ESC CONTROL--------------------------------------------------------------------------------------
  for(pos = 90; pos < 100; pos += 10)  // ???questionable???
  {                                  
    myservo1.write(pos);             
    delay(5000);                          
  break;}
}

when i set the speed lower than (pos = 100) the motors won’t turn, they get power and they sound like they want to turn but they act like their is not quite enough throttle, however when i set it to (pos = 100) the motors turn quite fast. i guess my question is why is 99 not enough and 100 is to much???

R/C brushless motors don’t go very slow ever - they have no hall-sensors so have to run quite fast for the commutation circuit to detect the phase information from the back-EMF on the unpowered winding. The slowest speed is got by starting then backing off the throttle a bit. Below a certain speed a good ESC will simply cut out as the commutation signal isn’t large enough. I estimate the speed control range about 20% to 100% is likely - these motors are optimised for power-per-weight and simplicity of manufacture.

R/C brushless motors

This is a brushed motor and they can spin rather slow.

Have you tried to drop the arming routine and looping from 0 to 90 ?

I have a couple of brushed esc's, and they don't need any arming.

so after removing arming sequence and messing around with the speed, i have come to the conclusion that yes it doesn't need arming sequence but unfortunately it has reverse speed so 85 is lowest speed in reverse and 95 is the lowest forward speed. it also has the 20% to 100% speed control issue so i can't go much slower with the code and direct connection to the arduino . is there a way to slow it down with like a pulse code in the loop or maybe with resistors or maybe i am ^%*# out of luck, anyways if you have any ideas it would surely be appreciated...

Sorry, completely missed the "brushed" in the original post!! Is this ESC designed for RC aircraft? If designed for a RC car/truck it might fair better at low speeds...

You could try using microseconds instead of servo.write(), that will give a higher resolution

fx myservo.writeMicroseconds(1500); is aprox. the same as servo.write(90)

See: http://arduino.cc/en/Reference/ServoWriteMicroseconds

It would take trial and error but, I would get a ceramic 1 watt 10ohm resistor and put it in series with the motor and ESC. You will be generating heat but, it will reduce the power to the motor.