【Micropython基础】ADC的使用

举报
人才程序员 发表于 2024/03/31 16:56:28 2024/03/31
【摘要】 @TOC 前言MicroPython 提供了许多功能强大的模块和库,使得在嵌入式系统上进行开发变得更加轻松。其中之一是 ADC(模数转换器),它允许将模拟信号转换为数字值,为传感器和外部设备的集成提供了方便。在这篇文章中,我们将探讨 MicroPython 中 ADC 的基础使用方法。通过了解如何配置和读取 ADC,你将能够在 MicroPython 环境中轻松获取模拟传感器数据,为各种嵌入...

@TOC


前言

MicroPython 提供了许多功能强大的模块和库,使得在嵌入式系统上进行开发变得更加轻松。其中之一是 ADC(模数转换器),它允许将模拟信号转换为数字值,为传感器和外部设备的集成提供了方便。

在这篇文章中,我们将探讨 MicroPython 中 ADC 的基础使用方法。通过了解如何配置和读取 ADC,你将能够在 MicroPython 环境中轻松获取模拟传感器数据,为各种嵌入式项目提供更多可能性。


一、ADC的介绍

1.1 ADC是什么

ADC,即模数转换器,全称为Analog-to-Digital Converter。它就像是一位翻译官,把世界上的模糊模糊的模拟信号,比如声音、光线、温度等,转换成计算机能够理解的数字语言,就像把口语翻译成文字一样。这样,计算机就能够处理这些信号,做各种各样的事情,比如录音、测量、控制等。ADC在我们的生活中无处不在,比如手机的摄像头、温度计、数码相机等设备都需要它来将模拟信号转换成数字信号,让我们能够方便地与数字世界交流。

1.2 ADC 的原理

ADC(模数转换器)的原理可以用一个简单的比喻来解释:

想象你有一个充满数字的尺子和一杯水。这个尺子代表模拟信号,水的高度表示信号的强度。现在,你想要知道杯子里有多少水(模拟信号的强度),但是你只能用尺子来测量。所以,你用尺子测量水的高度,然后把这个高度转换成数字,比如说你把尺子上的刻度数记录下来,就得到了一个数字,这个数字就代表了水的高度。

在ADC中,模拟信号就像是杯子里的水,ADC就像是尺子。ADC会以一定的时间间隔(采样率)去测量模拟信号的值,然后把这个值转换成数字形式,也就是用数字来表示模拟信号的强度。这个过程就是模拟到数字的转换,它基于一些物理原理,比如电压或电流的测量。

具体来说,ADC会把连续的模拟信号分成很小的时间段,每个时间段内测量一次信号的值。然后,它会把每次测量的结果转换成数字形式,比如用二进制来表示。这样,就得到了一串数字,它们代表了模拟信号在不同时间点上的强度,从而实现了模拟到数字的转换。

总的来说,ADC的原理就是把连续的模拟信号转换成离散的数字信号,使得计算机可以处理和分析这些信号,从而实现各种各样的应用。

二、machine.ADC类的使用

2.1 ADC构造方法

他的构造方法如下:

class machine.ADC(pin)

参数为你需要模数转换的引脚

2.2 设置输入衰减

输入衰减是什么

ADC的设置输入衰减是指在ADC输入端对信号进行衰减处理的一种设置。通常情况下,ADC输入端能够接受的最大信号幅值是有限的,如果输入的信号幅值超过了ADC的最大输入范围,就会导致输入信号被截断或者溢出,从而产生失真或错误的转换结果。

为了避免这种情况发生,ADC通常会提供设置输入衰减的功能。设置输入衰减就是在输入信号到达ADC之前,对信号进行一定程度的减小,使得输入信号的幅值在ADC的可接受范围内。这样就可以确保ADC能够正确地将输入信号转换成数字形式,而不会因为信号过大而导致失真或错误。

设置输入衰减的具体方式可以是通过硬件电路实现,也可以是通过软件控制实现。硬件衰减通常是通过电阻网络或变压器等元件来实现信号的衰减,而软件衰减则是通过ADC内部的数字处理单元对信号进行调整。不同的ADC设备可能提供不同的设置输入衰减的选项和方式,用户可以根据实际需求来选择合适的设置。

设置输入衰减

其方法原型如下:

adc.atten(atten)

他对应的参数有这些:
在这里插入图片描述

2.3 读取原始ADC值

其函数原型如下:

adc.read()

他的返回值为ADC的值

2.4 设置采样宽度

采样精度是什么

ADC(模数转换器)的采样宽度是指每个采样周期中模拟信号转换为数字信号的位数。它表示了ADC的精度,也就是它能够区分的信号细节的数量。

采样宽度通常以位(bit)为单位来表示。例如,如果一个ADC的采样宽度是12位,那么它能够将模拟信号分成 (2^{12} = 4096) 个不同的级别。这意味着它可以将模拟信号转换为一个12位的二进制数字,每个数字代表模拟信号的一个特定范围或级别。

更高的采样宽度通常意味着更高的精度和更好的信号重建能力,因为它们可以捕获和表示更多的信号细节。

设置采样精度

其函数原型如下:

adc.width(bits)

其参数可取值如下:
在这里插入图片描述

三、示例代码

from machine import Pin, ADC
import time

# 设置 ADC 引脚
adc_pin = Pin(34)

# 创建 ADC 对象
adc = ADC(adc_pin)

# 设置 ADC 的最大值
adc.width(ADC.WIDTH_12BIT)

while True:
    # 读取 ADC 值
    adc_value = adc.read()

    # 打印 ADC 值
    print("ADC value:", adc_value)

    # 等待一段时间
    time.sleep(1)

在这里插入图片描述


总结

在本文中,我们介绍了 MicroPython 中 ADC 的基础使用。首先,我们讨论了 ADC 的背景和作用,它是如何将模拟信号转换为数字形式的。接着,我们学习了在 MicroPython 中如何初始化和配置 ADC,包括设置引脚和确定参考电压。

随后,我们深入了解了如何使用 ADC 对模拟信号进行采样和转换,以获取数字化的数据。通过示例代码,我们演示了如何读取传感器的模拟数值,并在 MicroPython 中进行处理。

总体而言,ADC 的使用为 MicroPython 用户提供了更广泛的硬件交互能力。通过灵活利用 ADC,你可以轻松集成各种传感器和外部设备,从而为嵌入式项目增加更多功能和应用场景。希望本文能够帮助你更好地理解和应用 MicroPython 中的 ADC 模块。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。