Ich hab es jetzt folgendermaßen gelöst.
1. 2 neue Unterprogramme geschrieben:
void motorStop(int stbyPin)
{
digitalWrite(stbyPin,LOW);
}
void motorStart(int stbyPin)
{
digitalWrite(stbyPin,HIGH);
}
2. Im setup() die Motoren gestartet mit motorStart(stby);
void setup()
{
Serial.begin(9600);
pinMode(pwmA_rechts,OUTPUT);
pinMode(pwmB_links,OUTPUT);
pinMode(AIN1,OUTPUT);
pinMode(AIN2,OUTPUT);
pinMode(BIN1,OUTPUT);
pinMode(BIN2,OUTPUT);
pinMode(stby,OUTPUT);
motorStart(stby);
pinMode(sensor_led_pin,OUTPUT);
digitalWrite(sensor_led_pin,HIGH);
}
und 3. wenn ein Hinderniss erkannt wurde, beide Motoren für eine Sekunde ausschalten und dann rückwährts fahren.
if(sensor_value > sensor_value_min)
{
motorStop(stby);
delay(1000);
motorStart(stby);
motorMove(1,150,2);
motorMove(2,150,2);
delay(1000);
motorMove(1,robo_speed,1);
motorMove(2,robo_speed,2);
delay(500);
}
Habt ihr eine bessere Lösung?
mfg
Michael