首页 » 家电维修 » 冰箱维修 » adc电压采集实验程序框图「adc电压采集实验报告」

adc电压采集实验程序框图「adc电压采集实验报告」

admin 2024-08-30 17:02:11 冰箱维修 0

扫一扫用手机浏览

大家好,今天小编关注到一个比较有意思的话题,就是关于adc电压采集实验程序框图的问题,于是小编就整理了3个相关介绍adc电压采集实验程序框图的解答,让我们一起看看吧。

adc如何采集负电压?

adc电压采集实验程序框图

ADC(模数转换器)一般只能采集正电压,如果需要采集负电压,可以采用以下两种方法:

一是使用一个负电压电源将负电压转换成正电压再进行采集;

二是使用一个差分放大器将负电压转换成正电压再进行采集。在差分放大器中,输入信号通过差动放大器放大后,可以得到一个相对于参考电平的差分电压信号,再由ADC进行采集和转换。这两种方法都能有效地采集负电压信号。

ADC采集电压?

ADC采集的是一个个离散时间点上的电压,可以是交流,也可以是直流。  如果采集交流电压,要注意全部波形的电压范围都必须落在ADC的输入电压范围之内,采样速度也必须远大于交流电压频率,否则无法工作。

单片机如何通过ADC模块采集模拟信号?

作为单片机开发的工程师都知道,ADC采集是非常常用,而且也是很基础的一个外设。常常被工程师用于采集模拟信号。

那么很多初学者一般怎么在使用ADC应用时,怎么编写代码呢?

我将以STM32F103RCT6单片机,作为本文参考芯片,此芯片有3个12位的ADC,我选择其中一个ADC,实现采集电池供电电压功能的过程。


第一步,配置对应的引脚, ADC功能属于IO端口的复用,所以需要选择对应的IO进行初始化(此处前提条件硬件设计端口分配正确)

adc电压采集实验程序框图

如上图所示,我们选用pc0引脚作为采集端口,先需要使能GPIOC的时钟,然后根据设计手册对GPIOC->CRL寄存器描述,对应PC0地址位置赋值为0,配置为模拟输入。如下图所示

adc电压采集实验程序框图

第二步,配置ADC初始化函数

STM32F103RCT6有3个ADC,可以选择其中的任何一个作为采集ADC,但通道是已经规定好了,不能更改。

adc电压采集实验程序框图

根据如上图的官方技术手册所示,PC0是ADC的第10个通道,所以在配置参数时候,我们选择ADC1,并将ADC1->SQR3寄存器设置为10通道。

如下图所示,首先需要对ADC的时钟进行使能,接着配置ADC控制寄存器,配置ADC通道,规则等,配置我已对每个寄存器配置赋值进行备注说明。

adc电压采集实验程序框图

第三步,ADC扫描函数,获取ADC采集的电压值。

电池电压采集,因为电池电压信号是一个变化较慢的模拟量,所以为了获得采集数据的稳定性,减少误差和误判,需要对1000次采集的数据求平均值。

再结合电路中匹配的分压电阻,200K+100K分压,所以计算部分如下图所示,最终计算出Bat_Vol的电压值,单位是mV。

adc电压采集实验程序框图


延伸说明

1 ,ADC与DMA结合使用采集数据,每次ADC转换完成的数据,直接转到DMA的设定的地址当中,单片机只需要对设定地址的变量进行操作,在ADC初始化当中需要对ADC1->CR1,ADC1->CR2两个寄存器进行操作,如下图所示:

adc电压采集实验程序框图

同时还需要配置对应的DMA初始化函数和ADC处理函数,此函数不再这里表述。大家可以查阅技术资料,试着去完成剩余的代码。

2,外挂ADC芯片,有些项目中,为了能够实现高精度的模拟信号采集,单片机会使用外部的ADC芯片。如ADS1294等芯片。此芯片为24位高精度ADC芯片,采用spi通信接口,实现过程比单片机ADC芯片稍显复杂。

总结

在单片机系统当中,ADC的使用非常普遍,也非常重要,各种模拟量的采集离不开它,所以作为从事单片机开发的工程师,是必须掌握这些知识点。




朋友们好,我是电子及工控技术,我来回答这个问题。众所周知单片机是一种超大规模的集成电路,它只能“读懂”并处理数字信号,对于连续量的模拟信号则无能为力。单片机通过ADC(模数转换)芯片实现对模拟量的处理是单片机处理模拟信号的一种最常见的办法。下面和朋友们聊一聊单片机是如何通过ADC(模数转换)模块去采集模拟信号的。

adc电压采集实验程序框图

无ADC采集模块的单片机对模拟信号的处理

早期的单片机内部没有带ADC(模数转换)模块,比如我们以前常用的AT89C51/S51系列的8位单片机,在使用这种单片机进行模拟信号的处理时通常要在单片机外部增设ADC(模数转换)芯片比如常用的有ADC0809、ADC0832和PCF8591等芯片,它的主要作用是能够把连续的模拟量变化为离散的数字信号,然后再把这个数字信号通过排线送入到单片机中进行读取处理。这种处理的方法是通过软件与硬件相结合的方法实现了对模拟信号的采集处理的。

adc电压采集实验程序框图

1、第一步是对模拟量的采样

我们先说说ADC(模数转换)芯片转换的过程,对于连续的模拟量比如温度、压力、速度等要通过一定的感应器先把这些物理量转换成电压信号,这个电压信号就是模拟信号,它通入到ADC芯片的输入端口时,ADC芯片内部的电路首先要做的事情就是把这个连续变化的模拟信号转变为离散的模拟量,有点类似把一根曲线在一定间隔的时间内把它分切成一段一段的,如下图所示的那样。这个过程就是对模拟量进行“采样”的过程。

adc电压采集实验程序框图

2、第二步是对离散过后的模拟量进行“取样”

ADC(模数转换)电路中的取样就是对采集到的离散的模拟量进行取样保持,以便能为后续的电路“捕捉”到所采集的信号,否则的话由于速度过快不能够完全取出所采样的信号就会造成采样信号的缺失,造成转换误差过大。一般ADC中都有取样保持电路用来完成这项“任务”。

adc电压采集实验程序框图

3、第三步是对取样的电压量进行量化与编码

为了说明量化与编码的方法我们来举个例子,例如把0V到1V的模拟电压分成8份,每一份只占其中的八分之一,这样就把1V的电压量进行了量化,然后把每一份的电压值在用一个二进制的代码表示出来。这样在ADC(模数转换)芯片中大体经过这几个步骤就完成了从模拟量到数字量的转换任务。

adc电压采集实验程序框图

4、软件的处理

以上是用硬件来完成从模拟量到数字量的转换,那么剩下的任务就应该交给单片机里的软件来完成了。首先要把单片机与ADC芯片设置好接口电路,为它们进行数据流通做好准备,进入单片机内部后就开始有软件接手处理发送来的数据了。根据ADC不同的特性有的采用并口线,有的采用串口线,比如PCF8591模数转换芯片就采用了IIC方式与单片机进行“交流”的。

adc电压采集实验程序框图

在软件上的程序除了主程序外还要有对送入单片机里的数据进行转换处理的子程序,显示数值的子程序等,如果用IIC进行与单片机“交流”的话还需要IIC通信协议程序。所以用内部不带ADC模块的单片实现单片机对模拟信号的处理比较繁琐一些。

有ADC采集模块的单片机对模拟信号的处理

随着技术的发展,现在很多兼容C51单片机的芯片内部都设置了ADC转换模块,对于一些16位和32位高端单片机都设置了不止一路ADC模块,比如STM32系列的单片机,不仅有ADC模块还有DCA模块等用起来十分方便。用这类单片机处理模拟量只要对GPIO口进行配置和调用相应的ADC库函数就可以了,使用起来比较方便。

adc电压采集实验程序框图

以上就是我对这个问题的回答,欢迎朋友们参与讨论,敬请关注电子及工控技术,感谢点赞。

到此,以上就是小编对于adc电压采集实验程序框图的问题就介绍到这了,希望介绍关于adc电压采集实验程序框图的3点解答对大家有用。

相关文章

热电偶图片「什么是热电偶图片」

大家好,今天小编关注到一个比较有意思的话题,就是关于热电偶图片的问题,于是小编就整理了2个相关介绍热电偶图片的解答,让我们一起看看...

冰箱维修 2024-08-30 阅读2 评论0

小功率mos管型号大全「mos管型号对照表」

大家好,今天小编关注到一个比较有意思的话题,就是关于小功率mos管型号大全的问题,于是小编就整理了4个相关介绍小功率mos管型号大...

冰箱维修 2024-08-30 阅读3 评论0