INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Einparkhilfe
26.10.2015, 17:15
Beitrag #1
Einparkhilfe
Hallo zusammen.
Ich bin hier neu im Forum und benötige eure Hilfe.
Ich will mir eine Einparkhilfe für die Garage basteln.
Mittels Ultraschallsensor wird der Abstand zwischen Wand und Auto ermittelt.
Je nach Abstand schalte ich entweder eine rote, gelbe oder grüne LED.
Bis dahin kein Problem.
Jetzt will ich aber, dass wenn länger 10 Sekunden keine Wertänderung auftritt --> Auto ist geparkt oder Garage ist leer, alle LEDs abschalten.
Sprich eine Variable auf 1 setzten, mit der ich dan die LEDs verknüpfen kann.
Tritt eine Wertänderung auf, möchte ich die Variable wieder auf 0 setzen.

Hier mal mein Sketch:
****************************************************

#define trigger 9 // Arduino Pin an HC-SR04 Trig
#define echo 8 // Arduino Pin an HC-SR04 Echo
int LED_gruen = 5;
int LED_gelb = 6;
int LED_rot = 7;

void setup(void) {

pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}

long duration = 0;
long distance = 0;
long distance_old = 0;

void loop() {

digitalWrite(trigger, LOW);
delayMicroseconds(2);

digitalWrite(trigger, HIGH);
delayMicroseconds(10);

digitalWrite(trigger, LOW);
duration = pulseIn(echo, HIGH); // Echo-Zeit messen

// Echo-Zeit halbieren (weil hin und zurueck, der doppelte Weg ist)
duration = (duration / 2);
// Zeit des Schalls durch Luft in Zentimeter umrechnen
distance = duration / 29.1;

// Anzeige nur Aendern wenn neue Entfernung
if (distance != distance_old) {
Serial.print(distance);
Serial.println(" cm");
}

distance_old = distance; // letze Entfernung speichern
delay(200);

//LED´s ansteuern
if (distance > 50)
{ digitalWrite(LED_gruen, LOW); //Wenn Abstand zu groß, ist keine LED aktiv
digitalWrite(LED_gelb, LOW);
digitalWrite(LED_rot, LOW);
}

else if (distance > 35)
{ digitalWrite(LED_gruen, HIGH);
digitalWrite(LED_gelb, LOW);
digitalWrite(LED_rot, LOW);
}


else if (distance < 26)
{ digitalWrite(LED_gruen, LOW);
digitalWrite(LED_gelb, LOW);
digitalWrite(LED_rot, HIGH);
}

else
{
digitalWrite(LED_gruen, LOW);
digitalWrite(LED_gelb, HIGH);
digitalWrite(LED_rot, LOW);
}

}
****************************************************

Habe auch schon versucht aus dem Beispiel "Blink without delay" was für mich anzuwenden aber leider erfolglos.
Ich hoffe ihr könnt mir weiterhelfen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.10.2015, 18:05
Beitrag #2
RE: Einparkhilfe
BlinkWithoutDelay ist absolut richtig dafür.
Du musst den Code nur in deine Loop einfügen, die Zeitvariable auf die 10 sek (10000) setzen und mit einer weiteren Variable den Zustand der Leds abfragen bzw. abschalten wenn die Zeit um ist.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.10.2015, 18:34
Beitrag #3
RE: Einparkhilfe
Ich hätte es auf die Schnelle so ungefär gemacht, das funktioniert aber nur wenn dein Wert sich im Ruhezustand nicht ändert.

Code:
#define trigger 9 // Arduino Pin an HC-SR04 Trig
#define echo 8 // Arduino Pin an HC-SR04 Echo
int LED_gruen = 5;
int LED_gelb = 6;
int LED_rot = 7;
long previousMillis = 0;
long interval = 10000;

void setup(void) {

pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}

long duration = 0;
long distance = 0;
long distance_old = 0;

void loop() {

unsigned long currentMillis = millis();
  
digitalWrite(trigger, LOW);
delayMicroseconds(2);

digitalWrite(trigger, HIGH);
delayMicroseconds(10);

digitalWrite(trigger, LOW);
duration = pulseIn(echo, HIGH); // Echo-Zeit messen

// Echo-Zeit halbieren (weil hin und zurueck, der doppelte Weg ist)
duration = (duration / 2);
// Zeit des Schalls durch Luft in Zentimeter umrechnen
distance = duration / 29.1;

// Anzeige nur Aendern wenn neue Entfernung
if (distance != distance_old) {
Serial.print(distance);
Serial.println(" cm");
previousMillis = currentMillis;
}

distance_old = distance; // letze Entfernung speichern
delay(200);

//LED´s ansteuern
if ((distance > 50) || (currentMillis - previousMillis > interval))
{ digitalWrite(LED_gruen, LOW); //Wenn Abstand zu groß, ist keine LED aktiv
digitalWrite(LED_gelb, LOW);
digitalWrite(LED_rot, LOW);
}

else if (distance > 35)
{ digitalWrite(LED_gruen, HIGH);
digitalWrite(LED_gelb, LOW);
digitalWrite(LED_rot, LOW);
}


else if (distance < 26)
{ digitalWrite(LED_gruen, LOW);
digitalWrite(LED_gelb, LOW);
digitalWrite(LED_rot, HIGH);
}

else
{
digitalWrite(LED_gruen, LOW);
digitalWrite(LED_gelb, HIGH);
digitalWrite(LED_rot, LOW);
}

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.10.2015, 19:56
Beitrag #4
RE: Einparkhilfe
Vielen Dank.
Scheint so zu funktionieren. :-)
Die Variante mit BlinkWithoutDelay werd ich mir bei Gelegenheit nochmal anschauen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.10.2015, 20:09
Beitrag #5
RE: Einparkhilfe
(26.10.2015 19:56)Uli-UNO schrieb:  Vielen Dank.
Scheint so zu funktionieren. :-)
Die Variante mit BlinkWithoutDelay werd ich mir bei Gelegenheit nochmal anschauen.

Die Grundfunktionen (angepasst) des BlinkWithoutDelay hat Scherheinz ja schon in seiner überarbeiteten Version eingebaut..

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.10.2015, 12:18
Beitrag #6
RE: Einparkhilfe
(26.10.2015 19:56)Uli-UNO schrieb:  Vielen Dank.
Scheint so zu funktionieren. :-)
Die Variante mit BlinkWithoutDelay werd ich mir bei Gelegenheit nochmal anschauen.

Das freut mich, war ungetestet.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Machbar? Eigene Einparkhilfe Abormarly 1 2.636 29.07.2014 23:45
Letzter Beitrag: SkobyMobil

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste