My project is measuring the length of the object with using 2 ultrasonic sensor then make a response accordingly. When i put a LCD display to test the time required to complete a loop, it showed 4 second delay with using the milli() function. the figure will change after 4 second. Is it the "pulse in function" causes delay? How can i solve for it? Thanks. My coding is below
void loop()
{
/* Part 1 : Ultrasonic Sensor Detection */
int distance1, distance2, duration; //Local Declaration and Initialization
PORTC |= _BV(PC3); //digitalWrite(TrigPin1, HIGH); //Ultrasonic Sensor 1
delayMicroseconds(10);
PORTC &= ~_BV(PC3); //digitalWrite(TrigPin1, LOW);
duration=pulseIn(EchoPin1, HIGH);
distance1= calculation(duration);
delay(300);
PORTC |= _BV(PC5); //digitalWrite(TrigPin2, HIGH); //Ultrasonic Sensor 2
delayMicroseconds(10);
PORTC &= ~_BV(PC5); //digitalWrite(TrigPin2, LOW);
duration=pulseIn(EchoPin2, HIGH);
distance2= calculation(duration);
Serial.print("distance1=> "); //Serial Print the distances that are detected by both sensors
Serial. print(distance1);
Serial.print("cm ");
Serial.print("distance2=> ");
Serial.print(distance2);
Serial.println("cm ");
}
int calculation(int x)
{
return (x/2)/29;
}