Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Arduino Robot Code
/*
Original code by Nick Brenn
Modified by Marc de Vinck
Make Projects Arduino-based 4WD robot
http://makeprojects.com/Project/Build-your-own-Arduino-Controlled-Robot-/577/1
*/
#include <AFMotor.h>
AF_DCMotor motor1(1, MOTOR12_8KHZ);
AF_DCMotor motor2(2, MOTOR12_8KHZ);
AF_DCMotor motor3(3, MOTOR12_1KHZ);
AF_DCMotor motor4(4, MOTOR12_1KHZ);
const int pingPin = 19;
// ------------------------------------------------------------------------------
void setup()
{
Serial.begin(9600); // set up Serial library at 9600 bps
motor1.setSpeed(200); // Sets the speed for all the motors 1 - 4 (255 is the
maximum speed)
motor2.setSpeed(200);
motor3.setSpeed(200);
motor4.setSpeed(200);
}
// ------------------------------------------------------------------------------
float ping () // This is the code that runs the PING ))) Sensor
{
long duration, inches;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
long microsecondsToInches(long microseconds);
inches = microsecondsToInches(duration);
return inches;
} // ------------------------------------------------------------------------------
void forward() // This function moves all the wheels forward
{
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
// ------------------------------------------------------------------------------
void backward() // This function moves all the wheels backwards
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
}
// ------------------------------------------------------------------------------
void haltMotors() // This function stops all the motors (It is better to stop
the motors before changing direction)
{
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
// ------------------------------------------------------------------------------
void turnRight() // This function turns the robot right
{
motor1.run(FORWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(BACKWARD);
}
// ------------------------------------------------------------------------------
void loop() { // This is the main program that will run over and over
long duration, inches; // Declare the variables "duration" and "inches"duration = pulseIn(pingPin, HIGH);
inches = ping(); // Set the inches variable to the float returned by the
ping() function.
Serial.print(inches);
Serial.print("in, ");
Serial.println();
while (inches >8){ // While the robot is 8 inches away from an object.
inches = ping();
forward(); // Move the robot forward.
}
haltMotors(); // Stop the motors for 2 seconds, before changing
direction.
delay(1000);
while (inches < 10){ // Until the robot is 10 inches away from the object, go
backward.
inches = ping();
backward(); // Move the robot backward.
}
turnRight(); // Once the robot is done moving backward, turn the robot
right.
delay(1500); // Note! Change this value (greater or smaller) to adjust
how much the robot turns right
haltMotors();
delay(1000);
}
long microsecondsToInches(long microseconds){
return microseconds / 74 / 2;
}
@mekaci89

my arduino gives error at this line :

float ping () // This is the code that runs the PING ))) Sensor

Would you check please ? how to fix it ? thanks.

@jandrillox

i have same problem too :(

@user405

didn't try the code yet but seems to me that there shouldn't be any space between ping and (). So change
float ping ()
to
float ping()

@leem888

help! I use the code and get a whole bunch of errors...I'm a bit of a beginner, so not sure how to fix this! I've built it all as per the instructions so not sure why it's not working. Here are the errors:

sketch_jun25e:24: error: stray '\' in program
sketch_jun25e:10: error: 'ufb02oat' does not name a type
sketch_jun25e:8: error: 'AF_DCMotor' does not name a type
sketch_jun25e:9: error: 'AF_DCMotor' does not name a type
sketch_jun25e:10: error: 'AF_DCMotor' does not name a type
sketch_jun25e:11: error: 'AF_DCMotor' does not name a type
sketch_jun25e.ino: In function 'void setup()':
sketch_jun25e:17: error: 'motor1' was not declared in this scope
sketch_jun25e:18: error: 'maximum' was not declared in this scope
sketch_jun25e:18: error: expected ;' before 'speed'
sketch_jun25e:20: error: 'motor3' was not declared in this scope
sketch_jun25e:21: error: 'motor4' was not declared in this scope
sketch_jun25e.ino: At global scope:
sketch_jun25e:24: error: 'ufb02oat' does not name a type
sketch_jun25e.ino: In function 'void forward()':
sketch_jun25e:41: error: 'motor1' was not declared in this scope
sketch_jun25e:41: error: 'FORWARD' was not declared in this scope
sketch_jun25e:42: error: 'motor2' was not declared in this scope
sketch_jun25e:43: error: 'motor3' was not declared in this scope
sketch_jun25e:44: error: 'motor4' was not declared in this scope
sketch_jun25e.ino: In function 'void backward()':
sketch_jun25e:49: error: 'motor1' was not declared in this scope
sketch_jun25e:49: error: 'BACKWARD' was not declared in this scope
sketch_jun25e:50: error: 'motor2' was not declared in this scope
sketch_jun25e:51: error: 'motor3' was not declared in this scope
sketch_jun25e:52: error: 'motor4' was not declared in this scope
sketch_jun25e.ino: At global scope:
sketch_jun25e:56: error: expected initializer before 'the'
sketch_jun25e.ino: In function 'void turnRight()':
sketch_jun25e:66: error: 'motor1' was not declared in this scope
sketch_jun25e:66: error: 'FORWARD' was not declared in this scope
sketch_jun25e:67: error: 'motor2' was not declared in this scope
sketch_jun25e:67: error: 'BACKWARD' was not declared in this scope
sketch_jun25e:68: error: 'motor3' was not declared in this scope
sketch_jun25e:69: error: 'motor4' was not declared in this scope
sketch_jun25e.ino: In function 'void loop()':
sketch_jun25e:74: error: 'ping' was not declared in this scope
sketch_jun25e:75: error: expected
;' before 'function'
sketch_jun25e:84: error: 'haltMotors' was not declared in this scope
sketch_jun25e:85: error: 'direction' was not declared in this scope
sketch_jun25e:89: error: request for member 'inches' in 'backward', which is of non-class type 'void ()()'
sketch_jun25e:93: error: 'right' was not declared in this scope
sketch_jun25e:95: error: 'how' was not declared in this scope
sketch_jun25e:95: error: expected `;' before 'much'

@lotsacaffeine

Line 75 is the continuation of the comment from the end of line 74.
There are several other instances where that happens...just make sure to pretty up your code.

@naiduc

when iam trying to compile the code iam getting the following error. can anyone help me???

Arduino: 1.5.6-r2 (Windows 7), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

sketch_nov15f:9: error: expected constructor, destructor, or type conversion before '(' token
sketch_nov15f:10: error: expected constructor, destructor, or type conversion before '(' token
sketch_nov15f:11: error: expected constructor, destructor, or type conversion before '(' token
sketch_nov15f:12: error: expected constructor, destructor, or type conversion before '(' token
sketch_nov15f:13: error: expected primary-expression before ';' token
sketch_nov15f.ino: In function 'void setup()':
sketch_nov15f:18: error: 'motor1' was not declared in this scope
sketch_nov15f:19: error: 'maximum' was not declared in this scope
sketch_nov15f:19: error: expected ;' before 'speed'
sketch_nov15f:21: error: 'motor3' was not declared in this scope
sketch_nov15f:22: error: 'motor4' was not declared in this scope
sketch_nov15f.ino: At global scope:
sketch_nov15f:25: error: expected unqualified-id before '{' token
sketch_nov15f.ino: In function 'void forward()':
sketch_nov15f:41: error: 'motor1' was not declared in this scope
sketch_nov15f:41: error: 'FORWARD' was not declared in this scope
sketch_nov15f:42: error: 'motor2' was not declared in this scope
sketch_nov15f:43: error: 'motor3' was not declared in this scope
sketch_nov15f:44: error: 'motor4' was not declared in this scope
sketch_nov15f.ino: In function 'void backward()':
sketch_nov15f:49: error: 'motor1' was not declared in this scope
sketch_nov15f:49: error: 'BACKWARD' was not declared in this scope
sketch_nov15f:50: error: 'motor2' was not declared in this scope
sketch_nov15f:51: error: 'motor3' was not declared in this scope
sketch_nov15f:52: error: 'motor4' was not declared in this scope
sketch_nov15f.ino: At global scope:
sketch_nov15f:56: error: expected initializer before 'the'
sketch_nov15f.ino: In function 'void turnRight()':
sketch_nov15f:66: error: 'motor1' was not declared in this scope
sketch_nov15f:66: error: 'FORWARD' was not declared in this scope
sketch_nov15f:67: error: 'motor2' was not declared in this scope
sketch_nov15f:67: error: 'BACKWARD' was not declared in this scope
sketch_nov15f:68: error: 'motor3' was not declared in this scope
sketch_nov15f:69: error: 'motor4' was not declared in this scope
sketch_nov15f.ino: In function 'void loop()':
sketch_nov15f:74: error: 'ping' was not declared in this scope
sketch_nov15f:75: error: expected
;' before 'function'
sketch_nov15f:84: error: 'haltMotors' was not declared in this scope
sketch_nov15f:85: error: 'direction' was not declared in this scope
sketch_nov15f:89: error: request for member 'inches' in 'backward', which is of non-class type 'void ()()'
sketch_nov15f:93: error: 'right' was not declared in this scope
sketch_nov15f:95: error: 'how' was not declared in this scope
sketch_nov15f:95: error: expected `;' before 'much'

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

@Pastyguy

Fix Almost
So I just had a look at the code and for the most part the "// text blah blah" is not formatted correctly
Ex
void(){ // the text that the guy wrought was totaly
bad and doest work blah blah.
text.moter=34.
}

so i look for the Words that are highlighted in the error log
EX
sketch_nov15f:95: error: expected `;' before 'much'

Heres the code i fixed But cant get the last two errors to go away

#include
#include

/*
Original code by Nick Brenn
Modified by Marc de Vinck
Make Projects Arduino-based 4WD robot
http://makeprojects.com/Project/Build-your-own-Arduino-Controlled-Robot-/577/1
*/
#include
AF_DCMotor motor1(1, MOTOR12_8KHZ);
AF_DCMotor motor2(2, MOTOR12_8KHZ);
AF_DCMotor motor3(3, MOTOR12_1KHZ);
AF_DCMotor motor4(4, MOTOR12_1KHZ);
const int pingPin = 19;
// ------------------------------------------------------------------------------
void setup()
{
Serial.begin(9600); // set up Serial library at 9600 bps
motor1.setSpeed(200); // Sets the speed for all the motors 1 - 4 (255 is the maximum speed)
motor2.setSpeed(200);
motor3.setSpeed(200);
motor4.setSpeed(200);
}

{
long duration, inches;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
long microsecondsToInches(long microseconds);
inches = microsecondsToInches(duration);
return inches;
} // ------------------------------------------------------------------------------
void forward() // This function moves all the wheels forward
{
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
// ------------------------------------------------------------------------------
void backward() // This function moves all the wheels backwards
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
}
// ------------------------------------------------------------------------------
void haltMotors() // This function stops all the motors (It is better to stop the motors before changing direction)
{
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
// ------------------------------------------------------------------------------
void turnRight() // This function turns the robot right
{
motor1.run(FORWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(BACKWARD);
}
// ------------------------------------------------------------------------------
void loop() { // This is the main program that will run over and over
long duration, inches; // Declare the variables "duration" and "inches"duration = pulseIn(pingPin, HIGH);
inches = ping(); // Set the inches variable to the float returned by the ping() function.
Serial.print(inches);
Serial.print("in, ");
Serial.println();
while (inches >8){ // While the robot is 8 inches away from an object.
inches = ping();
forward(); // Move the robot forward.
}
haltMotors(); // Stop the motors for 2 seconds, before changing direction.
delay(1000);
while (inches < 10){ // Until the robot is 10 inches away from the object, go backward.
inches = ping();
backward(); // Move the robot backward.
}
turnRight(); // Once the robot is done moving backward, turn the robot right.
delay(1500); // Note! Change this value (greater or smaller) to adjust how much the robot turns right
haltMotors();
delay(1000);
}
long microsecondsToInches(long microseconds){
return microseconds /74 / 2;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.