Please corect this code

Is Google broken today ?

thank you it worked

but another error popped up
at the last line of the code it says
distance’ was not declared in this scope

please reply i will be gratefull to you

#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>

#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

AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(3, MOTOR12_1KHZ);

Servo myservo;
void setup() {
myservo.attach(9);
myservo.write(115);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100); // put your setup code here, to run once:

}

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);

if(distanceR>=distanceL)
{
turnRight();
moveStop();
}else
{
turnLeft();
moveStop();
}
}else
{
moveForward();
}
distance = readPing();
}// put your main code here, to run repeatedly:

}

“this is the real code”

Is the compiler telling the truth ?

Where is distance declared ?

The easier you make it to read and copy the code the more likely it is that you will get help

Please follow the advice given in the link below when posting code

#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>

#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

AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(3, MOTOR12_1KHZ);

Servo myservo;
void setup() {
myservo.attach(9);
myservo.write(115);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100); // put your setup code here, to run once:

}

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);

if(distanceR>=distanceL)
{
turnRight();
moveStop();
}else
{
turnLeft();
moveStop();
}
}else
{
moveForward();
}
<distance = readPing();>
}// put your main code here, to run repeatedly:

}

i put {<>} where the error code is

I note that you have ignored the advice to use code tags when posting code

So, where is distance declared in your code ?

i did not understand what code tags are

i am a starter to arduino

You don’t even need to know what they are if you follow the advice in the link

  • In the Arduino IDE under the ‘Edit’ menu there is ‘Copy for Forum’, this puts your code on the clipboard with code tags added ready to paste into your question.

let me try

I also suggest that you post your complete code; there seem to be missing functions like moveStop(), turnLeft() etc.

Hi,
I don’t think you understand how to use NewPing either.

Have you written your code in stages?
You should have some code that JUST reads from the Ultrasonic.
You should have code that JUST controls the motors.
THEN when you have each bit of code working, you put them together.

So where is your code for the Ultrasonic?
Where is your code JUST to control the motor shield?

Is this a school project/assignment?

Thanks… Tom… :smiley: :+1: :australia:
PS, this how your NewPing code should look, it is nothing like what you have coded.

// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------

#include <NewPing.h>

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
  Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {
  delay(50);                     // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
  Serial.println("cm");
}

Could you please tell the changes i should do in my code
here is the complete code

[code]
#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>



#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

AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(3, MOTOR12_1KHZ);

Servo myservo;
void setup() {
 myservo.attach(9);  
  myservo.write(115); 
  delay(2000);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100); // put your setup code here, to run once:

}

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);

  if(distanceR>=distanceL)
  {
    turnRight();
    moveStop();
  }else
  {
    turnLeft();
    moveStop();
  }
}else
 {
  moveForward();
 }
 distance = readPing();
}// put your main code here, to run repeatedly:

}
[/code]type or paste code here

Greetings,

You didn’t create a variable that is named distance.
Try writing [quote=“kishan1234_arduino, post:20, topic:857329, full:true”]

[code]
#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>



#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

AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(3, MOTOR12_1KHZ);

int distance; // You have to declarethe variable type before you use it.
Servo myservo;
void setup() {
 myservo.attach(9);  
  myservo.write(115); 
  delay(2000);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100); // put your setup code here, to run once:

}

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);

  if(distanceR>=distanceL)
  {
    turnRight();
    moveStop();
  }else
  {
    turnLeft();
    moveStop();
  }
}else
 {
  moveForward();
 }
 distance = readPing();
}// put your main code here, to run repeatedly:

}
[/code]type or paste code here

[/quote]

i did not understannd what should i do again please reply

Hi,

You need to create your “distance” variable.
Add to your code;

long distance ;

Put this BEFORE setup(), it tells the controller to make a memory space called “distance”.

If you don’t, when you use “distance” like in your code, the controller does not know what or where “distance” is stored in memory.

Tom… :grinning: :coffee: :australia: