概述
不再支持本指南中的示例。请查看MCP3008和ADS1x15指南,了解CircuitPython和Python的用法。
Raspberry Pi是一款出色的小型台式计算机,可用于控制数字输入和输出。但是,当您想读取模拟信号(例如从热敏电阻,电位计或许多其他类型的传感器获得的信号)时会怎么做?不要放弃!通过将一个小型的模数转换器(ADC)芯片连接到Pi,您可以为Raspberry Pi程序打开模拟信号的世界!
本指南将为您展示从中读取模拟值的两个不错的选择带有Raspberry Pi的Python。您可以使用简单的MCP3008模拟到数字转换器(ADC)来读取10位精度的多达8个模拟输入通道。或使用更高级的ADS1x15系列ADC读取12至16位精度和可编程增益级的4个通道-哇!您将立即使用Python库和示例来启动并运行这些示例,以从这两个ADC读取模拟输入。
在开始之前,您需要熟悉使用Raspberry的基础知识。 Pi喜欢加载操作系统,建立网络并使用SSH连接到终端。查阅“学习Raspberry Pi”系列以获取更多信息。
在开始指南之前,请确保Raspberry Pi正在运行最新的Raspbian Jessie操作系统(完整版或精简版)。
继续学习如何使用MCP3008或ADS1015/ADS1115模拟与Raspberry Pi进行数字转换。
MCP3008
不再支持本指南中的示例。查阅MCP3008电路Python和Python使用指南:https://learn.adafruit.com/mcp3008-spi-adc/python-circuitpython
MCP3008是低成本的8通道10位模数转换器。该ADC的精度类似于Arduino Uno的精度,并且具有8个通道,您可以从Pi读取很多模拟信号。如果您只需要读取简单的模拟信号,例如温度或光传感器,则此芯片是一个不错的选择。如果需要更高的精度或功能,请查看下一页的ADS1x115系列。但是,请勿使用旧指南中的代码,因为该指南已弃用。本指南将向您展示安装和使用新的Python代码与MCP3008 ADC进行通信的简便方法。
MCP3008数据表也是重要的资料,可以方便地获取和使用。
接线
MCP3008使用以下方法连接到Raspberry Pi SPI串行连接。您可以使用硬件SPI总线或任何四个GPIO引脚和软件SPI与MCP3008通讯。由于软件SPI可以与Pi上的任何引脚配合使用,因此它的灵活性略高一些,而硬件SPI则稍快一些,但由于只能与特定的引脚配合使用而灵活性较差。如果不确定使用哪个软件,我建议您使用SPI软件,因为它更容易设置。
在将芯片连接到Pi之前,首先需要将其放入面包板。如果您尚未使用裸露的DIP芯片(如MCP3008),然后再将其压入面包板,则其支脚会跨越面包板中间的空通道。这样,您可以从面包板上触及芯片的每个分支。
请注意,芯片的方向很重要!确保将其与半个圆形的缩进并指向顶部。参见下面的照片作为示例:
一旦芯片位于面包板中,就可以将其连接到Pi了。 MCP3008芯片的每个分支都有以下名称:
记住切屑的方向,您必须用半圆像上面的图一样向顶部缩进!
软件SPI
要通过软件SPI连接将MCP3008连接到Raspberry Pi,您需要进行以下连接:
MCP3008 VDD 到 Raspberry Pi 3.3V
MCP3008 VREF 到 Raspberry Pi 3.3V
MCP3008 AGND 到 Raspberry Pi GND
MCP3008 DGND 到 Raspberry Pi GND
MCP3008 CLK 至 Raspberry Pi引脚18
MCP3008 DOUT 至 Raspberry P我将23针
MCP3008 DIN 固定为 Raspberry Pi针24
MCP3008 CS/SHDN 到 Raspberry Pi引脚25
请注意,您可以将MCP3008 CLK,DOUT,DIN和CS/SHDN引脚交换到任何其他免费数字GPIO Raspberry Pi上的针脚。您只需要修改示例代码即可使用您的密码。
硬件SPI
要首先使用硬件SPI,请确保已使用raspi-config工具启用了SPI。确保启用SPI接口和加载SPI内核模块都回答是,然后重新启动Pi。在继续之前,运行 ls -l/dev/spi * 命令时,请检查是否可以看到/dev/spidev0.0和/dev/spidev0.1设备。
Nowwire将MCP3008连接到Raspberry Pi的方法如下:
MCP3008 VDD 到 Raspberry Pi 3.3V
MCP3008 VREF 到 Raspberry Pi 3.3V
MCP3008 AGND 到 Raspberry Pi GND
MCP3008 DGND 到 Raspberry Pi GND
MCP3008 CLK 到 Raspberry PiSCLK
MCP3008 DOUT 到 Raspberry PiMISO
MCP3008 DIN 到 Raspberry Pi MOSI 》
MCP3008 CS/SHDN 到 Raspberry PiCE0
库安装
使用软件或软件将MCP3008连接到Raspberry Pi之后硬件SPI无线即可开始安装Adafruit MCP3008 Python库。
您可以使用一些命令从Python软件包索引中安装该库,也可以从GitHub上的源安装该库。从下面选择以下选项之一。如果不确定我建议从GitHub上的源代码安装,因为它还会下载使用该库的示例。
请注意,在安装该库之前,必须先连接Raspberry Pi 通过有线或无线网络连接到Internet。
源代码安装
要从Github上的源代码安装,请连接到Raspberry Pi上的终端并运行以下命令:
下载:文件
复制代码
sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus git
cd ~
git clone https://github.com/adafruit/Adafruit_Python_MCP3008.git
cd Adafruit_Python_MCP3008
sudo python setup.py install sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus git
cd ~
git clone https://github.com/adafruit/Adafruit_Python_MCP3008.git
cd Adafruit_Python_MCP3008
sudo python setup.py install
您应该看到库安装成功,并显示类似以下消息:
如果您看到错误,请仔细检查所有先前的命令是否都已运行,并且它们没有因错误而失败。
Pyt hon软件包索引安装
要从Python软件包索引安装到Raspberry Pi上的终端并执行以下命令:
下载:文件
复制代码
sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip
sudo pip install adafruit-mcp3008 sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip
sudo pip install adafruit-mcp3008
看到如下消息,说明已成功安装该库:
请注意,如果您是从Python软件包索引中安装的,则不会具有该库的示例代码。您需要手动将这些MCP3008示例下载到Pi,然后在下一部分中运行它们。
库的用法
要学习如何使用库,我将逐步介绍其中包含的一些示例代码。如果您从源代码下载并安装了这些库,则这些示例位于examples文件夹中。通过在Pi上运行,切换到该文件夹:
下载:文件
复制代码
cd ~/Adafruit_Python_MCP3008/examples cd ~/Adafruit_Python_MCP3008/examples
注意:如果您使用pip命令从Python软件包索引中安装了该库,则不会具有示例代码,则需要手动将其下载到Pi。
我们将首先查看simpletest.pyexample,这是读取和显示ADC通道值的基本示例。首先,让我们打开文件以将其配置为使用软件或硬件SPI。运行以下命令以在nano文本编辑器中打开文件:
下载:文件
复制代码
nano simpletest.py nano simpletest.py
现在向下滚动到顶部附近的以下代码块:
下载:文件
复制代码
# Software SPI configuration:
CLK = 18
MISO = 23
MOSI = 24
CS = 25
mcp = Adafruit_MCP3008.MCP3008(clk=CLK, cs=CS, miso=MISO, mosi=MOSI)
# Hardware SPI configuration:
# SPI_PORT = 0
# SPI_DEVICE = 0
# mcp = Adafruit_MCP3008.MCP3008(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE)) # Software SPI configuration:
CLK = 18
MISO = 23
MOSI = 24
CS = 25
mcp = Adafruit_MCP3008.MCP3008(clk=CLK, cs=CS, miso=MISO, mosi=MOSI)
# Hardware SPI configuration:
# SPI_PORT = 0
# SPI_DEVICE = 0
# mcp = Adafruit_MCP3008.MCP3008(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE))
默认情况下,此代码段将芯片配置为使用上一部分中所述的软件SPI配置。如果您在软件SPI设置中使用了不同的引脚,请确保将CLK,MISO,MOSI,CS的值更改为所使用的引脚。
如果您使用的是硬件SPI,则需要注释掉软件SPI部分,取消注释硬件SPI部分。对于硬件SPI,配置应如下所示:
下载:文件
复制代码
# Software SPI configuration:
# CLK = 18
# MISO = 23
# MOSI = 24
# CS = 25
# mcp = Adafruit_MCP3008.MCP3008(clk=CLK, cs=CS, miso=MISO, mosi=MOSI)
# Hardware SPI configuration:
SPI_PORT = 0
SPI_DEVICE = 0
mcp = Adafruit_MCP3008.MCP3008(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE)) # Software SPI configuration:
# CLK = 18
# MISO = 23
# MOSI = 24
# CS = 25
# mcp = Adafruit_MCP3008.MCP3008(clk=CLK, cs=CS, miso=MISO, mosi=MOSI)
# Hardware SPI configuration:
SPI_PORT = 0
SPI_DEVICE = 0
mcp = Adafruit_MCP3008.MCP3008(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE))
现在通过按 Ctrl-o ,输入,然后按 Ctrl-x 退出。您可以通过在终端上运行 simpletest.py 代码:
下载:文件
复制代码
sudo python simpletest.py sudo python simpletest.py
该示例将打印出包含所有ADC的表格渠道及其价值。每半秒钟将打印出具有最新通道值的新行。例如,您可能会看到以下输出:
每列表示一个不同的通道,第一行的标题显示通道号(从0到7,共8个通道)。每个通道的值是该通道的ADC值。这是一个介于0到1023之间的数字,其中0表示信号处于接地电平,而1023表示信号处于AREF值(3.3V)或更高。在这两个值之间是成比例的,因此512的值约为3.3/2或1.65伏。
按 Ctrl-c 可以停止示例。
尝试将电位计连接到模拟输入之一。将电位计的中间分支(抽头)连接到模拟输入,然后将另一分支连接到Pi 3.3V,另一分支连接到Pi接地。运行示例,并旋转电位计。您应该看到ADC值发生变化,并且随着电位计的电压降低而降低,而随着电压的升高而升高!
要了解代码的工作原理,请打开 simpletest.py 再次以nano为例。现在向下滚动到底部的主循环:
下载:文件
复制代码
print(‘Reading MCP3008 values, press Ctrl-C to quit.。.’)
# Print nice channel column headers.
print(‘| {0:》4} | {1:》4} | {2:》4} | {3:》4} | {4:》4} | {5:》4} | {6:》4} | {7:》4} |’.format(*range(8)))
print(‘-’ * 57)
# Main program loop.
while True:
# Read all the ADC channel values in a list.
values = [0]*8
for i in range(8):
# The read_adc function will get the value of the specified channel (0-7)。
values[i] = mcp.read_adc(i)
# Print the ADC values.
print(‘| {0:》4} | {1:》4} | {2:》4} | {3:》4} | {4:》4} | {5:》4} | {6:》4} | {7:》4} |’.format(*values))
# Pause for half a second.
time.sleep(0.5) print(‘Reading MCP3008 values, press Ctrl-C to quit.。.’)
# Print nice channel column headers.
print(‘| {0:》4} | {1:》4} | {2:》4} | {3:》4} | {4:》4} | {5:》4} | {6:》4} | {7:》4} |’.format(*range(8)))
print(‘-’ * 57)
# Main program loop.
while True:
# Read all the ADC channel values in a list.
values = [0]*8
for i in range(8):
# The read_adc function will get the value of the specified channel (0-7)。
values[i] = mcp.read_adc(i)
# Print the ADC values.
print(‘| {0:》4} | {1:》4} | {2:》4} | {3:》4} | {4:》4} | {5:》4} | {6:》4} | {7:》4} |’.format(*values))
# Pause for half a second.
time.sleep(0.5)
代码可能看起来有些复杂,但是大多数复杂性来自打印表格。请注意,该行读取ADC通道值并将其保存在列表中:
values [i] = mcp.read_adc(i)
正在从MCP3008 Python库调用 read_adc()函数。该函数采用一个参数,即要读取的通道号(值0至7)。结果,该函数将返回该通道的当前ADC值。
以您自己的代码读取ADC通道与调用 read_adc()函数一样容易!传递通道以进行读取,它将返回该值。使用MCP3008函数库读取模拟值实际上就是所有这些!
如果您很好奇,可以像运行simpletest.py一样检查并运行differential.pyexample。修改配置以适合您的布线,无论是软件SPI还是硬件SPI。然后,在运行示例时,它将调用 read_adc_difference()函数,并使用该函数读取芯片的通道0和1之间的电压差。有时候读取两个信号的差异很有用,以帮助减少模拟信号中的噪声和其他伪像。
MCP3008 Python库已包含所有这些内容!
ADS1015/ADS1115
不再支持本指南中的示例。查阅有关CircuitPython和Python使用的ADS1x15指南:https://learn.adafruit.com/adafruit-4-channel-adc-breakouts/python-circuitpython
ADS1015和ADS1115是出色的模数转换器,易于使用Raspberry Pi的I2C通讯总线进行使用。 ADS1015是具有4个通道的12位ADC,而ADS1115是具有4个通道的高精度16位ADC。两者均具有从2/3x到16x的可编程增益,因此您可以放大小信号并以更高的精度读取它们。如果您想从MCP3008或其他简单的ADC上获得更好的提升,那么ADS1x15系列是一个不错的选择!
在开始使用之前,请务必遵循ADS1x15指南通过焊接组装ADC板
您可能还会对以下芯片的数据表感兴趣:
ADS1015数据表
ADS1115数据表
接线
ADS1015 ADS1115和ADS1115使用相同的I2C通信协议读取模拟值。您可以按照下面所述的完全相同的方式将每个芯片连接到Pi。
在将ADC连接到Pi之前,请确保使用raspi-config在Raspberry Pi上启用I2C。在启用I2C并使用i2cdetect命令检查ADC可见之后,再向前移动。
按如下所示将ADC连接到Pi:
ADS1x15VDD 至 Raspberry Pi 3.3V
ADS1x15GND 至 Raspberry Pi GND
ADS1x15 SCL 至 Raspberry Pi SCL
ADS1x15 SDA 至 Raspberry Pi SDA
库安装
将ADS1x15连接到Raspberry Pi之后,就可以安装Adafruit ADS1x15 Python库了。
您可以使用一些命令从Python包索引中安装该库,或者可以从GitHub上的源代码安装该库。从下面选择以下选项之一。如果不确定我建议从GitHub上的源代码安装,因为它还会下载使用该库的示例。
请注意,在安装该库之前,必须先连接Raspberry Pi 通过有线或无线网络连接到Internet。
源代码安装
要从Github上的源代码安装,请连接到Raspberry Pi上的终端并运行以下命令:
下载:文件
复制代码
sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus git
cd ~
git clone https://github.com/adafruit/Adafruit_Python_ADS1x15.git
cd Adafruit_Python_ADS1x15
sudo python setup.py install sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus git
cd ~
git clone https://github.com/adafruit/Adafruit_Python_ADS1x15.git
cd Adafruit_Python_ADS1x15
sudo python setup.py install
您应该看到库安装成功,并显示以下类似消息:
如果您看到错误,请仔细检查所有先前的命令是否都已运行,并且它们没有因错误而失败。
Pyt hon软件包索引安装
要从Python软件包索引安装到Raspberry Pi上的终端并执行以下命令:
下载:文件
复制代码
sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip
sudo pip install adafruit-ads1x15 sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip
sudo pip install adafruit-ads1x15
看到一条类似以下消息,说明已成功安装该库:
请注意,如果您是从Python软件包索引中安装的,则不会具有该库的示例代码。您需要手动将这些ADS1x15示例下载到Pi,然后在下一部分中运行它们。
库的用法
要学习如何使用库,我将逐步介绍其中包含的一些示例代码。如果您从源代码下载并安装了这些库,则这些示例位于 examples 文件夹中。通过在Pi上运行,切换到该文件夹:
下载:文件
复制代码
cd ~/Adafruit_Python_ADS1x15/examples cd ~/Adafruit_Python_ADS1x15/examples
注意:如果您使用pip命令从Python软件包索引中安装了该库,则不会具有示例代码,则需要手动将其下载到Pi。
我们将首先查看simpletest.pyexample,这是读取和显示ADC通道值的基本示例。首先,让我们打开文件以配置我们使用的芯片。运行以下命令以在nano文本编辑器中打开文件:
下载:文件
复制代码
nano simpletest.py nano simpletest.py
现在向下滚动到顶部附近的以下代码块:
下载:文件
复制代码
# Create an ADS1115 ADC (16-bit) instance.
adc = Adafruit_ADS1x15.ADS1115()
# Or create an ADS1015 ADC (12-bit) instance.
#adc = Adafruit_ADS1x15.ADS1015()
# Note you can change the I2C address from its default (0x48), and/or the I2C
# bus by passing in these optional parameters:
#adc = Adafruit_ADS1x15.ADS1015(address=0x49, bus=1) # Create an ADS1115 ADC (16-bit) instance.
adc = Adafruit_ADS1x15.ADS1115()
# Or create an ADS1015 ADC (12-bit) instance.
#adc = Adafruit_ADS1x15.ADS1015()
# Note you can change the I2C address from its default (0x48), and/or the I2C
# bus by passing in these optional parameters:
#adc = Adafruit_ADS1x15.ADS1015(address=0x49, bus=1)
此代码将示例配置为使用ADS1115芯片或ADS1015芯片。未注释的最上面一行选择通过创建ADS1115对象来使用ADS1115芯片。它下面是带注释的行,该行创建了一个ADS1015对象以使用ADS1015芯片。取消注释右行,具体取决于所使用的芯片。
例如,如果您使用的是ADS1015,则代码如下所示:
下载:文件
复制代码
# Create an ADS1115 ADC (16-bit) instance.
# adc = Adafruit_ADS1x15.ADS1115()
# Or create an ADS1015 ADC (12-bit) instance.
adc = Adafruit_ADS1x15.ADS1015()
# Note you can change the I2C address from its default (0x48), and/or the I2C
# bus by passing in these optional parameters:
#adc = Adafruit_ADS1x15.ADS1015(address=0x49, bus=1) # Create an ADS1115 ADC (16-bit) instance.
# adc = Adafruit_ADS1x15.ADS1115()
# Or create an ADS1015 ADC (12-bit) instance.
adc = Adafruit_ADS1x15.ADS1015()
# Note you can change the I2C address from its default (0x48), and/or the I2C
# bus by passing in these optional parameters:
#adc = Adafruit_ADS1x15.ADS1015(address=0x49, bus=1)
最后一条注释行显示了更高级的用法,例如选择自定义I2C地址或总线号。您通常不需要更改这些值。
现在按 Ctrl-o ,输入,然后按 Ctrl- x 退出。您可以通过在终端上执行来运行 simpletest.py 代码:
下载:文件
复制代码
sudo python simpletest.py sudo python simpletest.py
该示例将打印出包含所有ADC的表格渠道及其价值。每半秒钟将打印出具有最新通道值的新行。例如,您可能会看到如下输出:
每列代表一个不同的通道,第一行的标题显示通道号(从0到3,总共4个通道)。每个通道的值是该通道的ADC值。这个数字的范围是16位ADS1115上的-32768到32767或12位ADS1015上的-2048到2047。值0表示信号处于接地(参考)电平,值32767(或ADS105上的2047)表示信号等于或高于电流增益的最大电压值(默认为4.096V),以及-32768(或ADS1015上的-2048)表示它是低于参考电压的负电压(例如,如果处于差分模式)。在这两个值之间是成比例的,因此16384的值约为4.096/2或2.048V。
按 Ctrl-c 可以停止示例。
尝试将电位计连接到模拟输入之一。将电位计的中间分支(抽头)连接到模拟输入,然后将另一分支连接到Pi 3.3V,另一分支连接到Pi接地。运行示例,并旋转电位计。您应该看到ADC值发生变化,并且随着电位计的电压降低而降低,而随着电压的升高而升高!
要了解代码的工作原理,请打开 simpletest.py 再次以nano为例。向下滚动到本部分代码:
下载:文件
复制代码
# Choose a gain of 1 for reading voltages from 0 to 4.09V.
# Or pick a different gain to change the range of voltages that are read:
# - 2/3 = +/-6.144V
# - 1 = +/-4.096V
# - 2 = +/-2.048V
# - 4 = +/-1.024V
# - 8 = +/-0.512V
# - 16 = +/-0.256V
# See table 3 in the ADS1015/ADS1115 datasheet for more info on gain.
GAIN = 1 # Choose a gain of 1 for reading voltages from 0 to 4.09V.
# Or pick a different gain to change the range of voltages that are read:
# - 2/3 = +/-6.144V
# - 1 = +/-4.096V
# - 2 = +/-2.048V
# - 4 = +/-1.024V
# - 8 = +/-0.512V
# - 16 = +/-0.256V
# See table 3 in the ADS1015/ADS1115 datasheet for more info on gain.
GAIN = 1
该代码配置了ADC在读取信号时将使用的增益。增益会放大信号,因此更容易读取小的微弱信号。增益还控制芯片可以读取的电压范围。增益值为1时,电压范围为4.096伏。这意味着芯片可以读取-4.096伏至+4.096伏的值。您可以选择较高的增益来以较高的精度读取较弱的信号(因为将使用更多的位来表示较小的值范围)。
为信号选择正确的增益非常重要,值得考虑一下您可能会看到的电压范围。增益太高会使您的信号超出ADC的最大电压并产生不准确的结果,增益太低会使信号掩埋在噪声中,从而难以读取。仔细选择!
现在向下滚动到底部的主循环:
下载:文件
复制代码
print(‘Reading ADS1x15 values, press Ctrl-C to quit.。.’)
# Print nice channel column headers.
print(‘| {0:》6} | {1:》6} | {2:》6} | {3:》6} |’.format(*range(4)))
print(‘-’ * 37)
# Main loop.
while True:
# Read all the ADC channel values in a list.
values = [0]*4
for i in range(4):
# Read the specified ADC channel using the previously set gain value.
values[i] = adc.read_adc(i, gain=GAIN)
# Note you can also pass in an optional data_rate parameter that controls
# the ADC conversion time (in samples/second)。 Each chip has a different
# set of allowed data rate values, see datasheet Table 9 config register
# DR bit values.
#values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)
# Each value will be a 12 or 16 bit signed integer value depending on the
# ADC (ADS1015 = 12-bit, ADS1115 = 16-bit)。
# Print the ADC values.
print(‘| {0:》6} | {1:》6} | {2:》6} | {3:》6} |’.format(*values))
# Pause for half a second.
time.sleep(0.5) print(‘Reading ADS1x15 values, press Ctrl-C to quit.。.’)
# Print nice channel column headers.
print(‘| {0:》6} | {1:》6} | {2:》6} | {3:》6} |’.format(*range(4)))
print(‘-’ * 37)
# Main loop.
while True:
# Read all the ADC channel values in a list.
values = [0]*4
for i in range(4):
# Read the specified ADC channel using the previously set gain value.
values[i] = adc.read_adc(i, gain=GAIN)
# Note you can also pass in an optional data_rate parameter that controls
# the ADC conversion time (in samples/second)。 Each chip has a different
# set of allowed data rate values, see datasheet Table 9 config register
# DR bit values.
#values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)
# Each value will be a 12 or 16 bit signed integer value depending on the
# ADC (ADS1015 = 12-bit, ADS1115 = 16-bit)。
# Print the ADC values.
print(‘| {0:》6} | {1:》6} | {2:》6} | {3:》6} |’.format(*values))
# Pause for half a second.
time.sleep(0.5)
代码可能看起来有些复杂,但其中大部分是复杂的是从打印表格开始的。请注意,该行读取ADC通道值并将其保存在列表中:
values [i] = adc.read_adc(i,gain = GAIN)
此行正在从ADS1x15Python库调用 read_adc()函数。该函数采用一个参数,即要读取的通道号(0到3的值),以及可选的增益值(默认为1)。结果,该函数将返回该通道的当前ADC值。
以您自己的代码读取ADC通道与调用 read_adc()函数一样容易!传递通道以进行读取,它将返回该值。这就是使用ADS1x15库读取模拟值的全部内容!
如果您很好奇,可以像运行simpletest.py一样检查并运行differential.pyexample。修改配置以选择您的芯片。然后,在运行示例时,它将调用 read_adc_difference()函数,并使用该函数读取芯片的通道0和1之间的电压差。有时读取两个信号的差异很有用,以帮助减少模拟信号中的噪声和其他伪像。
此外,continuous.pyexample演示了如何打开连续读取模式并读取ADC值流。如果您只是从芯片中读取值并且不想一直担心调用 read_adc()函数,则此功能很有用。
最后,比较器.pyexample显示了一种更高级的芯片模式,当ADC值在特定范围内时,它们可以启用ALERT输出引脚。范围。再次,注释和数据表应该可以帮助您使用此功能。
ADS1x15Python库已包含所有内容!
责任编辑:wv
-
模数转换器
+关注
关注
26文章
3149浏览量
126761 -
树莓派
+关注
关注
116文章
1701浏览量
105563
发布评论请先 登录
相关推荐
评论