0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实例讲解单片机模拟量采集: 从硬件到程序, 从滤波到实际值转换

广东微电科技有限公司 2021-11-25 14:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单片机系统里对模拟量的处理要比数字量稍显复杂,但是只要掌握了使用技巧,使用起来也很简单,很多朋友一开始比较纠结于单片机的底层语言,非要先弄个明白才罢休,其实大可不必,重要的是我们要先学会怎么应用。

现以铅酸电池电压检测及充电电流检测为例讲解模拟量的硬件和程序的设计。

如图1为28节铅酸电池的电压检测电路,1--14节组成电池组1,15--28节组成电池组2;第1节正极为BAT+,14与15节之间为BATM,第28节负极为BAT-。输入端的8个二极管的作用是钳位作用;电路计算如图所示。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如图2为铅酸电池的充电电流检测电路,TA1为工频电流互感器,输入的4个二极管为整流二极管,电流流过R37(510Ω)形成压差△V。电路计算如图所示。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如图3为单片机STM32F103CBT6,图1和图2的模拟信号输入至单片机的PA5、PA6、PA7。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

由于代码较多,为便于浏览,我就把其中一部分以截图的形式展示,敬请谅解。

如图4为单片机adc.c文件的底层配置,把PA5、PA6、PA7端口配置成模拟输入模式。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如图5对以上三个模拟量进行模数转换并缓存入数组ADC_ConvertedValue[3],得到的AD值的范围是0~4096。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如图6把以上两个配置函数整合在一起,定义成模拟量的初始化函数void ADC1_Init(void)。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如图7在adc.h文件里声明函数void ADC1_Init(void),另外几个函数也在adc的c文件里定义的,后面附上源程序(非截图)。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如图8在main()主函数里调用ADC1_Init()初始化函数(要去掉void),初始化函数一定要放在while(1)的前面,表示在进入while(1)无限循环前只执行一次。Analog_Processing()为模拟量处理函数,要放在while(1)无限循环里面(该函数在下面讲)。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

以下为模拟量在main.c文件里的定义。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

下面三个函数的定义都在adc.c文件里面定义的。

以下代码为模拟量处理函数:①对数组ADC_ConvertedValue[3]缓存值进行滤波处理;②对滤波后的AD值转换为实际值。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

以下代码为滤波函数,滤波函数有很多,采用合适的才是最实用的(该函数滤波后的值是连续变化的,有些滤波函数滤波后的值是跳变的)。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

使用方法如下:NewData表示最新采用的模拟量;OldData表示滤波后的模拟量。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

为便于逻辑计算、控制及显示,以下代码是把AD值转换为实际值,

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

使用方法如下:Adc_Value表示要转换的模拟量;Pre_Adc_Min表示模拟量AD值的最小值;Pre_Adc_Max表示模拟量AD值的最大值;Pre_Act_Min表示转换后实际值的最小值;Pre_Act_Max表示转换后实际值的最大值;(以下最大实际值220表示22.0A,是因为数码管显示需要小数表示)。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

要点总结:

1)模拟量的采样电路,我多采用运放的差分放大电路,原因是被测电压可以和运放不用共地,且可有效抑制共模噪声,可达到较高的精确线性测量,比如以上电池组的被测电压的误差与实际相差在0.3V左右;

2)电池组输入至运放的8个1M的电阻是两个为一组的,且功率至少1/4W以上,因为在高压下的电阻容易老化,为保险起见,通常一个电阻的最大压差在100V以下为宜;

3)电池组分为两组检测,一是为了降低元件所承受的电压,二是为了监视两组电池电压之间是否平衡,达到保护电池目的。

4)函数应功能模块化,且具备通用性质,便于移植和调用,对于很多朋友应先学会如何使用,底层代码只要会配置就完全足够了。

当然,以上提供的设计是通常的做法,能满足大多数的常规应用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子罗盘
    +关注

    关注

    1

    文章

    125

    浏览量

    24363
  • 倾角传感器
    +关注

    关注

    6

    文章

    380

    浏览量

    26415
  • 姿态解算
    +关注

    关注

    0

    文章

    50

    浏览量

    8705
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探秘TPS08U高精度模拟量采集模块:设计与应用全解析

    探秘TPS08U高精度模拟量采集模块:设计与应用全解析 在电子工程师的日常工作中,高精度模拟量采集模块是不可或缺的工具。今天,我们就来深入了解一下 TPS08U 高精度
    的头像 发表于 04-28 15:45 140次阅读

    如何在EtherCAT站上增加模拟量输入AI变量

    要在EtherCAT站增加模拟量输入AI变量,首先需更新站设备程序,定义新的AI变量并初始化。
    的头像 发表于 03-11 16:30 292次阅读
    如何在EtherCAT<b class='flag-5'>从</b>站上增加<b class='flag-5'>模拟量</b>输入AI变量

    深入解析ADC:模拟数字转换

    将系统性地讲解ADC的工作原理、关键参数、常见类型及实际应用技巧,帮助工程师全面掌握其设计与选型方法。 一、概述 ADC,模拟数字转换器(
    的头像 发表于 02-04 18:54 414次阅读
    深入解析ADC:<b class='flag-5'>模拟</b><b class='flag-5'>到</b>数字<b class='flag-5'>转换</b>器

    单片机多路数据采集系统的设计

    及原理 传感器装置将按照设定的方式传递模拟电量。模拟电量的生成方式较为复杂,可以简单的按照常规电量转化的方式加以处置,也可以按照非物理的应用特征进行设计,使单片机的多路数据
    发表于 01-07 06:44

    单片机系统设计方法

    对生产现场有关的信号进行检测才能判断生产过程是否正常,是否符合控制要求,才能充分发挥计算机的特点。本文对单片机系统的实际要求做了以下介绍。 系统设计 1.单片机硬件系统是由
    发表于 01-06 06:23

    智能家居场景下高精度模拟量采集模块的选型与应用方案

    高精度模拟量采集模块是智能家居系统的核心感知单元,负责将温湿度、光照、气体浓度、人体感应、能耗等模拟信号,转化为高保真数字信号,为家电联动、节能控制、安全防护提供精准数据支撑,让家居
    的头像 发表于 12-25 16:42 591次阅读

    模拟AI集成:图像采集卡的技术演进与未来三大趋势

    作为机器视觉系统连接物理视界与数字大脑的核心枢纽,图像采集卡始终以“信号翻译官”的身份,推动着视觉信息处理技术的迭代升级。从早期简单的模拟信号转换如今支持超高清
    的头像 发表于 12-15 16:30 1210次阅读
    <b class='flag-5'>从</b><b class='flag-5'>模拟</b><b class='flag-5'>到</b>AI集成:图像<b class='flag-5'>采集</b>卡的技术演进与未来三大趋势

    代码执行看单片机内存的分配

    (读写数据存储区)和ZI-data(零初始化数据区)。在MDK编译器下可以观察在代码中这4个,如下图1所示: 其中code和RO-data存储在flash中,所以两者之和为单片机
    发表于 12-02 07:58

    工业人必看:一主一WIFI模拟量双向对传模块选型攻略

    WIFI 模拟量双向对传模块是物联网与工业自动化领域中,专用于模拟量信号无线双向传输的智能硬件,也是衔接前端传感器、后端执行器与控制平台的关键设备,能破解传统有线传输布线难、维护成本高的痛点。 一
    的头像 发表于 12-01 17:31 858次阅读

    提升性价比之选:CAN接口模拟量采集模块的三大核心功能价值

    用于 “捕捉这些模拟量信号,并将其转换为可传输、可处理的数字信号,再通过 CAN 总线实现数据交互” 的核心设备。相当于连接 “物理世界模拟信号” 与 “工业控制系统数字网络” 的桥梁,是工业场景中数据
    的头像 发表于 10-11 15:30 582次阅读

    CAN接口模拟量采集模块能做什么?工业/汽车/能源等四大领域实例拆解

    CAN 接口模拟量采集模块凭借高精度采集、抗干扰传输、工业级稳定的核心优势,已从传统工业场景渗透汽车、能源、农业、医疗等多个领域。其本质是通过模拟
    的头像 发表于 10-11 15:29 936次阅读

    集中式ZDM-E0800V模拟量采集模块(上) — 基础应用

    采集。产品介绍ZDM-E0800V是致远电子推出的一款集中式远程控制IO模块,挂接在EtherCAT站耦合器ZPT8080上使用。模块采用8通道电压模拟量输入,
    的头像 发表于 10-09 11:32 735次阅读
    集中式ZDM-E0800V<b class='flag-5'>模拟量</b><b class='flag-5'>采集</b>模块(上) — 基础应用

    嵌入式入门进阶,怎么学?

    、位操作(直接决定代码效率),通过 串口通信程序 练手(如单片机与 PC 数据互传)。 硬件基础懂数电模电(逻辑门、放大电路)、常用元件(电阻 / 电容 / 三极管),能看懂 51 单片机
    发表于 09-02 09:44

    单片机怎么烧程序

    骤,才能让单片机发挥作用。 烧程序前的准备工作 单片机程序前,需要做好硬件和软件两方面的准备。硬件
    的头像 发表于 07-23 11:47 2235次阅读

    DSP入门精通全集

    这是一本循序渐进介绍DSP的书籍,DSP的入门知识介绍DPS的硬件,接口,应用,DSP的ADC/DAC数字
    发表于 07-12 14:36