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
Garagenampel
31.08.2014, 11:22
Beitrag #1
Garagenampel
Hallo,
bin neu hier und auch neu was Arduino betriftt.
Ich versuche gerade eine Garagenampel mit Ultraschallsensor hin zubekommen.
Funktionieren soll es so:
Entfernung größer 30 cm alle LED`s aus
Entfernung kleiner 30 cm LED grün an
Entfernung kleiner 20 cm LED grün aus - LED gelb an
Entfernung kleiner 10 cm LED gelb aus - LED rot blinkt
Entfernung kleiner 5 cm LED rot an
Im Prinzip funktioniert es, nur das LED rot bei unter 5 cm kurz dauerhaft leuchtet, dann aber wieder blinkt.
Könnt ihr mir weiterhelfen?
Diesen Sketch habe ich jetzt:
Code:
int trigger=7;
int echo=6;
long dauer=0;
long entfernung=0;
int piezo=5;
int ledgr=4;
int ledge=3;
int ledrt=2;
void setup() {

Serial.begin (9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(piezo, OUTPUT);
pinMode(ledgr, OUTPUT);
pinMode(ledge, OUTPUT);
pinMode(ledrt, OUTPUT);
}
void loop() {
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
dauer = pulseIn(echo, HIGH);
entfernung = (dauer/2) / 29.1;
if (entfernung >= 500 || entfernung <= 0)
{
Serial.println("Kein Messwert");
}
else
{
Serial.print(entfernung);
Serial.println(" cm");
}
if (entfernung <= 40)
{
digitalWrite(ledgr,HIGH);
}
else
{
}
if (entfernung <= 30)
{
digitalWrite(ledgr,LOW);
}
if (entfernung <= 30)
{
digitalWrite(ledge,HIGH);
}
else
{
}
if (entfernung <= 20)
{
digitalWrite(ledge,LOW);
}
if (entfernung <= 20)
{
digitalWrite(ledrt, HIGH);  
delay(50);              
digitalWrite(ledrt, LOW);
delay(50);
}
else
{
}
if (entfernung <= 10)
{
digitalWrite(ledrt,HIGH);
}
else
{
}
if (entfernung <= 5)
{
digitalWrite(ledrt,LOW);
}
if (entfernung >= 50)
{
digitalWrite(ledgr,LOW);
digitalWrite(ledge,LOW);
digitalWrite(ledrt,LOW);
}
delay(1000);
}

Gruß
Kurt
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2014, 18:06
Beitrag #2
RE: Garagenampel
Hallo Kurt ...

nehme aus dem Teil ...

if (entfernung <= 20)
{
digitalWrite(ledrt, HIGH);
delay(50); <<<<<<<<<<<<<<<<<<<< dies und
digitalWrite(ledrt, LOW); <<<<<<<<<<<<<<<<< dies und
delay(50); <<<<<<<<<<<<<<<<<<<<<<<<<< dies bitte mal raus
}

Hiermit sagst Du doch, so weit "ich" das sehe, dass die LEDRT unter 20 cm blinken soll !
Teste das bitte mal und sag uns bescheid...

Gruß Sepro
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2014, 20:06 (Dieser Beitrag wurde zuletzt bearbeitet: 01.09.2014 04:11 von Kurt.)
Beitrag #3
RE: Garagenampel
Hallo Sepro,

hab ich gemacht. Ledrt geht unter 20 an, dann kurz aus und dann unter 10 wieder an.
Das sie unter 20 blinkt, ist ja ok. Unter 10 blinkt sie anders. Es scheint als wollte sie dauernd leuchten, wird aber von dem Blinktakt immer kurz ausgeschalten.

Grüsse
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.09.2014, 19:20
Beitrag #4
RE: Garagenampel
Hallo Kurt,

ich kenne mich mit diesem Sensortyp nicht aus.
Kann es sein, dass er einfach ungenau ist und somit auch ungenau reagiert ?
In welchem Arbeitsbereich ist die Messung bei diesen Sensoren am besten ?!
Gibt es eventuell jemanden hier, welcher diese Art von Sensoren schon für
kurze Distanzen eingesetzt hat ?

Gruß Sepro
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2014, 16:24
Beitrag #5
RE: Garagenampel
Hallo Sepro,
der Sensor ist schon ok. Ich sehe es im Monitor, Zentimeter genau.
Ich denke das Problem ist das Beenden der Blinkfunktion unter 10 cm.
So wie hier das Abschalten der Led.
}
if (entfernung <= 40)
{
digitalWrite(ledgr,HIGH);
}
else
{
}
if (entfernung <= 30)
{
digitalWrite(ledgr,LOW);

}

Kurt
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.09.2014, 03:43 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2014 05:08 von Corvus.)
Beitrag #6
RE: Garagenampel
Probiers mal hiermit:
Zitat:int trigger=7;
int echo=6;
long dauer=0;
long entfernung=0;
int piezo=5;
int ledgr=4;
int ledge=3;
int ledrt=2;

void setup() {
  Serial.begin (9600);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(piezo, OUTPUT);
  pinMode(ledgr, OUTPUT);
  pinMode(ledge, OUTPUT);
  pinMode(ledrt, OUTPUT);
}

void loop() {
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer/2) / 29.1;

  if (entfernung >= 500 || entfernung <= 0)
  {
    Serial.println("Kein Messwert");
  }
  else
  {
    Serial.print(entfernung);
    Serial.println(" cm");
  
    if (entfernung > 30)
    {
      digitalWrite(ledgr,LOW);
      digitalWrite(ledge,LOW);
      digitalWrite(ledrt,LOW);
    } 
    else if (entfernung > 20)
    {
      digitalWrite(ledgr,HIGH);
      digitalWrite(ledge,LOW);
    }
    else if (entfernung > 10)
    {
      digitalWrite(ledgr,LOW);
      digitalWrite(ledge,HIGH);
    }
    else if (entfernung > 5)
    {
      digitalWrite(ledge,LOW);
      digitalWrite(ledrt,HIGH);
      delay(50);
      digitalWrite(ledrt,LOW);
      delay(map(entfernung,5,10,50,800));
    }
    else
    {
      digitalWrite(ledrt,HIGH);
    }
  }
}

(hierbei blinkt die rote Diode mit zunehmender Frequenz je geringer die Entfernung ist - ähnlich dem Piepsen einer Einparkhilfe.)

Das Problem in deiner Lösung ist, dass bei einem Abstand von unter 5cm auch die Bedingung (entfernung <= 10) erfüllt ist. Somit wird auch das Blinken mit ausgeführt, wodurch die Diode für 50ms abschaltet bei jedem durchlauf. (Genau genommen werden auch deine grüne und rote Diode ganz kurz eingeschaltet was aber so kurz ist, dass es nicht auffällt.)

gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.09.2014, 09:58
Beitrag #7
RE: Garagenampel
Hallo Corvus,
sorry das ich mich jetzt erst melde.
Hab deinen Code probiert-funktioniert.

Besten Dank
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


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