2015-08-23 174 views
0

我有兩個arduinos,第一個arduino是讀傳感器和第一個液晶顯示器,第二個arduino是第二個液晶顯示器。 現在我想提出兩個值通過I2C被送到另一個Arduino的如何通過i2c接收兩個值並在Arduino中解析?

我發送代碼:

byte senderArray[] = {batteryVoltage, temperatureC}; //12V, 23*C 
    Wire.beginTransmission(4); // transmit to device #4 
    Wire.write(senderArray,2); // sends 
    Wire.endTransmission(); // stop transmitting 

這裏接收代碼:

void setup() 
{ 
    Wire.begin(4);    // join i2c bus with address #4 
    Wire.onReceive(receiveEvent); // register event 
} 

void loop() 
{ 
    delay(100); 
} 

void receiveEvent(int howMany) 
{ 
    byte index = 0; 
    int array[2]; 
    while(Wire.available() > 0) 
    { 
    array[index] = Wire.read(); 
    lcd.clear(); 
    lcd.print("Battery: " + array[0]); 
    lcd.setCursor(0, 1); 
    lcd.print("Temp: " + array[1]); 
    } 
} 

如何在第一行顯示batteryVoltage在第二個temperatureC

編輯: 溫度結果只顯示23,在發送之前i2c已經完全輸出23,478,如何在第二個Arduino上顯示完整的結果?

回答

0

您不能連接字符串和數字,您正在混合數據類型。替換:

lcd.print("Battery: " + array[0]); 

有:

lcd.print("Battery: "); 
lcd.print(array[0],DEC); 

等等

相關問題