Calculo angular

Hola surbyte..
Cierto que me equivoqué en la operacion.. aunque creo que el concepto lo entendiste..
El codigo que tengo es este:

float rumboGrados = (rumboRadianes * 180/M_PI);
    float declinacionmag = (-4.86 + (26.0 / 60.0)) / (180 / M_PI); // -4.86 LPA
    float rumbofinal = rumboGrados += declinacionmag;
    Serial.print(" Rumbo:     ");  
    Serial.print(rumbofinal);
    int estadoBoton = digitalRead(pinBoton);
    if (estadoBoton == HIGH){
      guardado = rumbofinal;
    }
    float desvio = rumbofinal - guardado;
    if(desvio < 180) desvio += 360;
    if(desvio > 180) desvio -= 360;
    Serial.print(" Error: ");
    Serial.println(desvio);

primero obtengo "rumboGrados" de radianes
luego lo corrijo por la "declinacionmag" en mi zona y lo llamo "rumbofinal" presentandolo..
y en el "if" compruebo si el boton esta pulsado para almacenar "guardado"="rumbofinal"
a continuacion creo "desvio" de la diferencia entre "rumbofinal"-"guardado"
y a partir de ahí hago las operaciones de caculo que dije y aparentemente sale todo bien
Probaré con tus datos aunque a estas horas tengo la neurona hecha polvo..
Saludos y muchas gracias...