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();
}
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)