(deleted)
ma qualcosa del genere (pseudocodice):
tolleranza=0,1 (0,1=10%, 0,2=20%)
...
if((abs(a-b)/max(a,b))>tolleranza)
then
<tuo codice>
no?
(deleted)
Nessuno ti vieta di NON dichiarate tolleranza e scrivere direttamente un valore costante esempio 0.1
Si, sono due funzioni. ANZI sono due macro definite nel core di Arduino (file Arduino.h)
Occhio che quel calcolo fatto così è fra numeri interi e quindi il risultato è un intero.
Bisogna forzare il calcolo con le virgole.
abs(x)= da il valore assoluto (senza segno), nel tuo caso il valore assoluto della differenza tra le due misurazioni
max(x,y)=da il valore maggiore tra due numeri
esempio=
lettura a=7
lettura b=10
(abs(7-10)/max(7,10))>0,1
(abs(-3)/10)>0,1
(3/10)>0,1
0,3>0,1 -> maggiore della tolelranza impostata
... be lascio a te fare le conversioni tra interi e float ecc... se no che diverimento c'è?
(deleted)
ingegnere ? ![]()
divido lo scarto (differenza) assoluta tra due numeri per il numero maggiore. uso la differenza assoluta per avere l'invarianza del riusultato rispetto all'ordine dei due valori .
mi da la percentuale di differenza tra il numero maggiore e il numero minore.
Non era questo che ti serviva?
Axel7997:
ah okay tutto chiaro..però mi sfugge la logica o.O con quale criterio utilizzi quel procedimento? Cioè trovando il valore diabs(a-b)/max(a, b)cosa ottengo? che rappresenta quel numero?
Un rapporto tra 2 quantità indipendente da quale è più grande ![]()
Forse a te serve anche sapere quale dei due è più grande? Se si, allora:
if( abs(a-b)/long(max(a,b)) > 0.1)
{ // c'e' differenza
if(a>b)
else
}
(deleted)
(deleted)
figurati. basta che non mi parliate di hardware ... ![]()
che poi a furia di frequentare tutta la brutta gente (hardwaristi) di questo forum qualcosa ho imparato pure io ...
brunialti:
figurati. basta che non mi parliate di hardware ...
che poi a furia di frequentare tutta la brutta gente (hardwaristi) di questo forum qualcosa ho imparato pure io ...
Già.... sti "spelafili" ![]()
![]()
bella
(deleted)
brunialti:
bella
Ho fatto l'ITIS, gli elettronici/elettrotecnici li chiamavamo "spelafili" e loro ci chiamavano "pigiatasti" ![]()
ooops, sono un pò OT ![]()