Question: Trying to put these two code together but it doesnt work. First Code is Robot Arduino Avoiding Obstacle. Second Code is a bluetooth code to

Trying to put these two code together but it doesnt work.

First Code is Robot Arduino Avoiding Obstacle. Second Code is a bluetooth code to control it when we want.. Please help.

#include

#include

#include

#define TRIG_PIN A4

#define ECHO_PIN A5

#define MAX_DISTANCE 200

#define MAX_SPEED 190 // sets speed of DC motors

#define MAX_SPEED_OFFSET 20

NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1(1, MOTOR12_64KHZ);

AF_DCMotor motor2(3, MOTOR12_64KHZ);

Servo myservo;

//++++++++++++++++++++++++++++++++++++++++++

//+++++++++++++++++++++++++++++++++++++++++++

boolean goesForward=false;

int distance = 100;

int speedSet = 0;

void setup() {

myservo.attach(9);

myservo.write(65);

delay(2000);

distance = readPing();

delay(100);

distance = readPing();

delay(100);

distance = readPing();

delay(100);

distance = readPing();

delay(100);

}

void loop() {

int distanceR = 0;

int distanceL = 0;

delay(40);

if(distance<=15)

{

moveStop();

delay(100);

moveBackward();

delay(300);

moveStop();

delay(200);

distanceR = lookRight();

delay(200);

distanceL = lookLeft();

delay(200);

delay(50);

if(distanceR>=distanceL)

{

turnRight();

moveStop();

}else

{

turnLeft();

moveStop();

}

}else

{

moveForward();

}

distance = readPing();

}

int lookRight()

{

myservo.write(0);

delay(500);

int distance = readPing();

delay(100);

myservo.write(65);

return distance;

}

int lookLeft()

{

myservo.write(125);

delay(500);

int distance = readPing();

delay(100);

myservo.write(65);

return distance;

delay(100);

}

int readPing() {

delay(70);

int cm = sonar.ping_cm();

if(cm==0)

{

cm = 250;

}

return cm;

}

void moveStop() {

motor1.run(RELEASE);

motor2.run(RELEASE);

}

void moveForward() {

if(!goesForward)

{

goesForward=true;

motor1.run(FORWARD);

motor2.run(FORWARD);

for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly

{

motor1.setSpeed(speedSet);

motor2.setSpeed(speedSet+MAX_SPEED_OFFSET);

delay(5);

}

}

}

void moveBackward() {

goesForward=false;

motor1.run(BACKWARD);

motor2.run(BACKWARD);

for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly

{

motor1.setSpeed(speedSet);

motor2.setSpeed(speedSet+MAX_SPEED_OFFSET);

delay(5);

}

}

void turnRight() {

motor1.run(FORWARD);

motor2.run(BACKWARD);

delay(300);

motor1.run(FORWARD);

motor2.run(FORWARD);

}

void turnLeft() {

motor1.run(BACKWARD);

motor2.run(FORWARD);

delay(300);

motor1.run(FORWARD);

motor2.run(FORWARD);

}

#include

AF_DCMotor motor1(1, MOTOR12_64KHZ);

AF_DCMotor motor2(3, MOTOR12_64KHZ);

#include

#define RX 50

#define TX 51

SoftwareSerial btSerial(RX, TX);

String readString;

String comand = "";

void setup() {

btSerial.begin(9600);

Serial.begin(9600);

motor1.setSpeed(250);

motor2.setSpeed(250);

}

char c ;

void loop() {

if (btSerial.available()) {

while ( btSerial.available()) {

c = (char) btSerial.read();

readString += c;

}

}

if (readString.length() > 0) {

Serial.println(readString);

if (readString == "F") {

motor1.run (FORWARD);

motor2.run (FORWARD);

delay(500);

}

if (readString == "B") {

motor1.run (BACKWARD);

motor2.run (BACKWARD);

delay(500);

}

if (readString.equals("R")) {

motor1.run (FORWARD);

motor2.run (BACKWARD);

delay(500);

}

if (readString.equals("L")) {

motor1.run (BACKWARD);

motor2.run (FORWARD);

delay(500);

}

if (readString.equals("S")) {

motor1.run (RELEASE);

motor2.run (RELEASE);

delay(500);

}

readString = "";

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!