Skip to main content

Make robot at home

Make robot at home


Circuit Diagram


Code 

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

#define TRIG_PIN A0
#define ECHO_PIN A1 
#define MAX_DISTANCE 200 

#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_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(1000);
  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(300);
  distanceL = lookLeft();
  delay(300);

  if(distanceR>=distanceL)
  {
    turnRight();
    moveStop();
  }else
  {
    turnLeft();
    moveStop();
  }
 }else
 {
  moveForward();
 }
 distance = readPing();
}

int lookRight()
{
    myservo.write(50); 
    delay(650);
    int distance = readPing();
    delay(100);
    myservo.write(115); 
    return distance;
}

int lookLeft()
{
    myservo.write(170); 
    delay(650);
    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(BACKWARD);
  //motor2.run(BACKWARD);
  //motor3.run(FORWARD);
  motor4.run(FORWARD);     
  delay(350);
  motor1.run(FORWARD);      
  //motor2.run(FORWARD);
  //motor3.run(FORWARD);
  motor4.run(FORWARD);      
} 
 
void turnLeft() {
  motor1.run(FORWARD);     
  //motor2.run(FORWARD);  
  //motor3.run(BACKWARD);
  motor4.run(BACKWARD);   
  delay(350);
  motor1.run(FORWARD);     
  //motor2.run(FORWARD);
  //motor3.run(FORWARD);
  motor4.run(FORWARD);
}  



Comments

Popular posts from this blog

Fm transmitter circuit

Fm transmitter circuit Power supply   :-   Using power supply stable DC voltage 2 V to 3.7 V max. You can only use battery because battery is perfect for this circuit battery output doesn't any noise. Components  :- Transistor BC 547 , Resistance 100 ohm , 4.7 K ohm .   Capacitor 1nF, 47pF, 22pF.   Inductor 1uH. Condenser mic any . Resistance  :-   Using resistance 100 ohm +-5% changing 1/3 watt, 4.7 K ohm +-5% changing 1/3 watt. Capacitor  :-   1nF this capacitor number 102 non-polar, 22pF this capacitor number 22 non-polar, 47pF this capacitor number 47 non-polar. Inductor  :-   This part important part for any transmitter circuit, 1uH 5Turn 24SWG. Transistor  :-   BC 547  is an NPN Bipolar junction transistor. It is commonly  used  to amplify current. A small current at its base controls a larger current at collector & emitter terminals.  It has a transition...

Automatic home appliances

 Automatic Home Appliances Remote control electrical appliances  Setting up  IR sensor  connection to Atmega 328P is very simple. Beside VCC and GND  pin , the  sensor  has only one output  pin  that should be connected to one of digital  pins  of the Atmega 328P. HC - 05  has red LED which indicates connection status, whether the  Bluetooth  is connected or not. Before connecting to  HC - 05 module  this red LED blinks continuously in a periodic manner. When it gets connected to any other  Bluetooth  device, its blinking slows down to two seconds. This  module works  on 3.3 V - 6V but you can use only 5V DC. this module use any Serial  AMS1117  is a popular SMD package 3-pin voltage regulator that is available in many models for fixed and adjustable voltage requirements. The IC can deliver a maximum current of 1A and the output voltage can vary from 1.5V to 5V. ...

FM transmitter using crystal

FM transmitter using crystal   Power supply   :-   Using power supply stable DC voltage 2 V to 3.7 V max. You can only use battery because battery is perfect for this circuit battery output doesn't any noise. Components  :-  Transistor BC 547 , Resistance 100 ohm, 4.7K ohm.   Capacitor 1nF, 47pF,              22pF.   Inductor 1uH. Condenser mic any .       Resistance  :-   Using resistance 100 ohm +-5% changing 1/3 watt, 4.7 K ohm +-5% changing 1/3 watt. Video link -  https://youtu.be/aV7K2NHrHTM 3 Volt Circuit Diagram Capacitor  :-   1uF this capacitor positive pin connect 4.7K ohm resistance one pin and another pin connect 2K ohm resistance one number pin. 5 Volt Circuit Diagram This Circuit Transmitter range 0.3 Kilometre (300 Metre) to 0.5 kilometre (500 Metre) without any obstacle otherwise range 0.2 Kilometre (200 metre) anywhere. It's a spy device. D...