How to Make an Obstacle Detecting Car
by 560105 in Circuits > Arduino
405 Views, 1 Favorites, 0 Comments
How to Make an Obstacle Detecting Car
this is a car
Getting Materials
you will need
- abra electronics geeekus gk kit 003 ($74)
- 2 non polarized capacitors ($8)
- h bridge($7)
- 2 electric motors ($8)
- arduino uno ($23)
- distance sensor ($8)
- wires($15)
- breadboard ($10)
Assemble the Car
attach the arduino to the top of the car with screws and attach a small breadboard to the other side of the car
put the motors into the mounts and solder wires to the end of the motor terminals
Wiring
follow this circuit except wire trig on the distance sensor to pin 8 and wire echo to pin 7
Coding Part 1
------------------------
// for distance sensor
const int trig = 8;
const int echo = 7;
int duration = 0;
int inches = 0;
// for right motor const int controlPin1 = 5;
const int controlPin2 = 2;
const int enablePin1 = 9;
// for left motor const int controlPin3 = 3;
const int controlPin4 = 4;
const int enablePin2 = 11;
---------------------------------------
this goes before the void setup and sets up the pins
Coding Part 2
--------------------------------
void setup() {
Serial.begin(9600);
// for distance sensor
pinMode(trig,OUTPUT);
pinMode(echo, INPUT);
// for right motor
pinMode(controlPin1, OUTPUT);
pinMode(controlPin2, OUTPUT);
pinMode(enablePin1, OUTPUT); //turn the motor off, initially
digitalWrite(enablePin1, LOW);
// for left motor
pinMode(controlPin3, OUTPUT);
pinMode(controlPin4, OUTPUT);
pinMode(enablePin2, OUTPUT); //turn the motor off, initially
digitalWrite(enablePin2, LOW); }
----------------------------------------
this sets up the h bridge and the distance sensor
Coding Part 3
------------------------------
void loop() {
// for distance sensor
digitalWrite(trig,LOW);
delay(0.001);
digitalWrite(trig,HIGH);
delay (0.01);
digitalWrite(trig, LOW);
duration = pulseIn(echo,HIGH);
inches = duration /74/2;
Serial.print("inches: ");
Serial.print(inches);
Serial.print("");
Serial.println();
delay (5);
if (inches <5){
analogWrite (enablePin1, 200);
digitalWrite (controlPin1, LOW);
digitalWrite (controlPin2, HIGH);
analogWrite (enablePin2, 200);
digitalWrite (controlPin3, LOW);
digitalWrite (controlPin4, HIGH); }
else if (inches >=5 and inches <9 ){
digitalWrite (controlPin1, LOW);
digitalWrite (controlPin2, LOW);
analogWrite (enablePin1, 0);
digitalWrite (controlPin3, LOW);
digitalWrite (controlPin4, LOW);
analogWrite (enablePin2, 0); }
else if (inches >=9){
analogWrite (enablePin1, 255);
digitalWrite (controlPin1, HIGH);
digitalWrite (controlPin2, LOW);
analogWrite (enablePin2, 255);
digitalWrite (controlPin3, HIGH);
digitalWrite (controlPin4, LOW); }
}
--------------------------
this makes it so that the car stops between 5 and 9 inches, move backwards between 0 and 5 inches, and moves forwards from 9 inches to infinity