I need to control the speed of my autonomous Arduino Uno robot, but I have been restricted. I can not use any MCU libraries such as analogWrite, any hardware devices or modules from the MCU (timers).
I have thought of just turning the motors off and on at very small intervals and putting that in a loop. But I am trying to find a more efficient and clean way of doing it. I need to be able to control the speed to 75%, 50%, and 25% of the normal speed, and turning the motors on and off, it gets complicated.
How do I control the speed of the motors in a more efficient way?