Skip to content

Instantly share code, notes, and snippets.

@michaelsarduino
Created May 30, 2015 16:32
Show Gist options
  • Save michaelsarduino/16f8b1859ef0005a2c40 to your computer and use it in GitHub Desktop.
Save michaelsarduino/16f8b1859ef0005a2c40 to your computer and use it in GitHub Desktop.
Der bisherige Quellcode meines Autos | Stand 30.05.15
#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;
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