模數轉換在嵌入式電子產品中是一項非常重要的任務,因為大多數傳感器以模擬值的形式提供輸出并將它們饋送到只理解二進制值的微控制器,我們必須將它們轉換為數字值。因此,為了能夠處理模擬數據,微控制器需要模數轉換器。
在本教程中,我們將學習如何將 PCF8591 ADC/DAC 模塊與 Raspberry Pi 連接。
所需組件
PCF8591 ADC模塊
100K 鍋
跨接電纜
假設您安裝了最新的 Raspbian OS 的 Raspberry Pi,并且您知道如何使用 putty 等終端軟件通過 SSH 連接到 Pi。如果您是 Raspberry Pi 新手,請按照本文 開始使用 Raspberry Pi。盡管如此,如果您遇到任何問題,那么有大量的 Raspberry Pi 教程 可以提供幫助。
PCF8591 ADC/DAC 模塊
PCF8591 是一個 8 位模數或 8 位數模轉換器模塊,這意味著每個引腳可以讀取高達 256 的模擬值。它還具有 LDR 和板上提供的熱敏電阻電路。該模塊有四個模擬輸入和一個模擬輸出。它適用于I 2 C 通信,因此有用于串行時鐘和串行數據地址的 SCL 和 SDA 引腳。它需要2.5-6V的電源電壓并且具有低待機電流。我們也可以通過調節模塊上電位器的旋鈕來控制輸入電壓。板上還有三個跳線。J4接選擇熱敏電阻接入電路,J5接選擇LDR/光敏電阻接入電路J6連接選擇可調電壓接入電路。板上有兩個 LED D1 和 D2-D1 顯示輸出電壓強度,D2 顯示電源電壓強度。輸出或電源電壓越高,LED D1 或 D2 的強度越高。您還可以使用 VCC 或 AOUT 引腳上的電位器來測試這些 LED。
Raspberry Pi 中的 I2C 引腳
為了將PCF8591與 Raspberry Pi 一起使用,首先要做的是了解 Raspberry Pi I2C 端口引腳并在 Raspberry pi 中配置 I2C 端口。
下面是樹莓派 3 Model B+ 的引腳圖, 本教程使用I2C 引腳 GPIO2 (SDA) 和 GPIO3 (SCL) 。
在樹莓派中配置 I2C
默認情況下,I2C 在 Raspberry Pi 中是禁用的。所以首先必須啟用它。在 Raspberry Pi 中啟用 I2C
1. 轉到終端并鍵入 sudo raspi-config。
2. 現在樹莓派軟件配置工具出現了。
3. 選擇 接口選項 ,然后啟用 I2C。
4. 啟用 I2C 后重啟 Pi。
使用樹莓派掃描 PCF8591 的 I2C 地址
現在為了開始與 PCF8591 IC 通信,Raspberry Pi 必須知道它的 I2C 地址。要找到地址,首先將 PCF8591 的 SDA 和 SCL 引腳連接到 Raspberry Pi 的 SDA 和 SCL 引腳。還要連接 +5V 和 GND 引腳。
現在打開終端并輸入以下命令以了解連接的 I2C 設備的地址,
sudo i2cdetect –y 1 或 sudo i2cdetect –y 0
現在找到 I2C 地址后,是時候構建電路并安裝必要的庫了,以便將 PCF8591 與 Raspberry Pi 一起使用。
將 PCF8591 ADC/DAC 模塊與 Raspberry Pi 連接
PCF8591與樹莓派接口的電路圖很簡單。在這個接口示例中,我們將從任何模擬引腳讀取模擬值并將其顯示在 Raspberry Pi 終端上。我們可以使用 100K 的罐子來更改這些值。
將 VCC 和 GND 連接到樹莓派的 GPIO2 和 GPIO。接下來,將 SDA 和 SCL 分別連接到 GPIO3 和 GPIO5。最后用AIN0連接一個100K的電位器。您還可以添加16x2 LCD來顯示 ADC 值,而不是在終端上顯示。
用于模數轉換 (ADC) 的 Python 程序
首先,導入用于I2 C 總線通信的smbus庫和時間庫,以在打印值之間提供休眠時間。
導入 smbus 導入時間
現在定義一些變量。第一個變量包含 I2C 總線的地址,第二個變量包含第一個模擬輸入引腳的地址。
地址 = 0x48 A0 = 0x40
接下來,我們制作了庫 smbus 的函數 SMBus(1) 的對象
總線 = smbus.SMBus(1)
現在,第一行告訴 IC 在第一個模擬輸入引腳上進行模擬測量。第二行將在模擬引腳讀取的地址存儲在變量值中。最后打印值。
while True: bus.write_byte(address,A0) value = bus.read_byte(address) print(value) time.sleep (0.1)
現在終于將 python 代碼保存在帶有 .py 擴展名的文件中,并使用以下命令在樹莓派終端中運行代碼“
蟒蛇文件名.py
現在終于將 python 代碼保存在帶有 .py 擴展名的文件中,并使用以下命令在樹莓派終端中運行代碼“
在運行代碼之前,請確保您已啟用 I 2 C 通信并且所有引腳都如圖所示連接,否則會顯示錯誤。模擬值必須開始顯示在終端上,如下所示。調整鍋的旋鈕,你會看到數值的逐漸變化。
import smbus
導入時間
地址 = 0x48
總線 = smbus.SMBus(1)
while True:
bus.write_byte(address,A0)
value = bus.read_byte(address)
print(value) time.sleep
(0.1)
-
adc
+關注
關注
98文章
6452瀏覽量
544147 -
模數轉換器
+關注
關注
26文章
3144瀏覽量
126747 -
PCF8591
+關注
關注
3文章
67瀏覽量
32776
發布評論請先 登錄
相關推薦
評論