Professional Documents
Culture Documents
Line Following Robot Programming
Line Following Robot Programming
int sensor4 = 9;
int sensor5 = 8;
void setup()
pinMode(dirR, OUTPUT);
pinMode(speedR, OUTPUT);
pinMode(dirL, OUTPUT);
pinMode(speedL, OUTPUT);
pinMode(pb, INPUT);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(sensor4, INPUT);
pinMode(sensor5, INPUT);
while (digitalRead(pb) == 1)
stop();
digitalWrite(dirR, HIGH);
analogWrite(speedR, a);
digitalWrite(dirL, HIGH);
analogWrite(speedL, b);
digitalWrite(dirR, LOW);
analogWrite(speedR, a);
digitalWrite(dirL, LOW);
analogWrite(speedL, b);
}
void right(int a, int b) //a=right motor, b=left motor
digitalWrite(dirR, LOW);
analogWrite(speedR, a);
digitalWrite(dirL, HIGH);
analogWrite(speedL, b);
digitalWrite(dirR, HIGH);
analogWrite(speedR, a);
digitalWrite(dirL, LOW);
analogWrite(speedL, b);
void stop()
analogWrite(speedR, 0);
analogWrite(speedL, 0);
void loop()
int s1 = digitalRead(sensor1);
int s2 = digitalRead(sensor2);
int s3 = digitalRead(sensor3);
int s4 = digitalRead(sensor4);
int s5 = digitalRead(sensor5);
if (s1 == LOW && s2 == LOW && s3 == HIGH && s4 == LOW && s5 == LOW) //12*45 - Situation #1
if (s1 == LOW && s2 == LOW && s3 == HIGH && s4 == HIGH && s5 == LOW) //12**5 - Situation #2
if (s1 == LOW && s2 == HIGH && s3 == HIGH && s4 == LOW && s5 == LOW) //1**45 - Situation #3
if (s1 == LOW && s2 == LOW && s3 == LOW && s4 == HIGH && s5 == LOW) //123*5 - Situation #4
if (s1 == LOW && s2 == HIGH && s3 == LOW && s4 == LOW && s5 == LOW) //1*345 - Situation #5
}
if (s1 == LOW && s2 == LOW && s3 == LOW && s4 == HIGH && s5 == HIGH) //123** - Situation #6
if (s1 == HIGH && s2 == HIGH && s3 == LOW && s4 == LOW && s5 == LOW) //**345 - Situation #7
if (s1 == LOW && s2 == LOW && s3 == LOW && s4 == LOW && s5 == HIGH) //1234* - Situation #8
if (s1 == HIGH && s2 == LOW && s3 == LOW && s4 == LOW && s5 == LOW) //*2345 - Situation #9
if (s1 == LOW && s2 == LOW && s3 == LOW && s4 == LOW && s5 == LOW) //12345 - Situation #10
if (s1 == LOW && s2 == HIGH && s3 == HIGH && s4 == HIGH && s5 == LOW) //1***5 - Situation #11
if (s1 == HIGH && s2 == HIGH && s3 == HIGH && s4 == LOW && s5 == LOW) //***45 - Situation #12
{
if (s1 == LOW && s2 == LOW && s3 == HIGH && s4 == HIGH && s5 == HIGH) //12*** - Situation #13
if (s1 == LOW && s2 == HIGH && s3 == HIGH && s4 == HIGH && s5 == HIGH) //1**** - Situation #14
if (s1 == HIGH && s2 == HIGH && s3 == HIGH && s4 == HIGH && s5 == LOW) //****5 - Situation #15
if (s1 == HIGH && s2 == HIGH && s3 == HIGH && s4 == HIGH && s5 == HIGH) //***** - Situation #16
stop();