Logik-/Programmierfehler in einem Ultraschall-Projekt

Hallo im Forum,

ich versuche gerade ein kleines Ultraschallprojekt zu erstellen und komme nicht weiter:

Szenario: Der Sensor misst den Abstand zu einem Hindernis, z.B. 10cm. Jetzt soll bei einer Über- oder Unterschreitung des Abstandes von z.B. 2cm (Variable: abweichung) ein „X“ für „Fehler“ angezeigt werden, wohingegen das Verbleiben im Bereich einer Abweichung von weniger als 2cm nach oben oder unten einen Haken für „OK“ anzeigt.

Für einen hilfreichen Tipp bin ich dankbar, ich stehe da momentan auf dem Schlauch…

Vielen Dank u. Herzliche Grüße
Norbert

Hallo Norbert,
im Block „setze abweichung …“ müsstest du die Variable sensor durch die Zahl 10 (oder eine im Startblock definierte Variable „sollAbstand“ ersetzen. Sonst bleibt der Wert von Abweichung immer im gewünschten Bereich 2.
VG

Hallo, vielen Dank für den Tipp. Wenn ich Ihren Vorschlag ansehe, dann ließe sich dieses Vorgehen m.M.n. leichter durch eine einfachere Wenn-Dann-Beziehung lösen.

Bei fest definiertem Abstand funktioniert das Ganze perfekt und ist auch wesentlich leichter zu programmieren, z.B. Wenn Sensor > 5 dann Fehler, ansonsten OK.

Vielleicht noch eine kurze Verdeutlichung meines Ziels:

In meinem Fall möchte ich aber einen beliebigen Abstand, der dann als „sollAbstand“ gespeichert wird, definieren und dieser Soll-Abstand darf dann eine bestimmte Abweichung nach oben oder unten nicht über-/unterschreiten.

Grundsätzlich würde ich diesen Soll-Abstand gerne bei einem Start des Programms z.B. mit der A-Taste messen u. definieren und dann eine nachfolgende Abweichung erfassen und bewerten.

Beim nächsten Druck der Taste könnte man dann wieder einen anderen, neuen Abstand definieren u. bewerten.

Vielen Dank u. Herzliche Grüße
Norbert

Der beliebige sollAbstand sollte sich einfach realisieren lassen:
Ein „wenn TasteA gedrückt“ (ohne sonst) im Startblock und im Dauerhaftblock, darin die Zuweisung des aktuell gemessenen Abstands an die Variable sollAbstand.
Da ich gerade keinen Ultraschallsensor zur Hand habe, kann ich es nicht selber ausprobieren. :smiley:

Die Bedingung beim WENN sieht bei mir so aus:

Hallo, hab es ausprobiert, komme leider nicht weiter.

Haben Sie evtl. Ihren kompletten Code für mich, damit ich mal mit meinem „Werk“ vergleichen kann?

Vielen Dank u. herzliche Grüße
Norbert

Hier der Code für den Lichtsensor (Ultraschall hab ich halt gerade nicht):

Beim Startblock könnte auch Knopf A als Bedingung für’s setzen des Sollwerts verwendet werden, dann wäre der Zeitpunkt für den Startwert präziser, aber der kann ja im Dauerhaftblock beliebig oft korrigiert werden.

Hallo, jetzt funktionert’s

Bei der Abweichungsabfrage muss natürlich „ODER“ hinein, damit die obere und untere Abweichung erfasst werden kann.

Vielen Dank u. herzliche Grüße
Norbert

Kommt auf die Reihenfolge in wenn - sonst an: bei mir war wenn „grün = ok“ und sonst „rot = Überschreitung“, darum logischerweise das „und“ in der Bedingung, bei dir ist es eben umgekehrt.
Deshalb hast du ja auch in deiner Variante in der Bedingung < und >, ich hatte <= und >= .