why calling function not work in side loop.

Actually i went to make a robotic car.

I am writing a code using different function like forward, backward .
I also use ultra sonic sensor for distance calculation.

when i am write this code in void loop its work good.

digitalWrite(S4_trig_Pin, LOW);
delayMicroseconds(2);
digitalWrite(S4_trig_Pin, HIGH);
delayMicroseconds(10);
digitalWrite(S4_trig_Pin, LOW);
duration_B = pulseIn(S4_echo_Pin, HIGH);
distance_B = (duration_B/2)*.0343;
Serial.println(distance_B);

if((distance_B>50)){
forward();}

else if(distance_B<50){
Stop();
}

:slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile:

car stop and run safely
but when that code insert a function like

void b(){
digitalWrite(S4_trig_Pin, LOW);
delayMicroseconds(2);
digitalWrite(S4_trig_Pin, HIGH);
delayMicroseconds(10);
digitalWrite(S4_trig_Pin, LOW);
duration_B = pulseIn(S4_echo_Pin, HIGH);
distance_B = (duration_B/2)*.0343;
Serial.println(distance_B);

if((distance_B>50)){
forward();}

else if(distance_B<50){
Stop();
}
}

And call it from loop function, like

void loop(){

String COMMAND = "";
while (Serial.available()>0){
COMMAND +=(char) Serial.read();
delay(5);
}

if ((COMMAND=="test")){
f();
}
}

This time work only one condition, if it is run its run or if it is stop its stop.

i know my English is not good but i try.

i also add my full code

Combine_program.ino (14.7 KB)

You describe a function called 'b', but call a function called 'f'.

Could that be your problem?

Please remember to use code tags when posting code.