16-02-2016, 10:22
Guarda che se fai così, nel senso che riporti a valori compresi tra 0 e 360 PRIMA di fare la sottrazione, avrai sempre qualche problema attorno allo zero.
Basta che pensi a cosa succede se la rotta impostata è 10 e l'angolo bussola è 355. Invece di prendere la via più corta, cioè di andare verso 360 e superarlo, i comandi al timone faranno fare alla barca un giro di 345 gradi.
Non puoi comandare i relè semplicemente con l'istruzione
if (rotta < angle).
Devi anche controllare che la differenza tra i due valori non sia maggiore di 180 in valore assoluto e, nel caso, invertire i comandi di manovra.
Comunque, non siamo in sito di programmazione o di analisi numerica quindi interrompo qui.
Daniele
Basta che pensi a cosa succede se la rotta impostata è 10 e l'angolo bussola è 355. Invece di prendere la via più corta, cioè di andare verso 360 e superarlo, i comandi al timone faranno fare alla barca un giro di 345 gradi.
Non puoi comandare i relè semplicemente con l'istruzione
if (rotta < angle).
Devi anche controllare che la differenza tra i due valori non sia maggiore di 180 in valore assoluto e, nel caso, invertire i comandi di manovra.
Comunque, non siamo in sito di programmazione o di analisi numerica quindi interrompo qui.
Daniele
