Adafruit INA260:高精度電流、電壓和功率傳感器的全方位解析
在電子工程師的日常工作中,準(zhǔn)確測量電流、電壓和功率是一項(xiàng)至關(guān)重要的任務(wù)。今天,我們就來深入了解一款功能強(qiáng)大的傳感器——Adafruit INA260電流、電壓和功率傳感器擴(kuò)展板。
文件下載:4226.pdf
一、概述
Adafruit INA260擴(kuò)展板或許是你最后一次需要購買的電流傳感解決方案。它不僅能替代兩臺(tái)萬用表的功能,還具備驚人的精度和靈活性。它可以測量高側(cè)或低側(cè)直流電流、總線電壓,并自動(dòng)計(jì)算功率。在令人印象深刻的電壓、電流和溫度范圍內(nèi),其測量精度優(yōu)于1%,而且通過I2C接口以易于使用的格式傳輸數(shù)據(jù)。
該擴(kuò)展板適用于任何兼容CircuitPython或Arduino的微控制器,以及像樹莓派這樣的單板計(jì)算機(jī)。它支持3V或5V邏輯,能夠測量高達(dá)+36VDC的總線電壓,但不適用于交流電壓。
1. 選擇測量側(cè)
大多數(shù)電流測量設(shè)備都有一些顯著的限制,影響其使用范圍。許多設(shè)備只能進(jìn)行低側(cè)測量,當(dāng)?shù)貐⒖键c(diǎn)隨電流變化時(shí)會(huì)出現(xiàn)問題。而INA260的“小姐妹”INA219B雖通過高側(cè)測量避免了這個(gè)問題,但需要更換分流電阻來測量不同的電流范圍。INA260則避免了這些限制,其集成的精密分流電阻使其能夠在高側(cè)或低側(cè)測量高達(dá)+36V、連續(xù)15A的電流。
2. 工作原理
內(nèi)部16位ADC測量集成的2毫歐(0.002歐姆)、0.1%分流電阻兩端的電壓,從而在令人印象深刻的電流范圍內(nèi)實(shí)現(xiàn)1.5 mA的分辨率(由于電阻極低,一些萬用表可能會(huì)將其視為短路)。
在高側(cè)配置中,可以準(zhǔn)確獲取總線電壓測量值和功率計(jì)算結(jié)果。但對(duì)于想要在低側(cè)配置中測量總線電壓的高級(jí)玩家,需要切斷連接V+和VBUS的跳線,并將VBUS引腳連接到電壓總線。
需要注意的是,在切換感性負(fù)載時(shí),由于電感反沖,瞬時(shí)電壓水平可能會(huì)大大超過穩(wěn)態(tài)水平。如果不采取預(yù)防措施保護(hù)芯片免受電感尖峰的影響,可能會(huì)導(dǎo)致芯片損壞。更多信息可參考相關(guān)鏈接。
二、引腳說明
1. 電源引腳
擴(kuò)展板上的傳感器需要2.7V至5.5V的電源,可輕松與大多數(shù)微控制器(如Arduino、Feather等)配合使用。
- Vcc:電源引腳,為擴(kuò)展板供電,其電壓應(yīng)與微控制器的邏輯電平相同(例如,對(duì)于5V的Arduino,使用5V)。
- GND:電源和邏輯的公共接地端。
2. I2C邏輯引腳
- SCL:I2C時(shí)鐘引腳,連接到微控制器的I2C時(shí)鐘線。邏輯電平與Vcc相同,且已內(nèi)置10K上拉電阻。
- SDA:I2C數(shù)據(jù)引腳,連接到微控制器的I2C數(shù)據(jù)線。邏輯電平與Vcc相同,且已內(nèi)置10K上拉電阻。
3. 其他引腳
- Vin+:正輸入引腳,用于高側(cè)電流傳感時(shí)連接電源,用于低側(cè)傳感時(shí)連接負(fù)載接地端。
- Vin-:負(fù)輸入引腳,用于高側(cè)電流傳感時(shí)連接負(fù)載,用于低側(cè)傳感時(shí)連接擴(kuò)展板接地端。
- Alert:中斷輸出引腳,可配置中斷以觸發(fā)各種“原因”,如超過或低于配置的電流、電壓或功率設(shè)置。也用于信號(hào)單次轉(zhuǎn)換完成。電壓電平與Vcc相同。
- VBus:總線電壓引腳。默認(rèn)情況下,它與Vin+相連,但在進(jìn)行低側(cè)測量時(shí),應(yīng)切斷擴(kuò)展板右側(cè)的VB跳線,并將VBus連接到電源總線,以便準(zhǔn)確計(jì)算總線電壓和總功率(VBus * 電流)消耗。
-
A0和A1焊接跳線:可通過焊接將地址引腳拉高到VCC,根據(jù)下表更改I2C地址。 A1 I2C Address (hex) GND 0x40 (Default) GND 0x41 VCC 0x44 VCC 0x45
三、組裝步驟
1. 準(zhǔn)備排針
如有必要,將排針剪至合適長度。將排針插入面包板(長引腳朝下),這樣焊接會(huì)更容易。
2. 安裝擴(kuò)展板
將擴(kuò)展板放在排針上,使短引腳穿過擴(kuò)展板的焊盤。
3. 焊接排針
確保焊接所有8個(gè)引腳,以實(shí)現(xiàn)可靠的電氣連接。(有關(guān)焊接技巧,請查看優(yōu)秀焊接指南)。焊接完成后,目視檢查焊點(diǎn)。
4. 準(zhǔn)備端子塊
將端子塊放在擴(kuò)展板內(nèi),確保其朝外。將擴(kuò)展板翻轉(zhuǎn),使端子引腳朝上。
5. 焊接端子塊
先用烙鐵支撐擴(kuò)展板,焊接一個(gè)引腳。然后使用虎鉗或輔助工具固定擴(kuò)展板,焊接另一個(gè)引腳。焊接完成后,目視檢查焊點(diǎn),然后繼續(xù)下一步。
四、Arduino使用
1. 接線
將INA260連接到Feather或Arduino非常簡單:
- 如果使用Feather(3.3V),將Feather的3V連接到擴(kuò)展板的VIN。
- 如果使用5V的Arduino(如Uno等),將Arduino的5V連接到擴(kuò)展板的VIN。
- 將Feather或Arduino的GND連接到擴(kuò)展板的GND。
- 將Feather或Arduino的SCL連接到擴(kuò)展板的SCL。
- 將Feather或Arduino的SDA連接到擴(kuò)展板的SDA。
- 將Vin+連接到電源以進(jìn)行高側(cè)電流傳感,或連接到負(fù)載接地端以進(jìn)行低側(cè)傳感。
- 將Vin-連接到負(fù)載以進(jìn)行高側(cè)電流傳感,或連接到擴(kuò)展板接地端以進(jìn)行低側(cè)傳感。
2. 安裝Adafruit_INA260庫
要開始讀取傳感器數(shù)據(jù),需要安裝Adafruit_INA260庫(代碼可在GitHub倉庫中找到)。該庫可從Arduino庫管理器中獲取,建議使用此方法進(jìn)行安裝。
從IDE中打開庫管理器,點(diǎn)擊“Manage Libraries”菜單項(xiàng),搜索“Adafruit INA260”,選擇該庫并點(diǎn)擊“Install”。然后按照相同的步驟安裝Adafruit BusIO庫。
3. 示例代碼
以下示例代碼是標(biāo)準(zhǔn)庫的一部分,展示了如何從INA260獲取電流、電壓和功率的傳感器數(shù)據(jù)。
#include
Adafruit_INA260 ina260 = Adafruit_INA260();
void setup() {
// Wait until serial port is opened
Serial.begin(115200);
while (!Serial) {
delay(10);
}
Serial.println("Adafruit INA260 Test");
if (!ina260.begin()) {
Serial.println("Couldn't find INA260 chip");
while (1);
}
Serial.println("Found INA260 chip");
}
void loop() {
Serial.print("Current: ");
Serial.print(ina260.readCurrent());
Serial.println(" mA");
Serial.print("Bus Voltage: ");
Serial.print(ina260.readBusVoltage());
Serial.println(" mV");
Serial.print("Power: ");
Serial.print(ina260.readPower());
Serial.println(" mW");
Serial.println();
delay(1000);
}
4. 加載演示
打開“File” -> “Examples” -> “Adafruit_INA260 Library” -> “ina260_test”,并將其上傳到連接了傳感器的Arduino。此外,你可能需要添加代碼來點(diǎn)亮NeoPixel燈帶,以便有電流可供測量。如果你不熟悉使用NeoPixel庫,請參考優(yōu)秀的NeoPixel überguide頁面。
上傳草圖到開發(fā)板,打開串口監(jiān)視器(“Tools” -> “Serial Monitor”),你應(yīng)該能看到電流、電壓和功率的值。
5. Arduino使用說明
首先,包含庫并創(chuàng)建一個(gè)Adafruit_INA260對(duì)象,以便在后續(xù)的草圖中使用。
#include
Adafruit_INA260 ina260 = Adafruit_INA260();
然后,在setup函數(shù)中調(diào)用INA260對(duì)象的begin函數(shù),初始化驅(qū)動(dòng)程序并準(zhǔn)備從傳感器讀取測量值。如果無法連接到INA260傳感器,begin函數(shù)將返回false。此時(shí),需要仔細(xì)檢查電源和I2C接線。
if (!ina260.begin()) {
Serial.println("Couldn't find INA260 chip");
while (1);
}
最后,可以進(jìn)行測量!readCurrent、readBusVoltage和readPower分別讀取并返回以毫安、毫伏和毫瓦為單位的測量值。
Serial.print("Current: ");
Serial.print(ina260.readCurrent());
Serial.println(" mA");
Serial.print("Bus Voltage: ");
Serial.print(ina260.readBusVoltage());
Serial.println(" mV");
Serial.print("Power: ");
Serial.print(ina260.readPower());
Serial.println(" mW");
默認(rèn)情況下,功率和電壓測量僅在高側(cè)電流傳感時(shí)準(zhǔn)確。要在低側(cè)傳感時(shí)調(diào)用readVoltage和readPower獲得準(zhǔn)確測量值,需要切斷擴(kuò)展板右側(cè)的VB跳線,并將VBus引腳連接到總線。
五、Python & CircuitPython使用
1. 接線
CircuitPython微控制器接線
將INA260按照以下方式連接到開發(fā)板:
- 開發(fā)板的3V連接到傳感器的Vin。
- 開發(fā)板的GND連接到傳感器的GND。
- 開發(fā)板的SCL連接到傳感器的SCL。
- 開發(fā)板的SDA連接到傳感器的SDA。
- 傳感器的Vin+連接到電源以進(jìn)行高側(cè)電流傳感,或連接到負(fù)載接地端以進(jìn)行低側(cè)傳感。
- 傳感器的Vin-連接到負(fù)載以進(jìn)行高側(cè)電流傳感,或連接到開發(fā)板接地端以進(jìn)行低側(cè)傳感。
注意:此擴(kuò)展板的I2C線上已包含上拉電阻,無需外部上拉電阻。
Python計(jì)算機(jī)接線
以樹莓派為例,接線方式如下:
- 樹莓派的3V3連接到傳感器的VIN。
- 樹莓派的GND連接到傳感器的GND。
- 樹莓派的SCL連接到傳感器的SCL。
- 樹莓派的SDA連接到傳感器的SDA。
2. 安裝庫
CircuitPython安裝INA260庫
首先,確保你的CircuitPython開發(fā)板運(yùn)行的是最新版本的Adafruit CircuitPython。然后,需要安裝使用硬件所需的庫,仔細(xì)按照步驟從Adafruit的CircuitPython庫包中查找并安裝這些庫。我們的CircuitPython入門指南有關(guān)于如何安裝庫包的詳細(xì)頁面。
對(duì)于非Express開發(fā)板(如Trinket M0或Gemma M0),需要手動(dòng)從庫包中安裝必要的庫:
- adafruit_ina260.mpy
- adafruit_bus_device
- adafruit_register
在繼續(xù)之前,確保開發(fā)板的lib文件夾或根文件系統(tǒng)中已復(fù)制了adafruit_ina260.mpy、adafruit_bus_device和adafruit_register文件和文件夾。然后連接到開發(fā)板的串行REPL,進(jìn)入CircuitPython的>>>提示符。
Python安裝INA260庫
需要安裝提供Python中CircuitPython支持的Adafruit_Blinka庫。這可能還需要在你的平臺(tái)上啟用I2C,并驗(yàn)證你運(yùn)行的是Python 3。由于每個(gè)平臺(tái)都有所不同,且Linux經(jīng)常更新,請?jiān)L問CircuitPython on Linux指南,讓你的計(jì)算機(jī)做好準(zhǔn)備。
完成上述步驟后,從命令行運(yùn)行以下命令:
sudo pip3 install adafruit-circuitpython-ina260
如果你的默認(rèn)Python版本是3,可能需要運(yùn)行pip代替。請確保不要在Python 2.x上使用CircuitPython,因?yàn)樗恢С帧?/p>
3. 使用示例
以下代碼展示了如何初始化傳感器并從Python REPL讀取電流和電壓:
import time
import board
import busio
import adafruit_ina260
i2c = busio.I2C(board.SCL, board.SDA)
ina260 = adafruit_ina260.INA260(i2c)
print("Current:", ina260.current)
print("Voltage:", ina260.voltage)
print("Power:", ina260.power)
4. 完整示例代碼
import time
import board
import adafruit_ina260
i2c = board.I2C() # uses board.SCL and board.SDA microcontroller
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a
ina260 = adafruit_ina260.INA260(i2c)
while True:
print(
"Current: %.2f mA Voltage: %.2f V Power:%.2f mW"
% (ina260.current, ina260.voltage, ina260.power)
)
time.sleep(1)
默認(rèn)情況下,功率和電壓測量僅在高側(cè)電流傳感時(shí)準(zhǔn)確。要在低側(cè)傳感時(shí)調(diào)用readVoltage和readPower獲得準(zhǔn)確測量值,需要切斷擴(kuò)展板右側(cè)的VB跳線,并將VBus引腳連接到總線。
六、下載資源
- 數(shù)據(jù)手冊:包括INA260數(shù)據(jù)手冊、TI設(shè)計(jì)資源等。
- 原理圖:可查看擴(kuò)展板的詳細(xì)電路連接。
- 制造圖紙:提供擴(kuò)展板的尺寸信息。
Adafruit INA260傳感器擴(kuò)展板為電子工程師提供了一種高精度、靈活的電流、電壓和功率測量解決方案。無論是在Arduino還是Python環(huán)境中,都能方便地進(jìn)行使用。你在使用過程中遇到過哪些問題呢?歡迎在評(píng)論區(qū)分享你的經(jīng)驗(yàn)和見解。
-
測量
+關(guān)注
關(guān)注
10文章
5748瀏覽量
117031 -
電流傳感器
+關(guān)注
關(guān)注
11文章
1371瀏覽量
43919
發(fā)布評(píng)論請先 登錄
INA219高側(cè)直流電流傳感器 breakout 板:高效功率監(jiān)測解決方案
高精度數(shù)字電流與功率監(jiān)測利器:INA260深度解析
深入解析INA199:高精度電流監(jiān)測的理想之選
高精度電流監(jiān)測:INA250的特性與應(yīng)用解析
SGM446:高精度兩引腳電流輸出溫度傳感器的深度解析
SGM837:高精度雙向電流與功率監(jiān)測器的全方位解析
深入解析INA199:高精度電流監(jiān)測的理想之選
深入解析LM95233:高精度溫度傳感器的全方位應(yīng)用指南
TMP112/TMP112D:高精度低功耗數(shù)字溫度傳感器的全方位解析
TMP20:高精度模擬輸出溫度傳感器的全方位解析
TMP435:高精度溫度傳感器的全方位解析
TMP464:高精度5通道溫度傳感器的全方位解析
OPT4048:高速度高精度三刺激XYZ顏色傳感器的全方位解析
高精度電流測量新選擇:TMCS1123電流傳感器深度解析
INA232 高精度數(shù)字電流/電壓/功率監(jiān)測器技術(shù)解析與應(yīng)用指南
Adafruit INA260:高精度電流、電壓和功率傳感器的全方位解析
評(píng)論