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
Arduino Einpark-Ampel
31.08.2015, 18:47 (Dieser Beitrag wurde zuletzt bearbeitet: 31.08.2015 18:48 von Borsty.)
Beitrag #1
Arduino Einpark-Ampel
Hallo liebe Helfer,

Ich habe das Problem, dass mein Programm zwar anfänglich optimal läuft aber nach einiger Zeit scheint reagiert mein Arduino Pro Mini nicht mehr, dh. der Zustand der LED's bleibt und er friert einfach ein und reagiert auf nichts mehr außer einem Reset oder dem Abziehen des Ultraschallsensors (Spannungsunterbrechung). Im "Seriellen Monitor" wird, während das Programm normal läuft die Distanz kontiniurlich ausgegeben, wenn er aussteigt kommt nur noch der im Programm vorgegebene Text "Kein Messwert".

Verwendet wird hier der Ultraschallsensor: HC-SR04, außerdem drei LED's in rot, gelb und grün.
Ich kann einfach nicht die Ursache für den Ausstieg ausmachen, Zeit scheint es nicht zu sein.

Da ich keinen zweiten Sensor habe, kann ich nicht ausschließen, dass dieser eine Macke hat.

Ich hoffe es kann mir jemand helfen den Fehler zu finden!

Danke schonmal!

Quellcode:
.ino  Einpark_Ampel.ino (Größe: 1,39 KB / Downloads: 79)


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2015, 19:14
Beitrag #2
RE: Arduino Einpark-Ampel
Bitte den Sketch in Code-Tags hier direkt einsetzen. Dann ist es für uns einfacher den Code zu lesen. Ich, sowie vielen andere habe evtl. keine Möglichkeit den Code direkt einzusehen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2015, 20:01 (Dieser Beitrag wurde zuletzt bearbeitet: 31.08.2015 20:03 von Hilgi.)
Beitrag #3
RE: Arduino Einpark-Ampel
Code:
int trigger=7;
int echo=8;

long dauer=0;
long entfernung=0;

int gruen=4;
int gelb=3;
int rot=2;

void setup() {
  Serial.begin (9600);
  
  pinMode(trigger, OUTPUT);
  pinMode(echo,     INPUT);
  
  pinMode(gruen, OUTPUT);
  pinMode(gelb, OUTPUT);
  pinMode(rot, 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(gruen,LOW);           // ALLE AUS
      digitalWrite(gelb,LOW);            // ALLE AUS
      digitalWrite(rot,LOW);             // ALLE AUS
    }
    else if (entfernung > 30)
    {
      digitalWrite(gruen,HIGH);         // GRÃœN AN
      digitalWrite(gelb,LOW);
      digitalWrite(rot,LOW);
    }
    else if (entfernung > 20)
    {
      digitalWrite(gruen,LOW);
      digitalWrite(gelb,HIGH);          // GELB AN
      digitalWrite(rot,LOW);
    }
    else if (entfernung > 10)
    {
      digitalWrite(gelb,LOW);
      digitalWrite(rot,HIGH);          // ROT Blinkt entsprechnend
      delay(50);
      digitalWrite(rot,LOW);
      delay(map(entfernung,10,20,30,800));
    }
    else
    {
      digitalWrite(rot,HIGH);
    }
  }
}

also mir fällt auf, das wenn du zb 50cm entfernt bist, alle if cases zutreffen,
denn 50 ist > 40 und 30 und 20 und 10....

gruss und viel erfolg weiter

Nicht denken,...
...nachdenken... Rolleyes
http://capsicum-felicitas.de.tl
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.09.2015, 09:31
Beitrag #4
RE: Arduino Einpark-Ampel
Hallo,

(31.08.2015 18:47)Borsty schrieb:  ...Im "Seriellen Monitor" wird, während das Programm normal läuft die Distanz kontiniurlich ausgegeben, wenn er aussteigt kommt nur noch der im Programm vorgegebene Text "Kein Messwert".

Wird der Text "Kein Messwert" denn bei einem vermeintlichen Ausstieg des Arduinos weiter kontinuierlich geschrieben? Oder siehst du halt nur den letzten Eintrag im SerialMonitor?

Eine zu geringe Spannung am Arduino bringt manchmal solch ein Verhalten. Nutzt du denn ein Netzteil?

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.09.2015, 17:09
Beitrag #5
RE: Arduino Einpark-Ampel
Hallo borsty,

ein paar Anmerkungen zum Code:
- ich würde zwischen den Messungen ein Intervall von 100 ms einfügen.
- aktuell hast du bei allen Situationen > 10 cm nur 15 ms zwischen den Messungen, das ist evtl. ein bischen kurz
- der Sensor bringt sowieso nur zwischen 2 und 400 cm sinnvolle Werte. Danach nur Müll, und wer weiß schon was dann im code passiert
- generell würde ich einzelne If-Anweisungen schreiben und nicht verschachteln. Das macht den Code schneller

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2015, 19:40 (Dieser Beitrag wurde zuletzt bearbeitet: 02.09.2015 19:58 von Borsty.)
Beitrag #6
RE: Arduino Einpark-Ampel
(31.08.2015 19:14)hotsystems schrieb:  Bitte den Sketch in Code-Tags hier direkt einsetzen. Dann ist es für uns einfacher den Code zu lesen. Ich, sowie vielen andere habe evtl. keine Möglichkeit den Code direkt einzusehen.

Werde ich beim nächsten Mal berückstichtigen, war mein erster Post hier, sorry.
Aber Hilgi war ja schon so nett und hat gut reagiert, vielen Dank dafür.

(31.08.2015 20:01)Hilgi schrieb:  
also mir fällt auf, das wenn du zb 50cm entfernt bist, alle if cases zutreffen,
denn 50 ist > 40 und 30 und 20 und 10....

gruss und viel erfolg weiter

Bei einer größeren Entfernung scheint das kein Problem zu sein, denn es sind dann alle LED's aus und genau so sollte es sein. Zufall, dass es so trotzdem gut funktioniert / wenn es funktioniert?

(01.09.2015 09:31)torsten_156 schrieb:  Hallo,

(31.08.2015 18:47)Borsty schrieb:  ...Im "Seriellen Monitor" wird, während das Programm normal läuft die Distanz kontiniurlich ausgegeben, wenn er aussteigt kommt nur noch der im Programm vorgegebene Text "Kein Messwert".

Wird der Text "Kein Messwert" denn bei einem vermeintlichen Ausstieg des Arduinos weiter kontinuierlich geschrieben? Oder siehst du halt nur den letzten Eintrag im SerialMonitor?

Eine zu geringe Spannung am Arduino bringt manchmal solch ein Verhalten. Nutzt du denn ein Netzteil?

Gruß
Torsten

Das ist richtig, der Text "Kein Messwert" wird weiterhin kontinuirlich geschrieben.
Eine zu geringe Spannung glaube ich eigentlich nicht, ich nutze ja den Arduino Pro Mini und da gebe ich ihm dann über das USB-Kabel die 5 V (Programmierschnittstelle). Ich habe es auch schon an einem aktiven USB-Hub probiert, das kann dann bis zu 2 A, ich denke damit sollte man hinkommen Big Grin

(01.09.2015 17:09)rkuehle schrieb:  Hallo borsty,

ein paar Anmerkungen zum Code:
- ich würde zwischen den Messungen ein Intervall von 100 ms einfügen.
- aktuell hast du bei allen Situationen > 10 cm nur 15 ms zwischen den Messungen, das ist evtl. ein bischen kurz
- der Sensor bringt sowieso nur zwischen 2 und 400 cm sinnvolle Werte. Danach nur Müll, und wer weiß schon was dann im code passiert
- generell würde ich einzelne If-Anweisungen schreiben und nicht verschachteln. Das macht den Code schneller

Grüße Ricardo

Du meinst also nochmals hinter "entfernung = (dauer/2) / 29.1;" einen delay von 100ms?
Den zweiten Punkt verstehe ich nicht ganz, wie kommst du auf die 15ms? Kannst du mir da eventuell eine Zeilenangabe oder ähnliches geben?
Der Sensor soll ja ab ca. 2m auf ein Auto reagieren, das in die Garage fährt. Sprich bei mehr als 2m soll später keine LED leuchten und ab 2m die grüne LED usw. von daher denke und hoffe ich, dass es in soweit schon ganz brauchbar sein wird.
Das mit den einzelnen If-Anweisungen werde ich mal ausprobieren, danke!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Ampel mit XBee manau21 2 487 16.12.2015 12:36
Letzter Beitrag: manau21
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 1.105 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 3.127 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf

Gehe zu:


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