Citazione:
Originalmente inviato da Smsteves Codice: Rxpulse = pulseIn(8, HIGH);
//Rxpulse = (((Rxpulse-Antsx)/scala)*((Antdx-Antsx)/scala))+Antsx;
Rxpulse = Rxpulse - Antsx;
Rxpulse = Rxpulse / scala_RX;
Rxpulse = Rxpulse * scala_RX ;
Rxpulse = Rxpulse + Antsx;
Gaspulse = pulseIn(7, HIGH);
Gaspulse = Gaspulse - Neutral;
Gaspulse = Gaspulse / scala_GAS;
Gaspulse = Gaspulse * scala_GAS;
Gaspulse = Gaspulse + Neutral;
}
} |
Non uso spesso Arduino ed ancora meno le librerie precotte quindi non capisco una cosa del codice qui sopra, assumiamo che:
RxPulse = 1500
Antsx = 1000
scala_RX = 5
ed analizziamo il valore assunto da Rxpulse nei vari step:
Rxpulse = Rxpulse - Antsx; RxPulse = 1500 - 1000 = 500
Rxpulse = Rxpulse / scala_RX; RxPulse = 500 / 5 = 100
Rxpulse = Rxpulse * scala_RX ; RxPulse = 100 * 5 = 500
Rxpulse = Rxpulse + Antsx; RxPulse = 500 + 1000 = 1500
Dove sbaglio ?
Forse con queste operazioni si arrotondano i valori intermedi ? La soluzione mi pare contorta ma, ripeto, di Arduino conosco poco.