Min menu


Project 35 : car robot using Arduino


Simple robot using arduino 

How often have we wished to have a robot that circumvents the house staying away from snags? Making this undertaking with Arduino Uno, a HC-SR04 module and two wheels will take us to be a kid. 

The robot can maintain a strategic distance from deterrents, because of the ultrasonic reach locater sensor that detects snag going ahead its way. The robot is outfitted with two engines. When it sees a deterrent in its way, it blocks one of the two wheels, subsequently permitting to pivot and abstain from knocking. 

There are a few robot case accessible on Ebay. You can purchase something like demonstrated as follows:

To begin with, we mount the circuit like the accompanying chart, in the event that you don't utilize the BC547B semiconductors and need to utilize different sorts of semiconductors I recommend you investigate the datasheet of the segment you will utilize. You should think about the subtleties and utilize a reasonable one. 

In the wake of having collected the parts on the breadboard and associated everything, all that remains is to embed the sketch on Arduino through the IDE refreshed to the most recent adaptation. The code is as per the following:


int MOTORD = 8;
 int MOTORS = 9;
#define echoPin 2 // Pin that receives the echo pulse
#define trigPin 3

void setup () {
  Serial.begin (9600);
pinMode (echoPin, INPUT); // septum echopin as input
pinMode (trigPin, OUTPUT); // sect trigger as output
void loop () {
  digitalWrite (trigPin, LOW);
  delayMicroseconds (2);
  digitalWrite (trigPin, HIGH);
  delayMicroseconds (10);
  digitalWrite (trigPin, LOW);
  int distance = pulseIn (echoPin, HIGH);
  distance = distance / 58;
   Serial.println (distance);
   // if I have an obstacle 25 cm away, turn right and keep the right wheel still
  if ((distance<25)&&(distance != 0)) {// sometimes zeroes arrive and those I don't have to take them into consideration
  digitalWrite (MOTORS, HIGH); // I turn on one engine and turn off the other so I can turn
  digitalWrite (MOTORD, LOW);
  delay (500);
   else {// go straight
  digitalWrite (MOTORS, HIGH);
  digitalWrite (MOTORD, HIGH);