你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

利用stm32f030f4来对红外传感器传出的电压进行ADC转换

[复制链接]
朱彭彭微博 提问时间:2016-8-2 15:35 /
问下大家,转换出来的数据对应的电压是多少,如何转换。谢谢
QQ截图20160802152930.png QQ截图20160802152945.png

红外传感器距离不一样,所对应的电压不一样,

以下是红外静止状态,串口传出的数据17 16 16 16 19 19 18 17 16 16 19 15 17 16 16 15 1A 15 18 16 16 15 15 15 1A 16 17 16 15 16 18 16 17 15 16 15

以下是红外工作时的数据,红外传感器传出的电压为2.3V上下      80 99 A7 5F 41 5F 67 4B 3E 37 33 24 20 10 1F 10 0B C1 45 4A 44 38 2F 38 1C 24 1B 23 07 5D 1C 10 F5 10 09 30

麻烦会的朋友分析下,什么原因,怎么才能转换对应的电压值



收藏 2 评论12 发布时间:2016-8-2 15:35

举报

12个回答
zhao.zhao 回答时间:2016-8-5 15:58:13
1、我感觉红外线在静态时,测量的值也有点变动,说明ADC部分的输入电压还是有点抖动,也就是红外线器件的输出不是很稳定,应该滤波处理一下,利用快速的ADC是可以实现的。
2、串口好像只输出了12bit中的低8位,而最关键的高4位数据还是没发送出来。
3、其余按上述网友的公式计算,实际应用时可能要按线性关系,矫正一下。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 赞一个!

查看全部评分

johnson_gong 回答时间:2016-8-5 11:14:46
野火_firege 发表于 2016-8-5 08:59
1、如果ADC的测量范围为  0~3.3V,精度为12位,那3.3V满量程对应的数字量也是最大的2^12,那数字量的最小精 ...

支持,就是这样的原理
乞丐工程师 回答时间:2016-8-5 08:47:18
乞丐工程师 回答时间:2016-8-5 08:48:33
AD值感觉小了点吧
df_flying 回答时间:2016-8-5 08:52:47
红外传感器根据接收端距离的远近 其电压是变化的吧,你可以用示波器测一下,另 AD精度你设置是12位,但打印程序好像是只打出了8位,建议你修改成printf(“%d”,adc_data);打印试试adc_data得是uint16_t的。如果你想用红外测距,那么跟你的采样电压值有关,如果数据通信,那么用一个阈值作为高电平就可以了

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 很给力!

查看全部评分

野火_firege 回答时间:2016-8-5 08:59:07
1、如果ADC的测量范围为  0~3.3V,精度为12位,那3.3V满量程对应的数字量也是最大的2^12,那数字量的最小精度对应的模拟量为  3.3V / 2^12

2、当你读取到的数字量为 X 的时候,那实际测试到的 模拟量 Y = X * 3.3V / 2^12

3、希望对你有用

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 赞一个!

查看全部评分

625355677@qq.co 回答时间:2016-8-5 09:19:00
用printf函数进行数据格式转换就可以吧
jinzhifeng 回答时间:2016-8-5 09:24:15
首先看你硬件上面的参考电压Vref是多少,然后把ad获取的值乘以参考电压(st的开发板一般都是3.3V),然后再除以软件设置的ad的精度(12位精度就是2^12)这样就可以算出ad测的电压是多少了

printf(“adc1当前获取的电压值为:%f \r\n”,(3.3 * ADC_GetConversionValue(ADC1) )/4096);
代码随便写的 没有调试过 大概是这样

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 很给力!

查看全部评分

Dylan疾风闪电 回答时间:2016-8-5 09:38:48
将读取的ADC->DR值 进行算术运算,然后printf

v = Vdda*(ADCx->DR)/0xFFF;  以十二位为例
xu0801hua 回答时间:2016-8-5 14:09:35
还是不错的..............我一般也采用这样
落月枫情 回答时间:2016-9-5 08:53:23
zhao.zhao 发表于 2016-8-5 15:58
1、我感觉红外线在静态时,测量的值也有点变动,说明ADC部分的输入电压还是有点抖动,也就是红外线器件的输 ...

请教个问题,校正怎么搞
zhao.zhao 回答时间:2016-10-2 11:25:48
取个均值,按实际量出的电压,将ADC值与其对应起来即可

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版