Commit dbf9aa08 authored by Matthias Schmidt's avatar Matthias Schmidt

Ursprungsversion

parent d1fe77ef
Pipeline #2 canceled with stages
#include<Servo.h>
#include<NewPing.h>
//unsere L298N Kontroller Pins
const int LMV = 5; //LinkerMotor nach Vorne
const int LMR = 4; //LinkerMotor zurück
const int RMV = 3; //RechterMotor Vorne
const int RMR = 2; //RechterMotor zurück
//Die UltrasonicSensor Pins
#define trig_pin A1 //Analoger output
#define echo_pin A2 //Analoger input
#define maximale_Entfernung 200
boolean FahrtNachVorn = false;
int Entfernung = 100;
NewPing Sonar(trig_pin, echo_pin, maximale_Entfernung);//Sonar Funktionen
Servo Akhi; //mein Servo Name
void setup() {
pinMode(RMV , OUTPUT);
pinMode(LMV , OUTPUT);
pinMode(LMR , OUTPUT);
pinMode(RMR , OUTPUT);
Akhi.attach(11); //mein Servo Pin
Akhi.write(90); //Servo Pin bewegt sich auf 90 Grad
delay(2000); //Programm steht 2 Sekunden
Entfernung = LiesPing();//Liest den Ping und füllt diesen an die stelle von der Variablen Entfernung
delay(100);
Entfernung = LiesPing();
delay(100);
Entfernung = LiesPing();
delay(100);
Entfernung = LiesPing();
delay(100);
}
void loop() {
int EntfernungRechts = 0;
int EntfernungLinks = 0;
delay(50);
if(Entfernung<=30){
Stopp();
delay(300);
ZuRFahren();
delay(1000);
Stopp();
delay(300);
EntfernungRechts = GuckRechts();
delay(300);
EntfernungLinks = GuckLinks();
delay(300);
if(Entfernung >= EntfernungLinks){
NachRechtsDrehen();
Stopp();
}
else{
NachLinksDrehen();
Stopp();
}
}
else{
NachVorneFahren();
}
Entfernung = LiesPing();
} //voidLoop ist zu
int GuckRechts(){
Akhi.write(10); //den Servo bei 10 Grad Positionieren
delay(500);
int Entfernung = LiesPing();
delay(100);
Akhi.write(90);
return Entfernung;
}
int GuckLinks(){
Akhi.write(170);
delay(500);
int Entfernung = LiesPing();
delay(100);
Akhi.write(90);
return Entfernung;
delay(100);
}
int LiesPing(){
delay(70);
int cm = Sonar.ping_cm();
if (cm==0){ // Vergleich, ob 0 und die cm Zahl gleich sind
cm=250;
}
return cm;
}
void Stopp(){
digitalWrite(RMV , LOW);
digitalWrite(LMV , LOW);
digitalWrite(LMR , LOW);
digitalWrite(RMR , LOW);
}
void NachVorneFahren(){
if(!FahrtNachVorn){
FahrtNachVorn = true;
digitalWrite(LMV, HIGH);
digitalWrite(RMV, HIGH);
digitalWrite(LMR, LOW);
digitalWrite(RMR, LOW);
}
}
void ZuRFahren(){
FahrtNachVorn = false;
digitalWrite(LMR, HIGH);
digitalWrite(RMR, HIGH);
digitalWrite(LMV, LOW);
digitalWrite(RMV, LOW);
}
void NachRechtsDrehen(){
digitalWrite(LMV, HIGH);
digitalWrite(RMR, HIGH);
digitalWrite(LMR, LOW);
digitalWrite(RMV, LOW);
delay(500);
digitalWrite(LMV, HIGH);
digitalWrite(RMV, HIGH);
digitalWrite(LMR, LOW);
digitalWrite(RMR, LOW);
}
void NachLinksDrehen(){
digitalWrite(LMR, HIGH);
digitalWrite(RMV, HIGH);
digitalWrite(LMV, LOW);
digitalWrite(RMR, LOW);
delay(500);
digitalWrite(LMV, HIGH);
digitalWrite(RMV, HIGH);
digitalWrite(LMR, LOW);
digitalWrite(RMR, LOW);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment