Note: Use the WIKI for latest informationen!
The idea: The blade has the best performance with a certain minimum speed (e.g. 3300 rounds per minute/rpm). If the blade is rotating at maximum voltage (independant if there's high or low grass), it's not saving battery power, and the robot is loud too.
Now, if you measure the rotations of the blades, you can control the voltage: on high grass (rotation decreases) voltage is increased, and on low grass (rotation increases) voltage is decreased.
So, you'll need a rotation sensor for the blades, e.g. using a Hall sensor (A1302 KUA-T) and a small magnet (Neodym magnet) added on the engine shaft.
Hall Sensor A1302 +5V ---- +5V
Hall Sensor A1302 GND ---- GND
Hall Sensor A1302 Signal ---- Arduino Pin 18