一、正弦数组用途
单片机pwm输出标准正弦波,提供给驱动芯片电压等。
二、使用步骤
1.代码
#include <stdio.h>
#include<math.h>
int main()
{
double pi = acos(-1.0);//获取π
double y;//弧度 math库中的sin函数用弧度做参数
double x;//double值
double z = 1.40625;//每一步度数 360/256 生成采样个数256
int res;//整形结果
for(int i =1;i<=256;i++)
{
y = (z*i *1.0) *pi/180; //弧度制转化
x = sin(y)*70;//70是设置的幅值,根据需求来,最大设置到pwm的arr
res = (int)(x+0.5);//四舍五入
if (res<0)//绝对值,根据需求加
{
res = 0-res;
}
printf(" %d, ",res);
}
system("pause");
return 0;
}
2.结果
结果如下(示例):
2, 3, 5, 7, 9, 10, 12, 14, 15, 17, 19, 20, 22, 24, 25, 27, 28, 30, 31, 33, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 63, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 69, 69, 69, 69, 68, 68, 67, 67, 66, 66, 65, 65, 64, 63, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 49, 48, 47, 46, 44, 43, 42, 40, 39, 37, 36, 35, 33, 31, 30, 28, 27, 25, 24, 22, 20, 19, 17, 15, 14, 12, 10, 9, 7, 5, 3, 2, 0, 1, 2, 4, 6, 8, 9, 11, 13, 14, 16, 18, 19, 21, 23, 24, 26, 27, 29, 30, 32, 34, 35, 36, 38, 39, 41, 42, 43, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 62, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 68, 68, 69,
69, 69, 69, 69, 69, 69, 69, 69, 68, 68, 68, 68, 67, 67, 66, 66, 65, 65, 64, 64, 63, 62, 62, 61, 60, 59, 58, 57, 56, 55, 54,
53, 52, 51, 50, 48, 47, 46, 45, 43, 42, 41, 39, 38, 36, 35, 34, 32, 30, 29, 27, 26, 24, 23, 21, 19, 18, 16, 14, 13, 11, 9,
8, 6, 4, 2, 1, 0, 请按任意键继续. . .
总结
应用场景:
双极型步进电机微步控制等