Error "nan"

Estoy realizando un proyecto en el que necesito utilizar funciones trigonométricas como coseno, seno, arco seno, arco coseno y arco tangente. He descargado e instalado la librería math.h correctamente, pero a la hora de utilizar las funciones acos() y asin() me aparece en el Monitor Serie el error “nan”, cuando las funciones cos(), sin(), tan() y atan(), funcionan perfectamente.

Este es el código:

#include <math.h>

int a=107,b=99;
double A=0,B=0,C=0,D=0,X=0;

void intCoor (int x, int y){
  X = sqrt(pow(x,2)+pow(y,2));
  D = atan(y/x)*(360/(2*PI));
  A = tan(a)*(360/(2*PI));
  B = asin(a)*(360/(2*PI));
  C = acos(a)*(360/(2*PI));
}

void setup() {
  intCoor(1,2);
  Serial.begin(9600);
  Serial.println(X);
  Serial.println(A);
  Serial.println(B);
  Serial.println(C);
  Serial.println(D);
}

void loop() {
}

y esto el Monitor Serie:

2.24
10.77
nan
nan
63.43

Cabe aclarar que los resultados de las funciones trigonométricas se dan en radianes, por eso he añadido “(360/(2PI))”, para que los resultados los muestre en grados.

Hola.

No tiene nada que ver con Arduino. NaN, Not a Number.

Acos y Asin no se puede hacer para valores superiores a 1. (en tu caso 107)

Si pruebas por ejemplo en la calculadora de windows te sale "entrada no valida"

Cierto, que torpeza...

Es que me he empezado a liar por que necesito que los ángulos queden en grados y no en radianes.

Hay alguna forma de cambiar esto en la librería math.h?

del mismo modo que se hace en matemáticas, conviertes un número sabiendo que 180 grados es Pi radianes y por regla de 3 sacas lo que necesites para uno u otro lado pero todas las funciones trigonometricas de Math trabajan con radianes.

Algo mas... Math no se descarga, esta integrada al IDE. Ten cuidado si bajaste algo y en ese caso dinos de donde lo has hecho?

No he encontrado la pagina de donde lo descargué... Lo eliminaré de la librería y ya.

Gracias por la ayuda.

Arduino math.h

Toda la documentación (en inglés) esta aquí