停售
停售
停售
停售
本商品為研發實驗用的模組,無法隨插即用,須經專業背景人士(如:工程師、研究生、師生)撰寫程式、燒錄、接線等二次加工後,才具備訊號傳輸功能。 並非直接插電後可直接使用之射頻模組,非屬電信管制射頻器材,購買前請詳閱商品說明。
商品簡介 |
PaHUB, 是一款 I2C GROVE PORTA 擴展器.能夠將單路 I2C GROBE 接口拓展至六路,並且允許掛載相同I2C地址的從設備.
內部集成TCA9548A-I2C多路復用器,配有8個可通過I2C總線控制的雙向轉換開關.串行時鐘/串行數據(SCL /SDA)上行對可擴展為8個下行對或通道.根據可編程控制寄存器的內容,可選擇任一單獨SCn /SDn通道或者通道組合.
支持多層Unit 嵌套,這意味著你可以將PaHUB連接到PaHUB上以獲得更多的I2C從設備接口.(例:將7個Unit進行連接,將獲得36個I2C接口,且在主控僅僅佔用了一個GROVE端口)當你的項目需要掛載多個I2C設備或存在I2C地址衝突時,PaHUB Unit 是完美解決方案.該Unit 的I2C 地址為0x70(可通過調整電阻進行更改).
注意:編程時請注意通道順序
● I2C GROVE PORTA 拓展
● 2x LEGO 兼容孔
● 允許多個嵌套
● 1-6 拓展
參考原理圖及TCA9548A數據手冊可知,該Unit能夠通過控制A0~A2引腳的電平組合,修改設備的I2C地址。 (默認地址為0x70)
在Unit的PCB板上預留了三個貼片電阻焊接位,分別為A0-A2,如下圖所示。
焊接0歐電阻後,相應的引腳將由低電平變為高電平,引腳電平組合與其對應的I2C地址如下表所示。
INPUTS | I2C BUS SLAVE ADDRESS | ||
A2 | A1 | A0 | |
L | L | L | 112(decimal),70(hexadecimal) |
L | L | H | 113(decimal),71(hexadecimal) |
I | H | I | 114(decimal),72(hexadecimal) |
L | H | H | 115(decimal),73(hexadecimal) |
H | L | L | 116(decimal),74(hexadecimal) |
H | L | H | 117(decimal),75(hexadecimal) |
H | H | L | 118(decimal),76(hexadecimal) |
H | H | H | 119(decimal),77(hexadecimal) |
商品規格 |
● I2C擴展
規格 | 參數 |
淨重 | 7g |
產品尺寸 | 48x 24x 12 (mm) |
【商品清單】
PaHUB unit x1
GROVE線 x1
電路圖 |
相關連結 |
Easy Loader |
範例程序 |
如何查詢I2C位址 |
STEP 1. 將欲查詢的模組連接至Arduino UNO(附圖為腳位參考,實際請比對商品標示接線)
STEP 2. 開啟Arduino IDE並新增檔案
STEP 3. 貼入教學下方的範例文件,並上傳到Arduino UNO,即會開始掃描I2C位址
STEP 4. 開啟序列埠監控視窗,即可取得I2C位址
/ ---------------------------------------------------------------- / | |
// Arduino I2C Scanner | |
// Re-writed by Arbi Abdul Jabbaar | |
// Using Arduino IDE 1.8.7 | |
// Using GY-87 module for the target | |
// Tested on 10 September 2019 | |
// This sketch tests the standard 7-bit addresses | |
// Devices with higher bit address might not be seen properly. | |
/ ---------------------------------------------------------------- / | |
#include |
|
void setup() | |
{ | |
Wire.begin(); // Wire communication begin | |
Serial.begin(9600); // The baudrate of Serial monitor is set in 9600 | |
while (!Serial); // Waiting for Serial Monitor | |
Serial.println("\nI2C Scanner"); | |
} | |
void loop() | |
{ | |
byte error, address; //variable for error and I2C address | |
int nDevices; | |
Serial.println("Scanning..."); | |
nDevices = 0; | |
for (address = 1; address < 127; address++ ) | |
{ | |
// The i2c_scanner uses the return value of | |
// the Write.endTransmisstion to see if | |
// a device did acknowledge to the address. | |
Wire.beginTransmission(address); | |
error = Wire.endTransmission(); | |
if (error == 0) | |
{ | |
Serial.print("I2C device found at address 0x"); | |
if (address < 16) | |
Serial.print("0"); | |
Serial.print(address, HEX); | |
Serial.println(" !"); | |
nDevices++; | |
} | |
else if (error == 4) | |
{ | |
Serial.print("Unknown error at address 0x"); | |
if (address < 16) | |
Serial.print("0"); | |
Serial.println(address, HEX); | |
} | |
} | |
if (nDevices == 0) | |
Serial.println("No I2C devices found\n"); | |
else | |
Serial.println("done\n"); | |
delay(5000); // wait 5 seconds for the next I2C scan | |
} |
出貨清單 |