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)