[go: up one dir, main page]

0% found this document useful (0 votes)
74 views7 pages

Program Arduino Robot Car Sensor Ultrasonik Smt7

This document describes code for an Arduino robot car that uses an ultrasonic sensor to avoid obstacles. It includes functions for moving the car forward and backward, turning left and right, reading distances from the ultrasonic sensor, and calibrating the servo motor to look left and right. The car will back up, look both directions, and pick the clearer path when an object is detected within 15 cm.

Uploaded by

Muhamad Hangga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views7 pages

Program Arduino Robot Car Sensor Ultrasonik Smt7

This document describes code for an Arduino robot car that uses an ultrasonic sensor to avoid obstacles. It includes functions for moving the car forward and backward, turning left and right, reading distances from the ultrasonic sensor, and calibrating the servo motor to look left and right. The car will back up, look both directions, and pick the clearer path when an object is detected within 15 cm.

Uploaded by

Muhamad Hangga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Program arduino robot car sensor ultrasonik

//ARDUINO OBSTACLE AVOIDING CAR//

// Before uploading the code you have to install the necessary library//

//AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install //

//NewPing Library https://github.com/livetronic/Arduino-NewPing//

//Servo Library https://github.com/arduino-libraries/Servo.git //

// To Install the libraries go to sketch >> Include Library >> Add .ZIP File >> Select the Downloaded ZIP
files From the Above links //

#include <AFMotor.h>

#include <NewPing.h>

#include <Servo.h>

#define TRIG_PIN A0

#define ECHO_PIN A1

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

AF_DCMotor motor2(2, MOTOR12_1KHZ);

AF_DCMotor motor3(3, MOTOR34_1KHZ);

AF_DCMotor motor4(4, MOTOR34_1KHZ);

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

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

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

motor2.setSpeed(speedSet);

motor3.setSpeed(speedSet);

motor4.setSpeed(speedSet);

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

motor1.run(FORWARD);

motor2.run(FORWARD);

motor3.run(FORWARD);

motor4.run(FORWARD);

You might also like