Code:
#define servoPin 10
#define trigPin A1
#define echoPin A2
#include <Servo.h>
int b;
int c;
int pos;
Servo scanservo;
void setup()
{
scanservo.attach(servoPin);
Serial.begin(9600);
Serial.println("bereit");
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
scanservo.attach(servoPin);
}
int range()
{
int duration;
digitalWrite(trigPin, HIGH);
delay(100);
digitalWrite (trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
delay (50);
//duration => cm
return duration/58.2;
}
/////////////////////////////////////////////////////////////////
void loop()
{
Serial.println(range());
int a = range();
if (a <=5)
{
Serial.println("Stop");
for(pos=90;pos>=10;pos-=1)
{
scanservo.write(pos);
}
delay(1500);
int b= range();
delay(600);
//Links//
for(pos=10;pos<169; pos+=1)
{
scanservo.write(pos);
}
delay(1500);
int c= range();
delay(600);
//rechts//
for (pos=170;pos>=90; pos-=1)
{
scanservo.write(pos);
}
delay(1000);
scanservo.write(90);
delay(20);
if (b<c)
{
//motoren links
Serial.println("links");
delay(200);
}
else if (c<b)
{
//motor rechts
Serial.println("rechts");
delay(200);
}
else if (c=b)
{
//rückwärts
Serial.println("rückwärts");
delay(200);
}
else
{
//go
Serial.println("go");
}
}
}
nun... wie gesagt, bis zur Bewegung des Servo ist alles scheints zu klappen. Ich bekomme nur keine Ausgabe ob Rechts oder Links.
Lesezeichen