Created
May 30, 2015 16:43
-
-
Save michaelsarduino/f97d81d044e03ec26d39 to your computer and use it in GitHub Desktop.
Der bisherige Quellcode meines Autos | Stand 30.05.15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <LiquidCrystal.h> | |
LiquidCrystal lcd1(8,7,4,0,12,13); | |
int motor1_A=11; | |
int motor1_B=10; | |
int motor1_Speed=9; | |
int motor2_A=6; | |
int motor2_B=5; | |
int motor2_Speed=3; | |
int trigPin = 1; | |
int echoPin = 2; | |
void setup(){ | |
pinMode(motor1_A,OUTPUT); | |
pinMode(motor1_B,OUTPUT); | |
pinMode(motor2_A,OUTPUT); | |
pinMode(motor2_B,OUTPUT); | |
pinMode(trigPin, OUTPUT); //definieren des TrigPins als OUTPUT | |
pinMode(echoPin, INPUT); //definieren des Echo Pins als INPUT | |
lcd1.begin(20,4); | |
lcd1.print("Entfernung"); | |
delay(5000); | |
} | |
void loop(){ | |
float entfernung_gem = entfernung_messen(1,2); | |
lcd1.setCursor(0,1); | |
lcd1.print(entfernung_gem); | |
lcd1.print(" "); | |
if(entfernung_gem > 40) | |
{ | |
digitalWrite(motor1_A, HIGH); | |
digitalWrite(motor1_B, LOW); | |
analogWrite(motor1_Speed, 200); | |
delay(150); | |
digitalWrite(motor1_A, LOW); | |
digitalWrite(motor1_B, LOW); | |
analogWrite(motor1_Speed, 0); | |
} | |
else | |
{ | |
digitalWrite(motor1_A, LOW); | |
digitalWrite(motor1_B, HIGH); | |
analogWrite(motor1_Speed, 200); | |
digitalWrite(motor2_A, HIGH); | |
digitalWrite(motor2_B, LOW); | |
analogWrite(motor2_Speed, 255); | |
delay(200); | |
digitalWrite(motor1_A, LOW); | |
digitalWrite(motor1_B, LOW); | |
digitalWrite(motor1_Speed, LOW); | |
digitalWrite(motor2_A, LOW); | |
digitalWrite(motor2_B, HIGH); | |
analogWrite(motor2_Speed, 255); | |
digitalWrite(motor1_A, LOW); | |
digitalWrite(motor1_B, LOW); | |
digitalWrite(motor1_Speed, LOW); | |
digitalWrite(motor2_A, LOW); | |
digitalWrite(motor2_B, LOW); | |
digitalWrite(motor2_Speed, LOW); | |
} | |
delay(100); | |
} | |
float entfernung_messen(int trigPin, int echoPin) | |
{ | |
int i; | |
float schallgeschwindigkeit = 331.5+0.6*20; // m/s festlegen der Schallgeschwindigkeit | |
float entfernungen_array[10]; | |
float zeit_in_ms; | |
float zeit_s; | |
for(i=0;i<10;i++) | |
{ | |
//starten der Entfernungsmessung | |
digitalWrite(trigPin, LOW); | |
delayMicroseconds(4); | |
digitalWrite(trigPin, HIGH); | |
delayMicroseconds(5); //5 Mikrosekunden warten | |
digitalWrite(trigPin, LOW); //den TrigPin für 5 Mikrosekunden auf High setzen um Messung zu starten | |
//Auswertung der Entfernungsmessung | |
zeit_in_ms = pulseIn(echoPin, HIGH); //zeit die der Schall braucht messen | |
zeit_s = zeit_in_ms / 1000.0 /1000.0 /2; //zeit in Sekunden umrechnen und durch 2 teilen, da Hin- und Rückweg | |
entfernungen_array[i] = zeit_s * schallgeschwindigkeit * 100; //Entfernung ist zeit mal geschwindigkeit | |
} | |
float entfernung_ges = entfernungen_array[0] + entfernungen_array[1] + entfernungen_array[2] + entfernungen_array[3] + entfernungen_array[4] + entfernungen_array[5] + entfernungen_array[6] + entfernungen_array[7] + entfernungen_array[8] + entfernungen_array[9]; | |
entfernung_ges = entfernung_ges / 10; | |
return entfernung_ges; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment