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
    +关注

    关注

    95

    文章

    5646

    浏览量

    539394
收藏 人收藏

    评论

    相关推荐

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

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

    adc0809怎么改通道

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

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

    PLC读取模拟信号必须要有模拟输入模块,即常说的AI模块。
    的头像 发表于 01-02 09:35 430次阅读
    请问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

    为什么不能直接使用从PLC读取到的模拟信号

    ,可以为控制系统提供精确的控制数据。然而,直接使用从PLC读取到的模拟信号并不总是可行的,存在一些限制和风险。 首先,PLC只能提供数字信号,需要通过转换
    的头像 发表于 10-23 09:30 616次阅读

    通道模拟量隔离变送器

    通道模拟量隔离变送器深圳捷晟达(JSD科技)的JSD TA-3003系列三通道模拟量隔离变送器,是将三路输入
    发表于 09-02 03:06 0次下载

    输入四输出模拟信号隔离变送器

    输入四输出模拟信号隔离变送器深圳捷晟达(JSD科技)的JSD TA-2004系列双输入四输出模拟
    发表于 09-02 03:04 1次下载

    输入四输出模拟信号隔离变送器

    深圳捷晟达(JSD科技)的JSD TA-1004系列单输入四输出模拟信号隔离变送器,是将输入与输出之间电气绝缘的模拟信号进行变换、放大、隔
    发表于 09-02 02:59 0次下载

    瑞萨单片机RA6T2的16位模数转换器操作 [5] 配置RA6T2 ADC模块 (2)

    通道和最多12个支持差分输入模拟通道(6对)。 • A/D转换器单元1 (ADC1) 可选择最多17个支持单端
    的头像 发表于 07-26 12:10 807次阅读

    ESP32学习笔记:ADC

    ESP32 芯片有2 个 12位的SAR(逐次逼近)ADC,最多可以读取18个不同的模拟通道输入,由5个专用转换控制器管理,2个支持高性能多
    的头像 发表于 07-13 17:11 3161次阅读
    ESP32学习笔记:<b class='flag-5'>ADC</b>

    三分钟带你搞懂PLC是如何读取模拟量的?

    PLC读取模拟信号必须要有模拟输入模块,即常说的AI模块。
    的头像 发表于 05-24 09:57 3593次阅读
    三分钟带你搞懂PLC是如何<b class='flag-5'>读取</b><b class='flag-5'>模拟</b>量的?

    ESP8266如何在没有模拟输入的情况下处理模拟信号

    一些模块没有它。我需要 ADC 处理。 好吧,这是完全可能的,这里是如何做到的。 有 4 件基本事情需要完成: 将模拟信号转换为脉冲宽度调制 (PWM) 在任何 GPIO 上读取 PWM 读取
    发表于 05-24 09:10

    芯炽科技推出八通道16位200kSPS ADC SC1467,具有1MΩ模拟输入阻抗的输入缓冲器

    通道16位200kSPS ADC SC1467,具有1MΩ模拟输入阻抗的输入缓冲器
    发表于 05-04 16:14 471次阅读
    芯炽科技推出八<b class='flag-5'>通道</b>16位200kSPS <b class='flag-5'>ADC</b> SC1467,具有1MΩ<b class='flag-5'>模拟</b><b class='flag-5'>输入</b>阻抗的<b class='flag-5'>输入</b>缓冲器