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
Ultraschallsensor
09.10.2017, 08:25
Beitrag #1
Ultraschallsensor
Hallo Forum-Mitglieder,

ich versuche gerade über einen Ultraschallsensor eine Entfernung zu messen und diese einfach am Seriellen Monitor ausgeben zu lassen.
Dies funktioniert soweit auch jedoch bekommen ich zwischendurch immer eine viel zu große zahl am Monitor.
Kann mir da jemand einen Grund nennen?

Zusätzlich lasse ich es über einen Bluetooth-Modul laufen aber das sollte ja nicht damit zusammenhängen.

Dass ist der Sketch:
Code:
char eingabe;
int led = 13;

#define trigger 9
#define echo 10

int getEntfernung()
{
  long entfernung=0;
  long zeit;

  digitalWrite(trigger, LOW);
  delayMicroseconds(3);
  noInterrupts();
  digitalWrite(trigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger, LOW);
  zeit = pulseIn(echo, HIGH);
  interrupts();
  zeit = (zeit/2);
  entfernung = zeit/29.1;
  return(entfernung);
}

void setup()
{
Serial.begin(9600);
pinMode(led,OUTPUT);

pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
digitalWrite(trigger, HIGH);
}


void loop()
{
  int entfernung = getEntfernung();
  
  Serial.println(entfernung, DEC);
  
  delay(1000);
}

die Ausgabe sieht dann wie folgt aus:
5
43
3254
5
249
3249
5
3244
5
3241
5
3254
5
4
3
5
6
6
7
3258
5
406
...

LG Glocke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.10.2017, 10:56
Beitrag #2
RE: Ultraschallsensor
Bist Du sicher, dass es gut ist, die interrupts auszuschalten?
Ich weiß nicht, was für einen Sensor Du hast aber für die normalen doppelten hier mal ein Sketch von Funduino.
Code:
int trigger=7;
int echo=6;
long dauer=0;
long entfernung=0;
void setup()
{
Serial.begin (9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
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(1000);
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.10.2017, 11:51
Beitrag #3
RE: Ultraschallsensor
Ich glaube nicht dass es an den Interrupts liegt da ich sie am Anfang noch nicht drin hatte und es da auch schon nicht funktioniert hat.
Aber ich werde das Programm dass du geschickt hast ausprobieren.

LG Glocke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.10.2017, 13:22 (Dieser Beitrag wurde zuletzt bearbeitet: 09.10.2017 13:23 von hotsystems.)
Beitrag #4
RE: Ultraschallsensor
(09.10.2017 11:51)Glocke schrieb:  Ich glaube nicht dass es an den Interrupts liegt da ich sie am Anfang noch nicht drin hatte und es da auch schon nicht funktioniert hat.
Aber ich werde das Programm dass du geschickt hast ausprobieren.

oder du verwendest die Library "NewPing", die habe ich auch schon mehrfach verwendet.
Beispiele sind in der Library vorhanden.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.10.2017, 07:55
Beitrag #5
RE: Ultraschallsensor
Also auf jeden Fall mal vielen Dank für die Hilfe!
Es gibt zwar immer noch ab und zu einen viel zu großen Wert aus bzw. "keine Messung" aber es ist schon wesentlich besser.
Die Library "NewPing" muss ich noch testen vll ist es dann ganz weg!

LG Glocke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2017, 09:49 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2017 09:57 von Franz54.)
Beitrag #6
RE: Ultraschallsensor
Ich habe festgestellt, dass diese hohen Werte dann kommen, wenn der Schall nicht im 90 Grad Winkel auf das Hindernis trifft, sondern z.B. im 45 Grad Winkel. Dann kommt der Schall offenbar nicht auf kürzestem Weg zurück, sondern irrt erst ein wenig durch den Raum, weil er am Hindernis seitlich abgelenkt wird.

Ausserdem habe ich Höchstwerte genommen, von denen weg die Messung ungültig ist und verworfen wird. Wenn ich ein Fahrzeug damit gegen anstoßen sichern will, reichen mir ja z.B. kleiner 50cm. Die Ausreißer sind ja meistens deutlich größer. Also c.B. 500 cm anstatt 20 cm.

Ich will auch mal Lasermessungen testen. Die sollten eigentlich sicherer sein. Diese Sensoren sind auch nicht teuer.

Franz

http://www.superlaugh.com/behappy
Hier was zum Thema Deutsche Politik Angry
Und hier zum Thema richtige Politik Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2017, 10:21
Beitrag #7
RE: Ultraschallsensor
(11.10.2017 09:49)Franz54 schrieb:  Ich will auch mal Lasermessungen testen. Die sollten eigentlich sicherer sein. Diese Sensoren sind auch nicht teuer.
Franz

Hallo,
Interresant,
hast du dafür eine Quelle zum nachlesen oder Bestellen ?
Ich würde das gerne mal mit meiner Nikon kombinieren.
Im Moment bastel ich noch an sowas ähnlichen wie der Foto Opa aus Belgien.
Der kombiniert 2 Laser über kreuz und wertet den Schnittpunkt mit einen Attiny45 per SPI aus.
Gruß, Markus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2017, 11:34 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2017 12:18 von Franz54.)
Beitrag #8
RE: Ultraschallsensor
Das muss ich mir auch erst wieder suchen. Ist schon eine ganze Zeit lang her, wo ich etwas unzufrieden wurde mit der Ultraschall Messung und dann in Richtung Lasermessung wollte.

Franz

PS: ich habe gerade eine Notiz von mir gefunden, warum ich den Laser für kurze Entfernungen wieder gestrichen habe. Das Licht ist zu schnell unterwegs, da geht nichts mit Zeitmessung die da Licht unterwegs ist, von A nach b und zurück Confused

Hier wäre mal was zum testen Idea Aber macht nur 10 - 80 cm
Hier noch einer. Der gefällt mir besser.

http://www.superlaugh.com/behappy
Hier was zum Thema Deutsche Politik Angry
Und hier zum Thema richtige Politik Big Grin
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