Visualizza messaggio singolo
Vecchio 23 settembre 11, 22:48   #6 (permalink)  Top
romoloman
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
Citazione:
Originalmente inviato da marcosinatti Visualizza messaggio
Per evitare false commutazioni in maniera semplice e senza l'utilizzo di altre variabili, può bastare introdurre un pò di insteresi.
La commutazione avviene solo se dall'ultima volta c'è stato uno scostamento di almeno 2 punti.

LoopTemperatura:
gosub LetturaTemperatura
if Temperatura>TemperaturaOld+2 then
FlagSalita=1
TemperaturaOld=Temperatura
endif
if Temperatura<TemperaturaOld-2 then
FlagSalita=0
TemperaturaOld=Temperatura
endif
If FlagSalita=1 then
High Buzzer
else
Toggle Buzzer
Endif
Pause 300

Goto LoopTemperatura

Preferisco sempre non basarmi sull'steresi ma su letture ripetute....

LoopTemperatura:
gosub LetturaTemperatura
if Temperatura>TemperaturaOld then
if FlagSalita<5 then
FlagSalita=FlagSalita+1
endif
else
FlagSalita=0
endif
if Temperatura<TemperaturaOld then
if Flagdiscesa<5 then
FlagDiscesa=FlagDiscesa+1
endif
else
FlagDiscesa=0
endif
If FlagSalita=5 then
TemperaturaOld=Temperatura
FlagBuzzer=2
else if FlagDiscesa=5 then
FlagBuzzer=1
TemperaturaOld=Temperatura
else
FlagBuzzer=0
Endif
Pause 200
If FlagBuzzer=2 then
High Buzzer
else if FlagBuzzer=1 then
Toggle Buzzer
else
Low Buzzer
endif
Goto LoopTemperatura

Più complesso ma sicuramente rimbalza meno sulle temperature stabili...
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando