Distanzmessung mit dem HC-SR04 Ultraschall-Modul Abstand Sensor

Hallo liebe Arduino-Profis,

ich habe mal folgenden Sketch geschrieben zum messen der Distanz eines Objektes :

int triggerPin = 2;
int echoPin = 3;
long messung = 0;
int ergebnis = 0;

void setup() {
Serial.begin(9600);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
}

void loop() {

digitalWrite(triggerPin, LOW);
delayMicroseconds(5);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);

messung = pulseIn(echoPin, HIGH);
ergebnis = (messung / 2) / 29; // Messung durch 2 (weil hin-und rück)
ergebnis = ergebnis - 14; // Korrekturabstand

if (ergebnis >28 <30){Serial.print("Leiste 3");}

if (ergebnis >32 <33){Serial.print("Leiste 4");}
if (ergebnis >34 <35){Serial.print("Leiste 5");}
if (ergebnis >36 <38){Serial.print("Leiste 6");}
if (ergebnis <=2000){Serial.print("Keine Messung"); return (ergebnis);}// wenn Abstand größer 2 m

delay(1000);
return (ergebnis);

es sollen keine "cm" ausgegeben werden sondern bezogen auf einen bestimmten Abstand die entsprechende Leiste (beim Bowling).

Kann man so viele if - Bedingungen hintereinander schreiben ?

jo, die Anzahl an IF hintereinander ist nicht begrenzt. Nur wenns verschachtelt ist gibts ne Grenze.

Aber deine IF-Abfragen machen nicht so viel Sinn. Du benutzt Ganzzahlvariable, also kann ein >28 <30 durch ein = 29 ersetzt werden. Ist es dann gewünscht das nur bestimmte Zahlen zu einem serial print führen?

Dazu kommt das die letzte IF immer wahr ist, also immer "Keine Messung" zurück gegeben wird. Deine If werden ja IMMER abgearbeitet und nicht nachdem eine Bedingung wahr ist alle anderen ignoriert. Dafür müsstest du eher mit switch ... case arbeiten.

Ob dann dein Wertebereich so stimmt, weis ich auch nicht, weil PulseIn ja eine Zeit zurück gibt. Musst du dann selbst austüfteln, da ich den Aufbau nicht kenne