#include "IR_remote.h"
#include "keymap.h"
IRremote ir(3);
#include <Servo.h>
int base_degress;
int arm_degress;
int claw_degress;
int counter;
int Left_Tra_Value;
int Center_Tra_Value;
int Right_Tra_Value;
int Black_Line;
Servo myservo1;
Servo myservo2;
Servo myservo3;
void setup()
{
IRremote ir(3);
base_degress = 90;
arm_degress = 90;
claw_degress = 90;
counter = 1;
myservo1.attach(9);
myservo2.attach(10);
myservo3.attach(11);
myservo1.write(claw_degress);
delay(500);
myservo2.write(arm_degress);
delay(500);
myservo3.write(base_degress);
delay(500);
pinMode(2, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
Stop();
Serial.begin(9600);
pinMode(7, INPUT);//Left line tracking sensor is connected to the digital IO port D7
pinMode(8, INPUT);//Center line patrol sensor is connected to the digital IO port D8
pinMode(A1, INPUT);//Right line tracking sensor is connected to the digital IO port D9
Left_Tra_Value = 1;
Center_Tra_Value = 1;
Right_Tra_Value = 1;
Black_Line = 1;
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(A1, INPUT);
pinMode(2, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
}
void intialize(){
myservo1.write(90);//make claw servo 1 rotate to 90°
delay(200);
myservo2.write(135);//make arm servo 2 rotate to 135°
delay(200);
myservo3.write(90);//make base servo 3 rotate to 90°
delay(200);
}
void loop(){
if(counter==1) // do only if counter is 1
{
intialize();
counter--; //decrease counter by 1
}
if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_UP) {
Move_Forward(100);
delay(300);
Stop();
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_DOWN) {
Move_Backward(100);
delay(300);
Stop();
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_LEFT) {
Rotate_Left(70);
delay(300);
Stop();
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_RIGHT) {
Rotate_Right(70);
delay(300);
Stop();
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_OK) {
Stop();
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_9) {
claw_degress = claw_degress - 5;
if (claw_degress <= 50) {
claw_degress = 50;
}
myservo1.write(claw_degress);
delay(2);
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_7) {
claw_degress = claw_degress + 5;
if (claw_degress >= 180) {
claw_degress = 180;
}
myservo1.write(claw_degress);
delay(2);
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_2) {
arm_degress = arm_degress + 5;
if (arm_degress >= 180) {
arm_degress = 180;
}
myservo2.write(arm_degress);
delay(2);
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_8) {
arm_degress = arm_degress - 5;
if (arm_degress <= 0) {
arm_degress = 0;
}
myservo2.write(arm_degress);
delay(2);
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_4) {
base_degress = base_degress + 5;
if (base_degress >= 180) {
base_degress = 180;
}
myservo3.write(base_degress);
delay(2);
} else if (ir.getIrKey(ir.getCode(),1) == IR_KEYCODE_6) {
base_degress = base_degress - 5;
if (base_degress <= 0) {
base_degress = 0;
}
myservo3.write(base_degress);
delay(2);
}
}
void Move_Backward(int speed) {
digitalWrite(2,LOW);
analogWrite(5,speed);
digitalWrite(4,HIGH);
analogWrite(6,speed);
}
void Rotate_Right(int speed) {
digitalWrite(2,HIGH);
analogWrite(5,speed);
digitalWrite(4,HIGH);
analogWrite(6,speed);
}
void Rotate_Left(int speed) {
digitalWrite(2,LOW);
analogWrite(5,speed);
digitalWrite(4,LOW);
analogWrite(6,speed);
}
void Stop() {
digitalWrite(2,LOW);
analogWrite(5,0);
digitalWrite(4,HIGH);
analogWrite(6,0);
}
void Move_Forward(int speed) {
digitalWrite(2,HIGH);
analogWrite(5,speed);
digitalWrite(4,LOW);
analogWrite(6,speed);
}
void Infrared_Tracing()
{
int Left_Tra_Value = 1;
int Center_Tra_Value = 1;
int Right_Tra_Value = 1;
Left_Tra_Value = digitalRead(7);
Center_Tra_Value = digitalRead(8);
Right_Tra_Value = digitalRead(A1);
Serial.print("Left Tracking value:");
Serial.println(Left_Tra_Value);
Serial.print("Center Tracking value:");
Serial.println(Center_Tra_Value);
Serial.print("Right Tracking value:");
Serial.println(Right_Tra_Value);
Serial.println("");
delay(500);
}
Left_Tra_Value = digitalRead(7);
Center_Tra_Value = digitalRead(8);
Right_Tra_Value = digitalRead(A1);
if (Left_Tra_Value != Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value != Black_Line)) {
Move_Forward(120);
} else if (Left_Tra_Value == Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value != Black_Line)) {
Rotate_Left(80);
} else if (Left_Tra_Value == Black_Line && (Center_Tra_Value != Black_Line && Right_Tra_Value != Black_Line)) {
Rotate_Left(120);
} else if (Left_Tra_Value != Black_Line && (Center_Tra_Value != Black_Line && Right_Tra_Value == Black_Line)) {
Rotate_Right(120);
} else if (Left_Tra_Value != Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value == Black_Line)) {
Rotate_Right(80);
} else if (Left_Tra_Value == Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value == Black_Line)) {
Stop();
}
}
void Move_Forward(int speed) {
digitalWrite(2,HIGH);
analogWrite(5,speed);
digitalWrite(4,LOW);
analogWrite(6,speed);
}
void Stop() {
digitalWrite(2,LOW);
analogWrite(5,0);
digitalWrite(4,HIGH);
analogWrite(6,0);
}
void Move_Backward(int speed) {
digitalWrite(2,LOW);
analogWrite(5,speed);
digitalWrite(4,HIGH);
analogWrite(6,speed);
}
void Rotate_Right(int speed) {
digitalWrite(2,HIGH);
analogWrite(5,speed);
digitalWrite(4,HIGH);
analogWrite(6,speed);
}
void Rotate_Left(int speed) {
digitalWrite(2,LOW);
analogWrite(5,speed);
digitalWrite(4,LOW);
analogWrite(6,speed);
}
2222:196:3: error: 'Left_Tra_Value' does not name a type
Left_Tra_Value = digitalRead(7);
^~~~~~~~~~~~~~
2222:197:3: error: 'Center_Tra_Value' does not name a type
Center_Tra_Value = digitalRead(8);
^~~~~~~~~~~~~~~~
2222:198:3: error: 'Right_Tra_Value' does not name a type
Right_Tra_Value = digitalRead(A1);
^~~~~~~~~~~~~~~
2222:199:3: error: expected unqualified-id before 'if'
if (Left_Tra_Value != Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value != Black_Line)) {
^~
2222:202:5: error: expected unqualified-id before 'else'
} else if (Left_Tra_Value == Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value != Black_Line)) {
^~~~
2222:204:5: error: expected unqualified-id before 'else'
} else if (Left_Tra_Value == Black_Line && (Center_Tra_Value != Black_Line && Right_Tra_Value != Black_Line)) {
^~~~
2222:206:5: error: expected unqualified-id before 'else'
} else if (Left_Tra_Value != Black_Line && (Center_Tra_Value != Black_Line && Right_Tra_Value == Black_Line)) {
^~~~
2222:208:5: error: expected unqualified-id before 'else'
} else if (Left_Tra_Value != Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value == Black_Line)) {
^~~~
2222:210:5: error: expected unqualified-id before 'else'
} else if (Left_Tra_Value == Black_Line && (Center_Tra_Value == Black_Line && Right_Tra_Value == Black_Line)) {
^~~~
2222:214:1: error: expected declaration before '}' token
}
^
Multiple libraries were found for "Servo.h"
Used: C:\Users---\OneDrive\Documents\Arduino\libraries\Servo
Not used: C:\Program Files (x86)\Arduino\libraries\Servo
exit status 1
'Left_Tra_Value' does not name a type