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

    关注

    100

    文章

    7407

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32L010_ADC介绍

    为数字信号进行处理。 输入通道:CW32L010的ADC提供了多达16路的输入通道,这为用户提供了更多的选择,可以根据需要采集不同模拟信号
    发表于 11-28 07:52

    ADC 实战:如何精准读取传感器信号

    关键因素。今天,我们就从原理到实战,带你搞懂ADC,帮你精准读取传感器信号。一、ADC基础回顾ADC(Analog-to-DigitalCo
    的头像 发表于 11-24 19:04 127次阅读
    <b class='flag-5'>ADC</b> 实战:如何精准<b class='flag-5'>读取</b>传感器<b class='flag-5'>信号</b>

    TLA2518 小型 8 通道 12 位模数转换器 (ADC)技术手册

    该TLA2518是一款易于使用的8通道、多路复用、12位、1MSPS、逐次逼近寄存器模数转换器(SAR ADC)。八个通道可以独立配置为模拟输入
    的头像 发表于 11-04 09:28 277次阅读
    TLA2518 小型 8 <b class='flag-5'>通道</b> 12 位模数转换器 (<b class='flag-5'>ADC</b>)技术手册

    ADC168M102R-SEP 辐射耐受型8通道1MSPS 16位ADC完整总结

    ADC168M102R-SEP 是一款双通道、16 位、1MSPS 模数转换器 (ADC)。该ADC具有8个伪或4个全差分输入通道,分为两对
    的头像 发表于 10-23 11:00 358次阅读
    ‌<b class='flag-5'>ADC</b>168M102R-SEP 辐射耐受型8<b class='flag-5'>通道</b>1MSPS 16位<b class='flag-5'>ADC</b>完整总结

    Modbus TCP或EtherNet/IP站转6通道输入模拟量(AI)

    FAD-3160是一款将6路模拟输入信号(AI)连接到Modbus TCP或者EtherNet/IP网络的模块,每个模拟输入通道支持电压
    的头像 发表于 07-17 15:06 329次阅读
    Modbus TCP或EtherNet/IP<b class='flag-5'>从</b>站转6<b class='flag-5'>通道</b><b class='flag-5'>输入</b><b class='flag-5'>模拟</b>量(AI)

    Analog Devices / Maxim Integrated MAX22005A 12通道模拟输入数据手册

    使用外部精密电阻器和低成本开关的可配置模拟输入输入通道可用作12个单端输入、6个差分输入或多达8个多
    的头像 发表于 07-01 11:39 532次阅读
    Analog Devices / Maxim Integrated MAX22005A 12<b class='flag-5'>通道</b><b class='flag-5'>模拟</b><b class='flag-5'>输入</b>数据手册

    EEPROM芯片内部的1路14bit ADC, ADC精度受使用通道数和采样率是怎么样的?

    EEPROM芯片内部的1路14bit ADC, ADC精度受使用通道数和采样率是怎么样的?EEPROM芯片通常不内置ADC(模数转换器),
    发表于 06-04 09:04

    STM32CubeMx使用ADC时,只需要将通道进行配置,不需要对引脚进行模拟输入吗?

    当使用ADC时,只需要将通道进行配置,不需要对引脚进行模拟输入吗?模拟输入脚只能够接收
    发表于 03-13 07:32

    ADC12DC如果输入信号幅值不变时(直流),AD能够对进行采集么?

    您好,ADC12DC105系列芯片在技术手册中表明,芯片内部模拟信号输入有一电容(非外部电路),请问如果输入信号幅值不变时(直流),AD能
    发表于 02-10 07:21

    ADC10158如何使输入通道采集正负幅值为5V的交流信号

    ADC 10158 正负5V供电,Vref+接+5V,Vref-接地,模拟输入通道输入负电压时输出为0,输入正电压感觉数据波动较大,怎么
    发表于 02-07 08:19

    TLC5510模拟输入的是电压信号还是电流信号

    有谁知道TLC5510这个芯片模拟输入的是电压信号还是电流信号,若是电压信号范围是0.6~2
    发表于 01-15 08:31

    当ADS1258设置在固定通道模式工作时,为什么要选择ADC的正极和负极的模拟输入通道,算是差分输入吗?

    当ADS1258设置在固定通道模式工作时(即CONFIG0的MUXMOD为设置为1),这时MUXSCH寄存器的为AINN[3:0]选择作为ADC负极的模拟输入通道,AINP[3:0]
    发表于 01-07 08:35

    ADS1247工作于3通道单端模式,数据读取异常的原因?怎么解决?

    ADC的转换结果。但MCU运行后第一次读取的结果总是0(MCU硬上电或者复位)。 2、循环依次读取0、1、2三个模拟输入通道的结果,结果发现
    发表于 12-31 07:37

    配置ADC08D500为DES+DDR模式,模拟信号I端输入,实际采集数据时Q通道数据异常,是什么原因?

    配置ADC08D500为DES+DDR模式(即双沿采样,双沿输出),模拟信号I端输入,实际采集数据时,发现LVDS I通道数据正常,Q
    发表于 12-20 08:36

    用ADS1220做的电路,为什么会在都无信号输入的情况下,其中一个通道引脚处还有1.3v左右的电压?

    请教下,我用的ADS1220做的电路有啥问题,为啥会在都无信号输入的情况下,其中一个通道引脚处还有1.3v左右的电压,导致ADC通道读到一
    发表于 12-17 06:06