Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektews2013:wwsr:start:ausweichen

Dies ist eine alte Version des Dokuments!



Ausweichen.ino
int trigger = 34;
int echo = 36;
int rotation=0;
int array[180];
int weitesteEntfernung;
int optimalerWinkel;
 
int step1=24;
int dir1=22;
 
int step2=26;
int dir2=28;
 
int step3=30;
int dir3=32;
 
#include <Servo.h>
Servo myservo;
 
long duration, inches, cm;
 
void setup() {
  pinMode(step1, OUTPUT);
  pinMode(dir1, OUTPUT);
  pinMode(step2, OUTPUT);
  pinMode(dir2, OUTPUT);
  pinMode(step3, OUTPUT);
  pinMode(dir3, OUTPUT);
 
  digitalWrite(dir2, HIGH);
  digitalWrite(dir3, HIGH);
 
  Serial.begin(9600);
  myservo.attach(42);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
}
 
void loop()
{
  entfernungsMesser();
  if(cm<10) {
    array[89]=0;
    digitalWrite(dir2, HIGH);
    digitalWrite(dir3, LOW);
 
      for(int i=90;i<180;i++) {
        myservo.write(i);
        array[i]=cm;
 
        if(array[i]>array[i-1]) {
          weitesteEntfernung=array[i];
          optimalerWinkel=i;
        }
      } 
      for(int i=180;i<0;i--) {
        myservo.write(i);
        entfernungsMesser();
 
        array[i]=cm;
        if(array[i]>array[i-1]) {
          weitesteEntfernung=array[i];
          optimalerWinkel=i;
        }
      }
      for(int j=1;j<143;j++) {
        digitalWrite(step2, HIGH);
        digitalWrite(step3, HIGH);
        delay(10);
        digitalWrite(step2, LOW);
        digitalWrite(step3, LOW);
        delay(10);
      }
    }
 
}
 
void entfernungsMesser() {
 
  digitalWrite(trigger, LOW);
  delayMicroseconds(2);
  digitalWrite(trigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger, LOW);
 
  //duration = pulseIn(echo, HIGH);
 
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
 
  Serial.println(cm, DEC);
 
  delay(100);
}
 
long microsecondsToInches(long microseconds){
 
return microseconds / 74 / 2;
}
 
long microsecondsToCentimeters(long microseconds){
 
return microseconds / 29 / 2;
}
projektews2013/wwsr/start/ausweichen.1389284430.txt.gz · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)