Hi,

Ich habe einen kleinen Robo mit Ultraschallsensor gebastelt.

Ich hätte gerne ein Zufallsentscheidung eingefügt die dafür sorgt das die Drehung zu beiden Seiten erfolgen kann.


Code:
int trigger=12;
int echo=13;
long dauer=0;
long entfernung=0;
int motor1_A=11;
int motor1_B=10;  
int motor2_A=6;
int motor2_B=5;
 
void setup()
{
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
 
void loop()
{
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
dauer = pulseIn(echo, HIGH);
entfernung = (dauer/2) / 29.1;
 
if (entfernung <= 35)
{      
    digitalWrite(motor1_A,LOW); // Stop
    digitalWrite(motor2_A,LOW);
    digitalWrite(motor1_B,LOW);
    digitalWrite(motor2_B,LOW);
    delay(500);    
    digitalWrite(motor1_A,LOW); // Rückwärts
    digitalWrite(motor2_A,HIGH);
    digitalWrite(motor1_B,HIGH);
    digitalWrite(motor2_B,LOW);
    delay(400);    
    digitalWrite(motor1_A,HIGH); //Drehung links
    digitalWrite(motor2_A,HIGH);
    digitalWrite(motor1_B,LOW);
    digitalWrite(motor2_B,LOW);
    delay(500);
}
else
{
    digitalWrite(motor1_A,HIGH); // Fahren
    digitalWrite(motor2_A,LOW);
    digitalWrite(motor1_B,LOW);
    digitalWrite(motor2_B,HIGH);
}
}
Die Drehung rechst wäre dann,
Code:
    digitalWrite(motor1_A,LOW); //Drehung rechts
    digitalWrite(motor2_A,LOW);
    digitalWrite(motor1_B,HIGH);
    digitalWrite(motor2_B,HIGH);
    delay(500);
Hat jemand eine idee?