Lo he pegado aquí tb porque pese a estar en un proyecto, lo entiendo más como cuestión de programación que de el propio proyecto en sí... disculpad...
Hola a todos !!
Problema !!!
Cuando uso funciones trigonométricas complejas (Seno, Coseno, etc..) que impliquen operaciones con estos operadores, me salen errores del orden de grados a veces...
Normalmente las almaceno como double o float... pero si hago las mismas operaciones con excel o calculadora el resultado en Arduino es distinto ...me salen errores...
Uso siempre angulos en Radianes...
Por ejemplo...
====== EN esta Operacion======
sinδ = sina * sinφ +cosa * cosφ * cosA * sinδ = 0.394 254
Take inverse sin to find δ . δ = 23.219 444 degrees
======Este Codigo me devuelve
float Float_AZ = 283.2710277;
float Float_ALT = 19.051011 ;
double cosAzm = cos (Float_AZ/Rad);
double Sin_DEC = sin (( sin (Float_ALT/Rad) * Sin_Lat ) + ( cos (Float_ALT/Rad) * Cos_Lat *
cosAzm ) ) ;
Serial.print ("Sin_DEC=");
Serial.println (Sin_DEC);
double Actual_DEC = ( asin ( Sin_DEC) )* Rad ; // Actual Declination in degrees
==============
Me devuelve
Sin_DEC=0.38 ========> en vez de 0.394
Sin_DEC degrees=22.39====> en vez de 23.219 (1 Grado de Error !!!!)
Esto en operaciones acumuladas me mete unos errores bastante grandes !!!
Por qué ocurre ???
Como Evitarlo ????