Ist doch ok. Ich habe ein bisschen das Gefühl, das Du zwar weißt, was die FOR Schleife macht, aber über die dahinterstehende Logik an dieser Stelle des Programms könnte ein Missverständnis entstanden sein.ando hat geschrieben:Die "For" Schleife hab ich mir nich selbst ausgedacht. Die hab ich aus nem Beispielprogramm geklaut.
Ich möchte noch einmal versuchen, das anders zu erklären:
Nachfolgend soll ein Zeitstrahl sein, dabei sollen die Sybole darstellen:
+ über dem Schwellwert
- unter dem Schwellwert
0 der Schwellwert
P die Messung
V der Vergleich ob der Schwellwert über oder unterschritten ist
. Füllzeichen, macht nix
Die FOR Schleife macht jetzt folgendes:
Zeit -> 000000+++++++0+++0-000----------00---00000++++++++
Loop 1: PPPPPV.........................................................
Loop 2: ........PPPPPPV.................................................
Loop 3: .................PPPPPV.......................................
Loop 4: ..........................PPPPPPV...............................
Loop 5: .....................................PPPPPV..................
Alternativ, wenn man mit einer Tabelle arbeitet, die den jeweils 1. Messwert vergisst und die neue Messung am Ende zufügt, dann wandert der Messbereich anstatt zu springen:
Zeit -> 000000+++++++0+++0-000----------00---00000++++++++
Loop 1: PPPPPV.........................................................
Loop 2: .PPPPPV........................................................
Loop 3: ..PPPPPV.......................................................
Loop 4: ...PPPPPV......................................................
Loop 5: ....PPPPPV.....................................................
Loop 6: .....PPPPPV....................................................
Usw.
Ich glaube, so wird der Unterschied besser deutlich, oder?
Beide Methoden sind valide, weder ist die erste falsch, noch die 2. richtiger, es kommt halt nur drauf an, was man erreichen bzw. machen und messen möchte.
Was macht das Programm denn, wenn ein Messwert kleiner oder gleich dem Schwellwert ist?ando hat geschrieben:
Ich nehm meinen Helligkeitswert- Wenn der über dem Schwellwert ist, addiere ich zu einer Variable x "1" dazu.
Dann mache ich einen Delay, von zb 5000ms und prüfe wieder.
Das ganze dann 6 mal hintereinander.
Wenn x = 6 , dann schaltet mein Ausgang. ( digital High)
Wenn nicht, (digital LoW)
Sollte gehn, oder?
Die Variable x muss doch auch irgendwie wieder kleiner werden können, oder?
Das addieren von Variablen hat xexplox schon erklärt, subtrahieren geht genauso: x = x - 1 oder abgekürzt x--
Viel Spaß beim frickeln