#include <QuantSensors.h>
int sensors[6];
QuantLine line;
void setup() {
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
line.begin(true);
line.setLevel(600);
}
int speed_A = 170;
int speed_B = 155;
void loop() {
readS();
if(!sensors[0] && !sensors[1] && !sensors[2] && !sensors[3] && !sensors[4] && !sensors[5]) forward();
else if((sensors[0] || sensors[1])&& (!sensors[2] && !sensors[3]) && (sensors[4] || sensors[5])) forward();
else if(!sensors[5] && (sensors[0] || sensors[1] || sensors[2] || sensors[3] || sensors[4])) right();
else if(!sensors[0] && (sensors[5] || sensors[1] || sensors[2] || sensors[3] || sensors[4])) left();
else if(!sensors[4] && (sensors[0] || sensors[1] || sensors[2] || sensors[3] || sensors[5])) rightAlt();
else if(!sensors[3] && !sensors[4] && (sensors[0] || sensors[1] || sensors[2] || sensors[5]))rightAlt();
else if(!sensors[1] && !sensors[2] && (sensors[0] || sensors[3] || sensors[4] || sensors[5])) leftAlt();
else if(!sensors[1] && (sensors[0] || sensors[5] || sensors[2] || sensors[3] || sensors[4])) leftAlt();
}
void moveTest(){
forward();
delay(2000);
backward();
delay(2000);
left();
delay(2000);
right();
delay(2000);
}
void readS(){
for (uint8_t i = 0; i < 6; i++) {
sensors[i] = line.readLineSensorBool(i);
Serial.print(sensors[i]);
}
Serial.println();
}
void forward(){
Serial.println("F");
digitalWrite(6, LOW);
analogWrite(5, speed_A);
digitalWrite(9, LOW);
analogWrite(10, speed_B);
}
void backward(){
Serial.println("B");
digitalWrite(6, HIGH);
analogWrite(5, map(speed_A, 0, 255, 255, 0));
digitalWrite(9, HIGH);
analogWrite(10, map(speed_B, 0, 255, 255, 0));
delay(2000);
}
void right(){
Serial.println("R");
digitalWrite(6, LOW);
analogWrite(5, speed_A);
digitalWrite(9, HIGH);
analogWrite(10, map(speed_B/1.6, 0, 255, 255, 0));
}
void rightAlt(){
Serial.println("AR");
digitalWrite(6, LOW);
analogWrite(5, speed_A - 30);
digitalWrite(9, LOW);
analogWrite(10, speed_B+30);
}
void left(){
Serial.println("L");
digitalWrite(6, HIGH);
analogWrite(5, map(speed_A/1.6, 0, 255, 255, 0));
digitalWrite(9, LOW);
analogWrite(10, speed_B);
}
void leftAlt(){
Serial.println("AL");
digitalWrite(6, LOW);
analogWrite(5, speed_A+30);
digitalWrite(9, LOW);
analogWrite(10, speed_B - 30);
}
void stp(){
Serial.println("S");
digitalWrite(6, LOW);
analogWrite(5, 0);
digitalWrite(9, LOW);
analogWrite(10, 0);
}