OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4855|回复: 5

新人想问问在ADC实验中测量交流信号的电压值应该怎么改程序啊?

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-1-9
在线时间
9 小时
发表于 2020-7-7 17:28:09 | 显示全部楼层 |阅读模式
10金钱
u16 Get_Adc_Average(u8 ch,u8 times)
{
        u32 temp_val=0;
        u8 t;
        for(t=0;t<times;t++)
        {
                temp_val+=Get_Adc(ch);
                delay_ms(5);
        }
        return temp_val/times;
}

在返回temp_val的值的时候应该修改呢?

把 temp_val+=Get_Adc(ch); 改成temp_val=temp_val+Get_Adc(ch)*Get_Adc(ch);
把 return temp_val/times; 改成return sqrt(temp_val);
这样可以吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10569
金钱
10569
注册时间
2017-2-18
在线时间
1913 小时
发表于 2020-7-7 21:22:41 | 显示全部楼层
不能测交流
你想办法转换成直流吧
STM32 内部ADC测压范围0-3.6V
原子板只能测0-3.3V
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4894
金钱
4894
注册时间
2015-1-10
在线时间
612 小时
发表于 2020-7-8 08:27:51 | 显示全部楼层
你把外部信号转成0~3.3V测,交流信号测出来是离散的,采样率最高信号还原度越高,后续算幅值也会更准确
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-7-8 09:01:08 | 显示全部楼层
你要测什么值,最多只能测试顺态的值,平均值有效值峰峰值都得用相关公式去计算
回复

使用道具 举报

0

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2020-10-17
在线时间
39 小时
发表于 2021-4-9 13:49:51 | 显示全部楼层
请问你这个问题解决了吗?可以分享一下这个代码吗,谢谢。1085774102@qq.com
回复

使用道具 举报

0

主题

48

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1161
金钱
1161
注册时间
2013-8-23
在线时间
165 小时
发表于 2021-4-9 14:05:55 | 显示全部楼层
交流电压是随时变化的, 你要测有效值可以用专用芯片
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 18:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表