Skip to content

Commit 5a4f242

Browse files
Merge pull request #2 from FHNW-IP5-IP6/feat/ultrasonic-improvements
feat: added new event methods to docs
2 parents 93fb4d3 + 94fad68 commit 5a4f242

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

code

Submodule code updated 38 files
Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
2+
23
title: Ultraschall Distanzsensor
34
tags: ["gpio"]
4-
---
5+
--------------
56

67
## Funktionsweise
78

@@ -13,14 +14,14 @@ eigenen Ton wieder hört, schaltet er entsprechend seinen digitalen Ausgang. Zum
1314
digitalen Eingang.
1415

1516
Wenn nun mit einem Programm die Zeit zwischen Aussenden des Tons (Trigger) und dem Wiedereintreffen des Tons gemessen wird kann daraus
16-
mithilfe der Schallgeschwindigkeit die Distanz zum Objekt berechnet werden. Diese Funktion wird von der
17-
`UltrasonicDistanceSensorComponent` übernommen. Sie liefert direkt einen Messwert in Zentimetern.
17+
mithilfe der Schallgeschwindigkeit die Distanz zum Objekt berechnet werden. Diese Funktion wird von der `UltrasonicDistanceSensorComponent`
18+
übernommen. Sie liefert direkt einen Messwert in Zentimetern.
1819

1920
Mit dem `HC-SR04` können Distanzen zwischen von 2 bis 3000 Zentimetern gemessen werden. Dabei ist mit einer Toleranz von etwa 3 Millimetern
20-
zu rechnen. Je nach Messdistanz variiert dieser Wert etwas. Genaueres dazu findet sich im [Datenblatt](https://cdn.sparkfun.
21-
com/datasheets/Sensors/Proximity/HCSR04.pdf) des Sensors. Wichtig ist auch zu wissen, dass mehrere Ultraschallsensoren sich gegenseitig
22-
stören können. Weiter ist die Schallgeschwindkeit von der Umgebungstemperatur abhängig. Die Messwerte können einige Prozent schwanken, wenn
23-
es kälter oder wärmer ist.
21+
zu rechnen. Je nach Messdistanz variiert dieser Wert etwas. Genaueres dazu findet sich im
22+
[Datenblatt](https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf) des Sensors. Wichtig ist auch zu wissen, dass mehrere
23+
Ultraschallsensoren sich gegenseitig stören können. Weiter ist die Schallgeschwindkeit von der Umgebungstemperatur abhängig. Die Messwerte
24+
können einige Prozent schwanken, wenn es kälter oder wärmer ist.
2425

2526
## Voraussetzungen
2627

@@ -36,26 +37,33 @@ Nachfolgend wird die Verwendung der Klasse {{< javadoc class="com.pi4j.crowpi.co
3637

3738
### Konstruktoren
3839

39-
| Konstruktor | Bemerkung |
40-
| --- | --- |
41-
| `UltrasonicDistanceSensorComponent(com.pi4j.context.Context pi4j)` | Initialisiert einen Ultraschall Distanz Sensor mit dem Standard-Pin für den CrowPi. |
40+
| Konstruktor | Bemerkung |
41+
|:--------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------|
42+
| `UltrasonicDistanceSensorComponent(com.pi4j.context.Context pi4j)` | Initialisiert einen Ultraschall Distanz Sensor mit dem Standard-Pin für den CrowPi. |
4243
| `UltrasonicDistanceSensorComponent(com.pi4j.context.Context pi4j, int triggerAddress, int echoAddress)` | Initialisiert einen Ultraschall Distanz Sensor mit benutzerdefinierten Pins. Trigger ist dabei der digitale Eingang und Echo der Ausgang des Sensors. |
4344

4445
### Methoden
4546

46-
| Methode | Bemerkung |
47-
| --- | --- |
48-
| `double measure()` | Führt eine Messung aus und gibt die aktuelle Distanz [cm] zurück. |
49-
| `double measure(double temperature)` | Führt eine Messung aus und gibt die aktuelle Distanz [cm] zurück. Bei der Distanzberechnung wird zudem der Einfluss der Umgebungstemperatur auf die Schallgeschwindigkeit berücksichtigt und kompensiert. |
47+
| Methode | Bemerkung |
48+
|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
49+
| `double measure()` | Führt eine Messung aus und gibt die aktuelle Distanz [cm] zurück. Nutzt dabei die aktuelle Temperatureinstellung. |
50+
| `double measure(double temperature)` | Führt eine Messung aus und gibt die aktuelle Distanz [cm] zurück. Bei der Distanzberechnung wird zudem der Einfluss der Umgebungstemperatur auf die Schallgeschwindigkeit berücksichtigt und kompensiert. |
51+
| `void onObjectFound(SimpleEventHandler handler)` | Setzt den Event Handler, welcher bei Erkennung eines Objekts aufgerufen werden soll. `null` deaktiviert diesen Event Listener. |
52+
| `void onObjectDisappeared(SimpleEventHandler handler)` | Setzt den Event Handler, welcher bei Verschwinden eines Objekts aufgerufen werden soll. `null` deaktiviert diesen Event Listener. |
53+
| `void setMeasurementTemperature(double temperature)` | Definiert die Standardmesstemperatur, welche in die Distanzberechnung einbezogen wird. |
54+
| `void setDetectionRange(double minRange, double maxRange)` | Definiert die Distanz welche gemessen werden muss, um als Objekt erkannt zu werden. |
5055

5156
## Beispielapplikation
5257

53-
Die nachfolgende Beispielapplikation gibt zuerst einige Messwerte mit verschiedenen Temperatureinstellungen aus. So kann der Einfluss
54-
von Temperaturschwankungen auf den Messwert hervorragen analysiert werden. Anschliessend wird eine kurze `for`-Schleife gestartet welche
55-
jede Sekunde einen neuen Messwert ausgibt. Dies verschafft etwas Zeit, um auch einmal die Hand über den Sensor zu halten.
58+
Die nachfolgende Beispielapplikation führt als erstes unter Verwendung von `onObjectFound` eine Objekterkennung durch. Es wird jeweils
59+
ausgegeben, ob ein Objekt gefunden wurde und ebenfalls, wenn es wieder verschwunden ist. Danach werden einige Messwerte mit verschiedenen
60+
Temperatureinstellungen ausgegeben. So kann der Einfluss von Temperaturschwankungen auf den Messwert hervorragend analysiert werden.
61+
Anschliessend wird eine kurze `for`-Schleife gestartet welche jede Sekunde einen neuen Messwert ausgibt. Dies verschafft etwas Zeit, um auch
62+
einmal die Hand über den Sensor zu halten.
5663

5764
{{< code file="src/main/java/com/pi4j/crowpi/applications/UltrasonicDistanceSensorApp.java" language="java" >}}
5865

5966
## Weitere Möglichkeiten
6067

6168
- Das Beispiel um einen Temperatursensor erweitern, um immer korrekte Messwerte zu erhalten.
69+

0 commit comments

Comments
 (0)