#define m2 4
#define m3 2
#define m4 3
#define e1
#define e2 10
//**********5 Channel IR Sensor Connection**********//
#define ir1 A1
#define ir2 A2
#define ir3 A3
#define ir4 A4
#define ir5 A5
//*************************************************//
int speed = 150;
void
{
pinMode(m1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(m3, OUTPUT);
pinMode(m4, OUTPUT);
pinMode(e1, OUTPUT);
pinMode(e2,
pinMode(ir1, INPUT);
pinMode(ir2, INPUT);
pinMode(ir3, INPUT);
pinMode(ir4, INPUT);
pinMode(ir5, INPUT);
Serial.begin(9600);
Serial.println("Start");
delay(1000);
}
void
{
// CarTest();
// //Reading Sensor Values
Serial.print(s1);
Serial.print("\t");
Serial.print(s2);
Serial.print("\t");
Serial.print(s3);
Serial.print("\t");
Serial.print(s4);
Serial.print("\t");
Serial.print(s5);
Serial.print("\t");
// delay(500);
// print Froward , Right , Left in the serial monitor
if (s1 == 0 && s2 == 0 && s3 == 1 && s4 == 0 && s5 == 0)
{
Serial.println("Forward");
}
if (s1 == 1 && s2 == 1 && s3 == 0 && s4 == 0 && s5 == 0)
{
Serial.println("Right");
}
if (s1 == 1 && s2 == 0 && s3 == 0 && s4 == 0 && s5 == 0)
{
Serial.println("Right");
}
if (s1 == 0 && s2 == 1 && s3 == 0 && s4 == 0 && s5 == 0)
{
Serial.println("Right");
}
if (s1 == 0 && s2 == 1 && s3 == 1 && s4 == 0 && s5 == 0)
{
Serial.println("Right");
}
if (s1 == 0 && s2 == 0 && s3 == 0 && s4 == 1 && s5 == 1)
{
Serial.println("Left");
}
if (s1 == 0 && s2 == 0 && s3 == 0 && s4 == 0 && s5 == 1)
{
Serial.println("Left");
}
if (s1 == 0 && s2 == 0 && s3 == 0 && s4 == 1 && s5 == 0)
{
Serial.println("Left");
}
if (s1 == 0 && s2 == 0 && s3 == 1 && s4 == 1 && s5 == 0)
{
Serial.println("Left");
}
if (s1 == 0 && s2 == 0 && s3 == 0 && s4 == 0 && s5 == 0)
{
Serial.println("Stop");
}
delay(500);
// //if only middle sensor detects black line
// if((s1 == 1) && (s2 == 1) && (s3 == 0) && (s4 == 1) && (s5 == 1))
// {
// //going forward with full
// Forward(speed);
//
// //if only left sensor detects black line
// if((s1 == 1) && (s2 == 0) && (s3 == 1) && (s4 == 1) && (s5 == 1))
// {
// //going right with full
// Right(speed);
//
// //if only left most sensor detects black line
// if((s1 == 0) && (s2 == 1) && (s3 == 1) && (s4 == 1) && (s5 == 1))
// {
// //going right with full
// Right(speed);
// }
// //if only right sensor detects black line
// if((s1 == 1) && (s2 == 1) && (s3 == 1) && (s4 == 0) && (s5 == 1))
// {
// //going left with full
// Left(speed);
// }
// //if only right most sensor detects black line
// if((s1 == 1) && (s2 == 1) && (s3 == 1) && (s4 == 1) && (s5 == 0))
// {
// //going left with full
// Left(speed);
// }
// //if middle and right sensor detects black line
// if((s1 == 1) && (s2 == 1) && (s3 == 0) && (s4 == 0) && (s5 == 1))
// {
// //going left with full
// Left(speed);
// }
// //if middle and left sensor detects black line
// if((s1 == 1) && (s2 == 0) && (s3 == 0) && (s4 == 1) && (s5 == 1))
// {
// //going right with full speed
// Right(speed);
// }
// //if middle, left and left most sensor detects black line
// if((s1 == 0) && (s2 == 0) && (s3 == 0) && (s4 == 1) && (s5 == 1))
// {
// //going right with full speed
// Right(speed);
// }
// //if middle, right and right most sensor detects black line
// if((s1 == 1) && (s2 == 1) && (s3 == 0) && (s4 == 0) && (s5 == 0))
// {
// //going left with full speed
// Left(speed);
// }
// //if all sensors are on a black line
// if((s1 == 0) && (s2 == 0) && (s3 == 0) && (s4 == 0) && (s5 == 0))
// {
// //stop
// Stop();
// }
// delay(100);
}
void Forward(int
{
analogWrite(e1, speed);
analogWrite(e2, speed);
digitalWrite(m1, HIGH);
digitalWrite(m2, LOW);
digitalWrite(m3, HIGH);
digitalWrite(m4, LOW);
}
void Backward(int
{
analogWrite(e1, speed);
analogWrite(e2, speed);
digitalWrite(m1, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m3, LOW);
digitalWrite(m4, HIGH);
}
void Right(int
{
analogWrite(e1, speed);
analogWrite(e2, speed);
digitalWrite(m1, HIGH);
digitalWrite(m2, LOW);
digitalWrite(m3, LOW);
digitalWrite(m4, LOW);
}
void Left(int
{
analogWrite(e1, speed);
analogWrite(e2, speed);
digitalWrite(m1, LOW);
digitalWrite(m2, LOW);
digitalWrite(m3, HIGH);
digitalWrite(m4, LOW);
}
void
{
digitalWrite(m1, LOW);
digitalWrite(m2, LOW);
digitalWrite(m3, LOW);
digitalWrite(m4, LOW);
void
{
Forward(150);
delay(1000);
Backward(150);
Right(150);
Left(150);
Stop();
delay(1000);
}