Arduino Forum

International => Deutsch => Topic started by: seedey on Apr 27, 2019, 11:40 pm

Title: ersten Ultraschallsensor Wert ausßer acht lassen
Post by: seedey on Apr 27, 2019, 11:40 pm
Hi Community,

ich bin ziemlicher Anfänger in der Arduino Welt.
so ich habe einen Ultraschallsensor, eine LED und einen Signalgeber. Wenn der Sensor einen Abstand unterschritten hat soll die Led blinken und der Signalgeber einen Ton abgeben und zwar solange bis er zurückgesetzt wird. so jetzt zum Problem: der erste Wert des Ultraschallsensors ist irgendwie bei 6 cm (muss er sich vielleicht erstmal hochfahren oder ähnliches ?) deswegen ist er schon direkt am Anfang am durchdrehen und macht das was er machen soll aber halt nicht so richtig. Hat jemand eine Idee wie ich den ersten Sensorwert außer acht lassen kann oder einen andren Vorschlag ? Danke :))
Code: [Select]
int led = 13;
int sound = 4;

int trigger = 9;
int echo = 10;

long dauer = 0;
long entfernung = 0;
boolean state = 0;

void setup()
{
  Serial.begin (9600);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(2, OUTPUT);
  pinMode(sound, OUTPUT);
  digitalWrite(2, HIGH);
 
}
void loop()
{
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH); .
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH); .
  entfernung = (dauer / 2) * 0.03432;
  if (entfernung >= 500 || entfernung <= 0) …
  {
    Serial.println("Kein Messwert");
  }
  else
  {
    Serial.print(entfernung);
    Serial.println(" cm");

  }
  delay(100); .

  if ( entfernung < 40) {
    state = 1;
  }
  if (state == 1) {

    digitalWrite(led, HIGH);
    delay(100);
    digitalWrite(led, LOW);
    delay(100);

    digitalWrite(sound, LOW);
    delay(500);
    digitalWrite(sound, HIGH);
    delay(500);

  }
  Serial.println(state);


}
Title: Re: ersten Ultraschallsensor Wert ausßer acht lassen
Post by: uxomm on Apr 28, 2019, 01:31 am
Du schreibst zwar nicht welchen Ultraschall-Sensor du verwendest, beim sehr viel verwendeten Ultraschall-Modul HC-SR04 (https://www.reichelt.de/entwicklerboards-ultraschall-abstandssensor-debo-sen-ultra-p161487.html?r=1) ist es jedenfalls in der Tat so, dass das erste Messergebnis oft keinen "gültigen" Wert liefert (= es ergibt sich eine unrealistische kurze Distanz).
Dieses Problem lässt sich meist recht einfach beheben, indem eine kleine Verzögerung in setup eigebaut wird (z.B. 200 Millisekunden). Das reicht aus und das erste Messergebnis liefert dann einen gültigen und realistischen Wert.

In deinem Programm also etwa so:
Code: [Select]
int led = 13;
int sound = 4;
int trigger = 9;
int echo = 10;
long dauer = 0;
long entfernung = 0;
boolean state = 0;

void setup() {
  Serial.begin (9600);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(2, OUTPUT);
  pinMode(sound, OUTPUT);
  digitalWrite(2, HIGH);
  delay(200);    // <<------
 }

void loop() ...
und so weiter


Es gibt natürlich auch andere Methoden um den ersten Messwert zu "unterdrücken", aber die beschriebene ist in Verbindung mit dem erwähnten Ultraschall-Modul (zumindest meine) Methode der Wahl. :)
Title: Re: ersten Ultraschallsensor Wert ausßer acht lassen
Post by: postmaster-ino on Apr 28, 2019, 12:10 pm
Hi

Beim HC-SR04nutze ich den Median, seit ich Den hier kennen lernen durfte.
Eine Lib dazu versteckt sich in der Lib SharpDistSensor, dort allerdings fest auf INT 'verdrahtet'.

Meine Änderung besteht drin, daß ich den Datentyp der Messwerte per #define festlege und so jedes Vorkommen vom Ziel-Typ ersetze.

MfG
Title: Re: ersten Ultraschallsensor Wert ausßer acht lassen
Post by: seedey on Apr 28, 2019, 05:12 pm
Dieses Problem lässt sich meist recht einfach beheben, indem eine kleine Verzögerung in setup eigebaut wird (z.B. 200 Millisekunden). Das reicht aus und das erste Messergebnis liefert dann einen gültigen und realistischen Wert.

gute idee aber nicht mehr nötig der Sensor ist nicht so toll wie ich dachte ich nehme jetzt eine lichtschranke mit IR-Diode und Fotodiode Danke ^^
Title: Re: ersten Ultraschallsensor Wert ausßer acht lassen
Post by: HotSystems on Apr 28, 2019, 06:40 pm
gute idee aber nicht mehr nötig der Sensor ist nicht so toll wie ich dachte ich nehme jetzt eine lichtschranke mit IR-Diode und Fotodiode Danke ^^
Na, ist kommt wohl darauf an, was man machen möchte und wie man es angeht.