06/12/2000
La librería math.h en Arduino proporciona una amplia gama de funciones matemáticas que son esenciales para diversas aplicaciones, desde cálculos básicos hasta algoritmos más complejos. Esta tutorial exhaustiva te ayudará a comprender y utilizar eficazmente esta librería en tus proyectos.

Funciones Matemáticas Básicas en math.h
La librería math.h ofrece un conjunto robusto de funciones matemáticas, incluyendo las funciones trigonométricas, exponenciales, logarítmicas y otras operaciones útiles. A continuación, se detallan algunas de las funciones más comunes:
Funciones Trigonométricas
- acos(x) : Calcula el arco coseno de x (en radianes).
- asin(x) : Calcula el arco seno de x (en radianes).
- atan(x) : Calcula el arco tangente de x (en radianes).
- atan2(y, x) : Calcula el arco tangente de y/x , considerando el cuadrante.
- cos(x) : Calcula el coseno de x (en radianes).
- sin(x) : Calcula el seno de x (en radianes).
- tan(x) : Calcula la tangente de x (en radianes).
- cosh(x) : Calcula el coseno hiperbólico de x .
- sinh(x) : Calcula el seno hiperbólico de x .
- tanh(x) : Calcula la tangente hiperbólica de x .
Funciones Exponenciales y Logarítmicas
- exp(x) : Calcula el exponencial de x (e x ).
- log(x) : Calcula el logaritmo natural (base e) de x .
- log10(x) : Calcula el logaritmo en base 10 de x .
- pow(x, y) : Calcula x elevado a la potencia y .
- sqrt(x) : Calcula la raíz cuadrada de x .
- cbrt(x) : Calcula la raíz cúbica de x .
Funciones de Redondeo y Truncamiento
- ceil(x) : Redondea x hacia arriba al entero más cercano.
- floor(x) : Redondea x hacia abajo al entero más cercano.
- round(x) : Redondea x al entero más cercano (0.5 se redondea hacia arriba).
- lrint(x) : Redondea x al entero más cercano (con manejo de desbordamiento).
- lround(x) : Redondea x al entero más cercano (alejando de cero).
Funciones de Valor Absoluto y Comparación
- fabs(x) : Calcula el valor absoluto de x .
- fmax(x, y) : Devuelve el mayor de x e y .
- fmin(x, y) : Devuelve el menor de x e y .
- fmod(x, y) : Calcula el resto de la división de x entre y .
Otras Funciones Útiles
- copysign(x, y) : Devuelve x con el signo de y .
- fdim(x, y) : Devuelve max(x - y, 0).
- fma(x, y, z) : Realiza la operación (x y) + z con mayor precisión.
- hypot(x, y) : Calcula la hipotenusa de un triángulo rectángulo con catetos x e y .
- frexp(x, &exp) : Separa un número de punto flotante en una fracción normalizada y una potencia de
- ldexp(x, exp) : Multiplica un número de punto flotante por una potencia de
- modf(x, &iptr) : Separa un número de punto flotante en partes enteras y fraccionarias.
- isfinite(x) : Verifica si x es un número finito.
- isinf(x) : Verifica si x es infinito.
- isnan(x) : Verifica si x es NaN (Not a Number).
- signbit(x) : Verifica si el bit de signo de x está establecido.
Ejemplos de Uso de la Librería math.h en Arduino
A continuación, se presentan algunos ejemplos que ilustran el uso de algunas funciones de la librería math.h en Arduino:
Ejemplo 1: Cálculo de la Hipotenusa
Este ejemplo calcula la hipotenusa de un triángulo rectángulo utilizando la función hypot() :
#include <math.h>void setup() { Serial.begin(9600);}void loop() { double cateto1 = 0; double cateto2 = 0; double hipotenusa = hypot(cateto1, cateto2); Serial.print("La hipotenusa es: "); Serial.println(hipotenusa); delay(1000);}Ejemplo 2: Cálculo de la Potencia
Este ejemplo calcula 2 elevado a la potencia 3 utilizando la función pow() :
#include <math.h>void setup() { Serial.begin(9600);}void loop() { double base = 0; double exponente = 0; double resultado = pow(base, exponente); Serial.print("El resultado es: "); Serial.println(resultado); delay(1000);}Tabla Comparativa de Funciones
| Función | Descripción |
|---|---|
acos() | Arco coseno |
asin() | Arco seno |
atan() | Arco tangente |
atan2() | Arco tangente con dos argumentos |
cos() | Coseno |
sin() | Seno |
tan() | Tangente |
exp() | Exponencial |
log() | Logaritmo natural |
log10() | Logaritmo base 10 |
pow() | Potencia |
sqrt() | Raíz cuadrada |
ceil() | Redondeo hacia arriba |
floor() | Redondeo hacia abajo |
round() | Redondeo al entero más cercano |
fabs() | Valor absoluto |
Consultas Habituales sobre math.h en Arduino
A continuación, se responden algunas de las consultas más frecuentes sobre la librería math.h en Arduino:

- ¿Necesito incluir alguna librería para usar las funciones matemáticas? Sí, debes incluir la librería <math.h> al principio de tu código.
- ¿Qué tipo de datos maneja la librería math.h? Principalmente maneja datos de tipo
double, aunque algunas funciones pueden aceptar y devolver otros tipos comofloatolong. - ¿Qué hacer si obtengo un error de compilación? Verifica que hayas incluido correctamente la librería <math.h> y que la sintaxis de las funciones sea correcta.
- ¿Existen limitaciones en el uso de estas funciones? Sí, existen limitaciones como el rango de valores válidos para ciertas funciones, o la posible pérdida de precisión en cálculos complejos.
Conclusión
La librería math.h es una herramienta fundamental para cualquier desarrollador de Arduino que necesite realizar cálculos matemáticos en sus proyectos. Dominar sus funciones te permitirá crear proyectos más sofisticados y precisos. Recuerda consultar la documentación completa para una comprensión más profunda de cada función y sus posibles limitaciones.
Si quieres conocer otros artículos parecidos a Librería math.h en arduino puedes visitar la categoría Libros y Librerías.
