Hello,
I am trying to operate dc motor and servo simultaneously and also ultrasonic sensors are connected to it as the ultrasonic sensor are sensed the dc motor starts but as as add servo program to it the dc motor does not operate following is the code
#include<Servo.h>
int pos = 0;
Servo servo;
int lockFlag = 0;
int unlockFlag = 0;
int callFlag = 0;
int trigPin1 = 2;
int echoPin1 = 3;
int trigPin2 = 4;
int echoPin2 = 5;
int trigPin3 = 6;
int echoPin3 = 7;
int trigPin4 = 8;
int echoPin4 = 9;
unsigned int duration1, distance1;
unsigned int duration2, distance2;
unsigned int duration3, distance3;
unsigned int duration4, distance4;
void setup() {
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
pinMode(trigPin4, OUTPUT);
pinMode(echoPin4, INPUT);
pinMode(10,OUTPUT);
pinMode(12,OUTPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
servo.attach(11);
}
void loop() {
Serial.println("\n");
delay(100);
digitalWrite (trigPin1, HIGH);
delayMicroseconds (10);
digitalWrite (trigPin1, LOW);
duration1 = pulseIn (echoPin1, HIGH);
distance1 = (duration1/2) / 29.1;
Serial.println("1st Sensor: ");
Serial.println(distance1);
Serial.print("cm ");
delay(1000);
digitalWrite (trigPin2, HIGH);
delayMicroseconds (10);
digitalWrite (trigPin2, LOW);
duration2 = pulseIn (echoPin2, HIGH);
distance2 = (duration2/2) / 29.1;
Serial.println("2nd Sensor: ");
Serial.println(distance2);
Serial.print("cm ");
delay(1000);
digitalWrite (trigPin3, HIGH);
delayMicroseconds (10);
digitalWrite (trigPin3, LOW);
duration3 = pulseIn (echoPin3, HIGH);
distance3 = (duration3/2) / 29.1;
Serial.println("3rd Sensor: ");
Serial.println(distance3);
Serial.print("cm");
delay(1000);
digitalWrite (trigPin4, HIGH);
delayMicroseconds (10);
digitalWrite (trigPin4, LOW);
duration4 = pulseIn (echoPin4, HIGH);
distance4 = (duration4/2) / 29.1;
Serial.println("4th Sensor: ");
Serial.println(distance4);
Serial.print("cm");
delay(1000);
if(distance1<20)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
analogWrite(10,250);
delay(5000);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
analogWrite(10,250);
delay(5000);
}
if(distance1>20)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
analogWrite(10,0);
delay(500);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
analogWrite(10,0);
}
if(distance2<20)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
analogWrite(10,250);
delay(5000);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
analogWrite(10,250);
delay(5000);
}
if(distance2>20)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
analogWrite(10,0);
delay(500);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
analogWrite(10,0);
}
if(distance3<20)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
analogWrite(10,250);
delay(5000);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
analogWrite(10,250);
delay(5000);
}
if(distance3>20)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
analogWrite(10,0);
delay(500);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
analogWrite(10,0);
}
if(distance4<20)
{
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
analogWrite(10,75);
delay(5000);
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
analogWrite(50,250);
delay(5000);
}
if(distance4>20)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
analogWrite(10,0);
delay(500);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
analogWrite(10,0);
}
if (digitalRead(A2) == HIGH ) {
for(pos =0; pos<=160; pos++)
{
servo.write(pos);
delay(10);
}
for(pos=160; pos=0 ;pos--)
{
servo.write(pos);
delay(10);
}
}
}