I m building a simple obstacle avoidance robot. Here I Typed the code. But there is a bug I cannot find . The Motors are not working properly when they intergrated as whole. when I check the codes and run separatly it runs the dc motor smoothly. when I put all together motors are not spining. I have double checked my connections.
Here is the code
#include <Servo.h>
const int trigPin = 13;
const int echoPin = 12;
int getDistance() {
long duration;
int distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2;
return distance;
}
int left_speed = 10;
int right_speed = 9;
int left_pin_1 = 7;
int left_pin_2 = 6;
int right_pin_1 = 4;
int right_pin_2 = 5;
int driveSpeed = 100;
Servo myservo;
void setup() {
myservo.attach(11);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT);
Serial.begin(9600);
pinMode(left_pin_1, OUTPUT);
pinMode(left_pin_2, OUTPUT);
pinMode(right_pin_1, OUTPUT);
pinMode(right_pin_2, OUTPUT);
pinMode(left_speed, OUTPUT);
pinMode(right_speed, OUTPUT);
setForward();
}
int turnLeft() {
digitalWrite(left_pin_1, HIGH);
digitalWrite(left_pin_2, LOW);
digitalWrite(right_pin_1, HIGH);
digitalWrite(right_pin_2, LOW);
}
int turnRight() {
digitalWrite(left_pin_1, LOW);
digitalWrite(left_pin_2, HIGH);
digitalWrite(right_pin_1, LOW);
digitalWrite(right_pin_2, HIGH);
}
int forward() {
digitalWrite(left_pin_1, LOW);
digitalWrite(left_pin_2, HIGH);
digitalWrite(right_pin_1, HIGH);
digitalWrite(right_pin_2, LOW);
delay(300);
}
int driveStop() {
digitalWrite(left_pin_1, LOW);
digitalWrite(left_pin_2, LOW);
digitalWrite(right_pin_1, LOW);
digitalWrite(right_pin_2, LOW);
}
int setForward() {
myservo.write(90);
}
int searchRight() {
myservo.write(0);
delay(500);
int dist = getDistance();
delay(500);
return dist;
}
int searchLeft() {
myservo.write(180);
delay(500);
int dist = getDistance();
delay(500);
return dist;
}
void loop() {
forward();
}
int setDriveSpeed(int spd) {
analogWrite(left_speed, spd);
analogWrite(right_speed, spd);
}
```