Go Down

Topic: Wo ist der Fehler im Code (Auto mit Ultraschallsensor) (Read 289 times) previous topic - next topic

Titus1203

Ich hab ein Auto mit Ultraschallsensor gebaut und es Programmiert. Immer wenn ein Gegenstand kommt soll er ausweichen, also kurz rückwärts und dann etwas wenden, doch sobald er einmal etwas gesehen hat hört er nicht mehr auf zu wenden.
Code:


#include <AFMotor.h>


AF_DCMotor motor_vr(3, MOTOR12_64KHZ);
AF_DCMotor motor_hl(1, MOTOR12_64KHZ);
AF_DCMotor motor_vl(4, MOTOR12_64KHZ);
AF_DCMotor motor_hr(2, MOTOR12_64KHZ);
#define trigPin 34
#define echoPin 36
 
void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);       
  Serial.println("Motor test!");
 
  motor_vl.setSpeed(200);
  motor_vr.setSpeed(200);
  motor_hl.setSpeed(200);
  motor_hr.setSpeed(200);
}
 
void loop()
{
  Serial.print("tick");
 
 
motor_vl.run(FORWARD);
motor_vr.run(FORWARD);
motor_hl.run(FORWARD);
motor_hr.run(FORWARD);
int duration, distance;
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(2000);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
 

if (distance <=30 ){
 
  motor_vl.run(BACKWARD);
  motor_vr.run(BACKWARD);
  motor_hl.run(BACKWARD);
  motor_hr.run(BACKWARD);
  delay(1000);
  motor_vl.run(FORWARD);
  motor_vr.run(BACKWARD);
  motor_hl.run(FORWARD);
  motor_hr.run(BACKWARD);
  delay(1000);
}}
 

 

HotSystems

Prüf doch mal mit dem Serial-Monitor ob der US-Sensor auch richtige Werte ausgibt.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up