Per pulseIn() lese ich ein ankommendes, leicht schwankendes Funksignal aus.
Bsp.:
pulseIn() liegt zwischen 0 und 255
Der Signalwert den ich sende soll 5 sein. Da es aber schwanken kann (Funkübertragung) frage ich es so ab:
if(eingehendesSignal >0 && <10) { ... }
if(eingehendesSignal >10 && <20) { ... }
if(eingehendesSignal >20 && <30) { ... }
if(eingehendesSignal >30 && <40) { ... }
...
...
...
Somit kann das Signal ruhig mal bei 6 oder auch nur bei 2 liegen ohne das ich auf jeden einzelnen Wert eingehen muss.
Kann man das Ganze auch anders (kürzer / eleganter) gestalten?
HotSystems:
Warum sollen die Werte noch durch 10 geteilt werden?
Weil du dann nur noch 25 Werte hast die alles abdecken. Bei switch/case hast du dann maximal 25 cases. Und eine if/else Kette wird auch etwas einfacher, da du nicht mehr zwei Grenzen abfragen musst.
Serenifly:
Weil du dann nur noch 25 Werte hast die alles abdecken. Bei switch/case hast du dann maximal 25 cases. Und eine if/else Kette wird auch etwas einfacher, da du nicht mehr zwei Grenzen abfragen musst.
0- 9 = 0
10-19 = 1
20 - 29 = 2
...
Ok, danke für die Info.
Das ist also rein wegen der "Einfachheit" und nicht programmtechnisch bedingt.
Macht Sinn