It is a simple circuit with a LM358 op-amp and is able to operate from 9v to 12V. The LM358 contains two op amps which are wired as comparators. Thus when the voltage at the non-inverting terminal (+) is higher than inverting terminal (-) its output will be high and when the voltage at the inverting terminal (-) is higher than non-inverting terminal (+) the output will be low. Outputs of the op-amp comparators are given to transistors which are wired as switch to drive the motors. Diodes D3 and D4 are provided to cancel the negative voltages produced due to the back emf of the motor.
When a sensor is on white color, LED light will be reflected to the corresponding LDR. As a result, resistances of LDR decreases and the voltage at non-inverting terminal (+) of the op-amp will increase. Thus op-amp output goes high and turns on the transistor, which rotates the motor. When a sensor is on black color, LED light will not be reflected to LDR, thus the output of the op-amp will be low and the motor will be off.
Thus when the both sensor are on white color, it will run both motors forward and when any of them on black color it will stop the corresponding motor. Thus the robot turns in corresponding direction since one motor is running.
The sensitivity of the LDR can be adjusted by using the 10K pot. For more accuracy, cover the sensor-LED pairs in a black wrapper through sides in such a way that only the reflected light falls on the LDR. The Line Follower can trace path drawn with black ink on a white chart and the width of the black track should be a litte less than the width between sensors.
Article courtesy of electrosome.com