Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Sie befinden sich in: Unterrichtsangebote Fächer Fachbereich III Informatik INFO HE Info HE WU9 WU2013 Arduino Fahrzeug Steuerung

Arduino Fahrzeug Steuerung

Arduino Fahrzeug
 
 
const int echo = 2;
const int triger = 3;
const int echo2 = 6;
const int triger2 = 7;
const int v = 9; // links v
const int s = 10;// rechts h
const int w = 11;// rechts v
const int g = 12;// links h
int gesch = 150; 
int geschi = 150; // geschi = gesch * 0.894
int sp = 150;
float vcm ;
float hcm;
int stat;
 
void setup () {
   Serial.begin(9600);
  pinMode(triger,OUTPUT);
  pinMode(echo,INPUT);
  pinMode(v,OUTPUT);
  pinMode(s,OUTPUT);
  pinMode(w,OUTPUT);
  pinMode(g,OUTPUT); 
  stat = 0;
  Stop();  
}
 
 
void linksdrehen (int geschi) {
  
  digitalWrite(v,LOW);
  digitalWrite(s,LOW);
  analogWrite(g,geschi); // niedrigste Geschwindigkeit
  analogWrite(w,geschi); // 
 
 
 
}  
 
void rechtsdrehen ( int geschi) {
  
  analogWrite(v,geschi);
  analogWrite(s,geschi);
  digitalWrite(g,LOW);
  digitalWrite(w,LOW);
 
}
 
 
 void halb (int sp) {
  
  digitalWrite(v,LOW);
  digitalWrite(s,LOW);
  analogWrite(g,sp); // Höchstgeschwindigkeit
  analogWrite(w,sp); //
 
}
 
void vorwaerts (int geschi) {
  
  analogWrite(w,gesch); // normale Geschwindigkeit
  analogWrite(v,sp);
  digitalWrite(g,LOW);
  digitalWrite(s,LOW);
}  
  
 
  void Stop () {
    digitalWrite(s,LOW);
    digitalWrite(v,LOW);  
    digitalWrite(w,LOW);
    digitalWrite(g,LOW);
  }
 
 
 void rueckwaerts (int gesch) {
  
    analogWrite(s,gesch); // normal Geschwindigkeit
    analogWrite(g,gesch);
    digitalWrite(w,LOW);
    digitalWrite(v,LOW);
 
}
 
 
void loop () {
 
  delay(50);
  digitalWrite(triger, LOW);
  delayMicroseconds(2);
  digitalWrite(triger, HIGH);
  delayMicroseconds(10);
  digitalWrite(triger, LOW);
  vcm = pulseIn(echo, HIGH) / 58.0;
  vcm = (int(vcm * 100.0)) / 100.0;
     
  digitalWrite(triger2, LOW);
  delayMicroseconds(2);
  digitalWrite(triger2, HIGH);
  delayMicroseconds(10);
  digitalWrite(triger2, LOW);
  hcm = pulseIn(echo2, HIGH) / 58.0;
  hcm = (int(hcm * 100.0)) / 100.0;
 
  Serial.print(vcm);
  Serial.print("vcm");
  Serial.println();
  Serial.print(hcm);
  Serial.print("hcm");
  Serial.println();
  
  if ((vcm < 20.0) and (stat == 1)) {
    stat = 2;
  }
  else {
    if ((hcm < 20.0) and (stat == 2)) {
       stat = 1;
    }
    else {
      stat = 1;
    }  
  }
 
  if (stat == 0) {Stop();}
  if (stat == 1) {vorwaerts(gesch);}
  if (stat == 2) {rueckwaerts(gesch);}
 
}

Erstellt: Philipp Lopinski (08.05.2014) Letzte Änderung: Andreas Hecker (09.05.2014)