色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

樹莓派模數轉換器的制作

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-28 08:46 ? 次閱讀

概述

不再支持本指南中的示例。請查看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

    文章

    3208

    瀏覽量

    126871
  • 樹莓派
    +關注

    關注

    117

    文章

    1708

    瀏覽量

    105704
收藏 人收藏

    評論

    相關推薦

    高速模數轉換器基礎知識

    電子發燒友網站提供《高速模數轉換器基礎知識.pdf》資料免費下載
    發表于 10-18 10:31 ?0次下載
    高速<b class='flag-5'>模數轉換器</b>基礎知識

    國產模數轉換器可替換AD9253用于電子干擾

    國產模數轉換器可替換AD9253用于電子干擾
    的頭像 發表于 09-26 09:46 ?307次閱讀
    國產<b class='flag-5'>模數轉換器</b>可替換AD9253用于電子干擾

    集成式電流檢測模數轉換器

    電子發燒友網站提供《集成式電流檢測模數轉換器.pdf》資料免費下載
    發表于 09-02 09:56 ?0次下載
    集成式電流檢測<b class='flag-5'>模數轉換器</b>

    國產模數轉換器兼容ADS1220用于BTS電池化成

    國產模數轉換器兼容ADS1220用于BTS電池化成
    的頭像 發表于 08-12 10:13 ?346次閱讀
    國產<b class='flag-5'>模數轉換器</b>兼容ADS1220用于BTS電池化成

    LTC2217模數轉換器英文手冊

    電子發燒友網站提供《LTC2217模數轉換器英文手冊.pdf》資料免費下載
    發表于 07-31 13:15 ?0次下載

    逼近型模數轉換器特點和應用

    逐次逼近型模數轉換器(Successive Approximation Register Analog-to-Digital Converter,簡稱SAR ADC)是一種常用的模數轉換器類型,它
    的頭像 發表于 07-22 17:00 ?667次閱讀

    ADS1242模數轉換器數據手冊

    電子發燒友網站提供《ADS1242模數轉換器數據手冊.pdf》資料免費下載
    發表于 06-29 14:06 ?0次下載

    國產模數轉換器100%兼容替換AD7192用于環境監測

    國產模數轉換器100%兼容替換AD7192用于環境監測
    的頭像 發表于 05-24 09:41 ?457次閱讀
    國產<b class='flag-5'>模數轉換器</b>100%兼容替換AD7192用于環境監測

    模數轉換器的技術參數詳解

    模數轉換器(ADC,Analog-to-Digital Converter)作為電子系統中的重要組成部分,負責將連續的模擬信號轉換為離散的數字信號,以供數字系統進行處理和分析。模數轉換器的性能
    的頭像 發表于 05-21 16:06 ?1433次閱讀

    模數轉換器的工作原理、分類及應用

    模數轉換器(ADC,Analog-to-Digital Converter)是數字電子系統中不可或缺的重要組件。它實現了模擬信號到數字信號的轉換,為數字系統提供了處理連續時間模擬信號的能力。本文將對模數轉換器的基本概念、工作原理
    的頭像 發表于 05-21 16:05 ?1373次閱讀

    國產模數轉換器兼容AD7190用于高精度電壓采集

    國產模數轉換器兼容AD7190用于高精度電壓采集
    的頭像 發表于 05-20 09:43 ?628次閱讀
    國產<b class='flag-5'>模數轉換器</b>兼容AD7190用于高精度電壓采集

    壓力傳感模塊可使用國產模數轉換器,替換AD7798

    壓力傳感模塊可使用國產模數轉換器,替換AD7798
    的頭像 發表于 05-13 10:02 ?444次閱讀
    壓力傳感<b class='flag-5'>器</b>模塊可使用國產<b class='flag-5'>模數轉換器</b>,替換AD7798

    模數轉換器(ADC)的使用教學

    首先是功能,模數轉換器接收電壓信號并輸出一個數字信號,該數字信號是一個數字,這個數字指示了電壓信號的大小。
    的頭像 發表于 03-05 15:01 ?3165次閱讀
    <b class='flag-5'>模數轉換器</b>(ADC)的使用教學

    模數轉換器:并行比較型和逐次逼近型

    逐次逼近型模數轉換器(Successive Approximation Converter)是一種常用的模數轉換器轉換方式。它通過逐步逼近輸入信號的數值來獲得逼近的數字輸出。
    發表于 01-23 15:58 ?2802次閱讀
    <b class='flag-5'>模數轉換器</b>:并行比較型和逐次逼近型

    模數轉換器轉換方式有哪幾種?模數轉換器原理圖

    模數轉換器的主要作用是將連續變化的模擬信號轉換為數字信號,以便于數字系統進行處理、存儲和傳輸。
    發表于 01-23 15:54 ?2690次閱讀
    <b class='flag-5'>模數轉換器</b>的<b class='flag-5'>轉換</b>方式有哪幾種?<b class='flag-5'>模數轉換器</b>原理圖
    主站蜘蛛池模板: 狠狠狠狠狠狠干| 国产美女裸身网站免费观看视频| 涩涩涩涩爱网站| 欧美白人极品性喷潮| 久久九九久精品国产尤物| 好男人视频免费高清在线观看www| 国产超嫩一线天在线播放 | 国产亚洲欧美在线观看三区 | 日本妈妈JMZZZZZ| 欧美亚洲精品午夜福利AV| 免费三级现频在线观看| 麻豆出品国产AV在线观看| 久久视频在线视频观看精品15| 精品一二三区久久AAA片| 娇小老少配xxxxx| 久cao在线香蕉| 久久精品国产欧美| 久久人妻AV一区二区软件| 口工漫画r18全彩啪啪| 快穿之诱受双性被灌满h| 快播av种子| 欧美另类与牲交ZOZOZO| 青草精品国产福利在线视频| 欧美在线亚洲综合国产人| 人人碰国产免费线观看| 深夜释放自己污在线看| 小SAO货叫大声点妓女| 亚洲国产精品无码中文在线| 亚洲永久精品ww47app| 做i爱视频30分钟免费| 99久久精品费精品国产一区二| a久久99精品久久久久久蜜芽| 任你躁国语自产二区在线播放| 欧美亚洲日韩在线在线影院| 日韩精品卡1卡2三卡四卡乱码| 色偷偷网址| 亚洲高清国产拍精品影院| 日本最新免费区中文| 婷婷午夜影院| 亚洲欧美综合乱码精品成人网| 色婷婷国产精品视频一区二区三区 |