0% found this document useful (0 votes)
8 views

Code For Car

The document describes code for a robot that uses ultrasonic sensors and servos to navigate and avoid obstacles. It defines motors, sensors, and functions for movement including moving forward, backward, stopping, and turning using different motor speeds. Distance readings are taken from the ultrasonic sensor and used to determine navigation behavior.

Uploaded by

xevav11987
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Code For Car

The document describes code for a robot that uses ultrasonic sensors and servos to navigate and avoid obstacles. It defines motors, sensors, and functions for movement including moving forward, backward, stopping, and turning using different motor speeds. Distance readings are taken from the ultrasonic sensor and used to determine navigation behavior.

Uploaded by

xevav11987
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

#include <AFMotor.

h>

#include <NewPing.h>

#include <Servo.h>

#define TRIG_PIN A0

#define ECHO_PIN A1

#define MAX_DISTANCE 100

#define MAX_SPEED 150 // 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(2, MOTOR12_64KHZ);

AF_DCMotor motor3(3, MOTOR34_64KHZ);

AF_DCMotor motor4(4, MOTOR34_64KHZ);

Servo myservo;

boolean goesforward=false;

int distance = 100;

int speedSet = 0;

void setup() {

myservo.attach(10);

myservo.write(115);

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<=25)

moveStop();

delay(100);

moveBackward();

delay(200);

moveStop();

delay(200);

distanceR = lookRight();

delay(200);

distanceL = lookleft();

delay(200);

if(distanceR>=distanceL)

turnRight();

moveStop();

else

turnleft();

moveStop();

else
{

move forward();

distance = readPing();

int lookRight()

myservo.write(50);

delay(500);

int distance = readPing();

delay(100);

myservo.write(115);

return distance;

int lookleft()

myservo.write(170);

delay(500);

int distance = readPing();

delay(100);

myservo.write(115);

return distance;

delay(100);

int readPing() {

delay(100);

int cm = sonar.ping_cm();

if(cm==0)

{
CM = 250;

return cm;

void moveStop() {

motor1.run(RELEASE);

motor2.run(RELEASE);

motor3.run(RELEASE);

motor4.run(RELEASE);

void moveforward(){

if(goesforward)

goesforward=true;

motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.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);
motor 2.setSpeed(speedSet);
motor3.setSpeed(speedSet);
motor4.setSpeed(speedSet);

dalay(5);

void moveBackward() {

goesforward=false;

motor1.run(BACKWARD);

motor2.run(BACKWARD);
motor3.run(BACKWARD);

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

motor3.setSpeed(speedSet);

motor4.setSpeed(speedSet);

delay(5);

void turnRight() {

motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);

delay(500);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor3.run(FORWARD);

motor4.run(FORWARD);

void turnleft() {

motor1.run(BACKWARD);

motor2.run(BACKWARD);

motor3.run(FORWARD);

motor4.run(FORWARD);

delay(500);

motor7.run(FORWARD);

motor2.run(FORWARD);
motor3.run(FORWARD);

motor4.run(FORWARD);

You might also like