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

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

3天内不再提示

如何从其ADC通道读取模拟输入信号

454398 来源:网络整理 作者:网络整理 2019-12-05 16:59 次阅读

我们生活在一个模拟世界中,其中大多数物理变量都是模拟信号。但是,微控制器只能处理数字格式的可用数据。正是由于这个原因,模数转换(ADC)在与模拟环境交互的嵌入式系统中是如此重要。在本教程中,我们将讨论chipKIT UNO32板的ADC功能,并说明如何从其ADC通道读取模拟输入信号。

如何从其ADC通道读取模拟输入信号

模拟到数字转换

理论

许多嵌入式应用程序处理诸如运动,温度,压力,相对湿度,光强度和声音。微控制器无法直接处理这些实体,因为i)它们是非电信号,ii)它们是模拟量,这意味着与数字信号的离散值相比,它们在给定范围内具有一组连续的值。为了使微控制器能够处理这些数量,必须以某种方式将它们表示为数字信号。此过程的第一步是将物理信号转换为电信号,这需要使用换能器。

换能器是一种将物理信号转换为电信号的机电系统,反之亦然。换能器的最简单示例是光敏电阻或LDR,可用于测量环境光的强度。 LDR是一种特殊的电阻器,其电阻会随着落在其表面上的光强度而变化。 LDR的电阻随着光强度的升高而降低。下图显示了在两种不同强度的光照射下LDR的电阻的测量结果。

在较高的光强度下,LDR的电阻较低(1.31 K?)

当落在其上的光被阻挡时,LDR电阻会升高(6.30 K?)

与固定值电阻器串联的电阻可用于构建将光强度转换为电压的机制。稍后将对此进行更详细的讨论。换能器的另一个示例是电动机,它将电压转换为运动。

现在,物理信号已转换为电信号,但由于其模拟性质,尚未准备好进行计算机处理。因此,下一步需要模数转换(ADC)系统,该系统采用连续变化的电压输入并返回适合微控制器使用的二进制数字表示形式。

如今,许多微控制器都配备了模数转换系统。 chipKIT UNO32板上的PIC32MX320F128H微控制器具有一个内置ADC,具有16个ADC输入通道。在Uno32板上,只有12个可通过排针A0至A11进行访问。 ADC的分辨率为10位,这意味着对于给定范围的模拟信号,可以进行1024(2 10 )个离散二进制表示形式(0至1023)。 ADC的可接受范围通过参考电压(VREF)设置。 chipKIT UNO32板上PIC32MX320F128H微控制器的默认设置参考电压是其电源电压(Vcc = 3.3 V)。这也是可以在chipKIT UNO32板上的任何ADC通道上施加的模拟电压的最大值。假设,如果将ADC的范围设置为0-3.3V(VREF = 3.3 V),则ADC分辨率也可以用电压表示为3.3/1024? 3.2毫伏。这是片上模数(A/D)转换器可检测到的模拟输入电压的最小变化。因此,0到3.2 mV之间的任何值都将由十进制0表示,十进制1则介于3.2 mV和6.4 mV之间,十进制2代表6.4 mV和9.6 mV之间,…,最后是1023介于3.2968 V和3.3 V之间。可以看到,采用这种配置,模拟电压的数字表示形式中的最大误差可能为3.2 mV。这也称为量化误差。

有时,模拟输入电压的范围与3.3V相比过小,并且变化很小。例如,房间内的空气温度变化不大。在这种情况下,您可以提高A/D转换器的分辨率(从而减少量化误差)以更精确地跟踪温度。假设如果您知道温度感测传感器的输出电压不能超过1V,则将VREF设置为1V可以提高分辨率为1/1024? 1毫伏。现在,A/D转换器能够检测到输入信号中很小的变化。外部ADC参考电压可以通过其AREF引脚(在连接器J5上标记为A)提供给chipKIT UNO32板上的微控制器。可以施加到该引脚的最大电压为3.3V。

电路设置

在本教程中,一个2.2K电阻与LDR以构建分压网络,如下所示。通过Uno32板的ADC通道A0测量电阻两端的电压。当光线落在LDR上时,其电阻减小,因此2.2K电阻两端的电压升高。如果光线被阻止落到LDR上,则会发生相反的情况。因此,10位ADC输出与落在LDR上的光强度成正比。评估板已连接到PC,ADC输出将通过串行端口发送并显示在串行监视器窗口中。

传感模拟世界

面包板上的LDR电路设置

书写草图

ADC输出通过串行线路发送,必须在设置功能中初始化串行端口和波特率。 analogRead()函数用于从括号内指定的模拟引脚读取模拟输入信号。默认情况下,3.3V的电源电压用作A/D转换的参考电压,这意味着0到3.3伏之间的输入电压映射为0到1023之间的整数值。为了使用施加到A引脚的外部参考电压,请在草图中使用 analogReference(External)函数。这是完整的chipKIT草图,可读取A0 ADC通道上的输入值并将ADC输出打印到串行监视器。

/*

Tutorial 4: Analog to digital conversion

Description: Reads an analog signal input to A0 pin and send the

10-bit ADC output to PC to display on the serial monitor.

Board: chipKIT UNO32

*/

int ADC_OUTPUT;

void setup() {

Serial.begin(9600);

}

void loop() {

ADC_OUTPUT = analogRead(A0);

Serial.print(“LDR sensor output = ”);

Serial.println(ADC_OUTPUT, DEC);

delay(1000);

}

下载草图文件

输出

将以上草图上传到Uno32板上,然后从MPIDE打开串行终端窗口。 ADC样本(整数ADC输出)以1秒的间隔打印在窗口上。您可以观察这些数字如何随着LDR上光线的变化而变化。如果您将手指放在LDR上并阻挡掉落在LDR上的光,则ADC输出将突然下降。

chipKIT Uno32板通过串行将ADC输出发送到PC界面

责任编辑:wv

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

    关注

    98

    文章

    6430

    浏览量

    544055
收藏 人收藏

    评论

    相关推荐

    adc模拟信号处理技术

    在现代电子系统中,模拟信号与数字信号的转换是实现复杂功能和提高系统性能的关键。模数转换器(ADC)作为连接模拟世界与数字世界的桥梁,性能直
    的头像 发表于 10-31 11:05 163次阅读

    adc0809是几位转换器 adc0809工作原理简述

    ADC0809主要由以下几个部分组成: 8位模拟输入通道ADC0809有8个模拟输入通道,分
    的头像 发表于 10-21 09:32 440次阅读

    adc0809输入电压范围 adc0809和adc0808区别

    数和引脚配置上有所不同。 ADC0809输入电压范围 ADC0809是一款8位逐次逼近型ADC输入
    的头像 发表于 10-21 09:30 494次阅读

    如何模拟输入设备切换到数字输入设备

    电子发烧友网站提供《如何模拟输入设备切换到数字输入设备.pdf》资料免费下载
    发表于 09-26 10:41 0次下载
    如何<b class='flag-5'>从</b><b class='flag-5'>模拟</b><b class='flag-5'>输入</b>设备切换到数字<b class='flag-5'>输入</b>设备

    扩展电网应用中的模拟输入通道(使用16通道、16位、1MSPS双路同步采样ADC)

    电子发烧友网站提供《扩展电网应用中的模拟输入通道(使用16通道、16位、1MSPS双路同步采样ADC).pdf》资料免费下载
    发表于 09-21 10:05 0次下载
    扩展电网应用中的<b class='flag-5'>模拟</b><b class='flag-5'>输入通道</b>(使用16<b class='flag-5'>通道</b>、16位、1MSPS双路同步采样<b class='flag-5'>ADC</b>)

    简述ADC输入类型

    ADC(Analog-to-Digital Converter,模数转换器)是电子系统中不可或缺的关键组件,它负责将连续的模拟信号转换为离散的数字信号,以便于后续的数字处理、存储和传输。ADC
    的头像 发表于 09-06 16:18 556次阅读

    使用单通道ADC+模拟开关结构采样多路信号时,ADC采样率如何选择呢?

    现在有10路信号需要采样,每个通道信号带宽都是10K,采集电路准备使用模拟开关+单通道ADC
    发表于 08-15 07:02

    应用|16位8通道ADC - CAE1200用于电能质量监测,兼容AD7606

    奇历士CAE1200是16位分辨率8通道200Ksps同步采样ADC,目前已成功用于国内的电能质量监测设备。该设备由传感器采集电压、电流信号,经过运放放大,再给ADC转换后由DSP处理
    的头像 发表于 08-06 12:32 281次阅读
    应用|16位8<b class='flag-5'>通道</b><b class='flag-5'>ADC</b> - CAE1200用于电能质量监测,兼容AD7606

    ADS42B49具有模拟输入缓冲器的双通道、14位、250MSPS超低功耗ADC数据表

    电子发烧友网站提供《ADS42B49具有模拟输入缓冲器的双通道、14位、250MSPS超低功耗ADC数据表.pdf》资料免费下载
    发表于 07-17 09:32 0次下载
    ADS42B49具有<b class='flag-5'>模拟</b><b class='flag-5'>输入</b>缓冲器的双<b class='flag-5'>通道</b>、14位、250MSPS超低功耗<b class='flag-5'>ADC</b>数据表

    XMC7200 ADC触发器输入和触发通道输入有什么区别吗?

    我正在尝试编写一个用于 PWM 通道触发 ADC 通道转换的应用程序。 ADC trigger options in Device Co
    发表于 01-24 07:53

    adc0809怎么改通道

    的电源电压。通常,VCC引脚应连接到+5V的电源,而GND引脚应连接到地。 步骤2:模拟输入信号连接 将您想要转换的模拟输入
    的头像 发表于 01-08 11:04 1091次阅读

    请问PLC是如何读取模拟信号的?

    PLC读取模拟信号必须要有模拟输入模块,即常说的AI模块。
    的头像 发表于 01-02 09:35 758次阅读
    请问PLC是如何<b class='flag-5'>读取</b><b class='flag-5'>模拟</b>量<b class='flag-5'>信号</b>的?

    高速ADC模拟输入架构类型介绍

    )网络。 图1. 开关电容ADC 这种方法有两个缺点 输入阻抗随着时间和模式而变化; 第二是电荷注入会反射回ADC模拟输入端,可能导致滤
    发表于 12-18 07:42

    需要让AD7176-2读取4个模拟通道的数据,如何不影响ADC对0通道进行的AD转换?

    公司项目中的一块电路板上,需要让AD7176-2读取4个模拟通道的数据,由于其中0号通道上的输入存在较大的扰动,需要开启增强型50/60Hz
    发表于 12-18 07:26

    AD7606没供电的情况下,ADC模拟输入通道信号已经输入信号(±10V),会不会损坏ADC芯片?

    AD7606芯片没供电的情况下,ADC模拟输入通道信号已经输入信号(±10V),会不会损坏
    发表于 12-07 07:44