我想使用Arduino作爲i2c從機。但是我要求Arduino通過註冊多個i2c地址來充當多個設備。Arduino作爲具有多個i2c地址的從機
這可能不是一個通常會做的,但這裏是我的理由這樣做:
我想用一個Arduino作爲遙測傳感器,用於遙測的Spektrum。遙測接收器有幾個i2c插頭,它們連接到多個傳感器(電流爲0x02,電壓爲0x03,空速爲0x11等),每個傳感器都有遙測接收器預期的固定I2C地址。
我想使用其中一個 Arduino作爲所有這些設備充當所有這些設備註冊自己的所有上述地址,並作出適當的閱讀迴應。
我可以使用一個Arduino每個傳感器,這看起來很愚蠢,因爲我可以用一個Arduino pro-mini執行所有這些讀取。
我知道你可以使用
Wire.begin(0x02);
註冊Arduino的,但我需要一些類似的(僞代碼)
Wire.begin(0x02, 0x03, 0x11);
而在收到請求時,我需要知道什麼解決了Arduino的問題。
例如(僞碼)
void receiveEvent(byte address, int bytesReceived){
if(address == 0x02){
// Current reading
}
else if(address == 0x03){
// Voltage reading
}
else if(address == 0x11){
// Airspeed reading
}
}
任何建議,將不勝感激。
除了原始的Arduino是一種選擇,ATxmegaA1設備帶有4個I2C接口,並且在github上有一個名爲Xmegaduino的[Arduino的ATxmega分支](https://github.com/Xmegaduino)。 – vega8