<first published on Dec 26, 2012>
The Robot kit I’m building comes with three IR line tracking sensor modules. As with the other components, documentation is only available on the web. I have not found a source of information about how to use the sensors but it doesn’t seem to be that complicated.
— UPDATE —
The sensor has IR light emitter and detector. The sensor returns the status of the IR light reflected from a surface as ON or OFF. The status of the sensor is shown by the LED. The sensor needs to be calibrated to set the threshold between light and dark.
I managed to make the robot follow a curved line using only two sensors suing the sketch below. A complete line following solution will require all three sensors.
/* Follows a line on the floor using 2 IR line sensors This sketch will guide the robot to follow a wide circle making left turns only */ #include <Motor.h> Motor motor; int time; int dir = 0; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); pinMode(10, INPUT); pinMode(11, INPUT); time = millis(); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int L = digitalRead(10); int R = digitalRead(11); // print out the value you read: Serial.print(L); Serial.print(","); Serial.println(R); int d = L - R; if(L==1 && R==1) { motor.turnRight(100); } if(L==1 && R==0) { motor.onFwd(motor.Motor_LR, 100); } if(L==0 && R==0) { motor.fwdLeft(100); delay(5); } if(L==0 && R==1) { motor.turnLeft(100); delay(5); } // stops the robot after 2 minutes if ((millis()-time) > 20000) { motor.off(motor.Motor_LR); return; } }