I am planning to make a small autonomous robot for avoiding obstacles from an RC car with a PIC for the control and a H bridge to control motor directions. I just want to know if I can use a sort of delay in my outputs to control the speed of the motor. For example maybe the motor runs for a second and then off for a second, is this the simplest way to control the speed of a motor and will this repeated on/off damage the motor if traveling long distances? Is there any other problems I may encounter with my robot as a result of this?
That is a very good way to control the speed of small DC motors. Only the switching occurs at a much higher rate, 100's to 1,000's times per second. There must be dozens of threads for motor control. Try the search facility, and you should find lots of info.