En ocasiones es necesario calcular la función seno en un microcontrolador, pero muchos microcontroladores pequeños no tienen espacio para las librerías matemáticas necesarias.
En otras ocasiones se necesita calcular con rapidez la función seno y se puede permitir un pequeño error.
Un ejemplo de aplicación sería calcular las coordenadas x, y para dibujar un círculo en un plotter. Otra aplicación práctica podría ser calcular la posición x,y de un brazo giratorio a partir de su ángulo de giro.
La siguiente función devuelve el resultado de sen(x) para x dado en radianes en el intervalo (-pi/2 hasta pi/2) con un error máximo de 0.00012:
x2 = x * x
sen = x*(0.9998 - x2*(0.16574 - x2*0.007514))
Hay que calcular 4 multiplicaciones y dos restas en coma flotante.
También es necesario utilizar un número en coma flotante auxiliar (x2) para reducir cálculos y ganar en velocidad.
Los cálculos también se pueden realizar de forma desarrollada:
x2 = x * x
sen = 0.007514
sen = sen * x2
sen = sen - 0.16574
sen = sen * x2
sen = sen + 0.9998
sen = sen * x
Los cálculos se pueden realizar para mayor rapidez con números en coma flotante de 24 bits (8 bits de exponente y 16 bit de mantisa)
El error máximo es de 0.00012 para todo el intervalo.
Saludos.