Hi guys,
I'm trying to send an array with six integers between two arduinos.
The masters sending part of the code looks like this:
Wire.beginTransmission(9);
Wire.write(werte[0]);
Wire.endTransmission();
Wire.beginTransmission(9);
Wire.write(werte[1]);
Wire.endTransmission();
Wire.beginTransmission(9);
Wire.write(werte[2]);
Wire.endTransmission();
Wire.beginTransmission(9);
Wire.write(werte[3]);
Wire.endTransmission();
Wire.beginTransmission(9);
Wire.write(werte[4]);
Wire.endTransmission();
Wire.beginTransmission(9);
Wire.write(werte[5]);
Wire.endTransmission();
The slaves part for receiving looks like this and I first thought everything works fine because I get the right values printed on the serial monitor. But if I want to use these values of the werte array in the loop they have changed.
int werte[6] = {0,0,0,0,0,0};
void setup() {
Wire.begin(9);
Wire.onReceive(receiveEvent); //function who gets called every time something is send
Serial.begin(9600);
}
void receiveEvent(int bytes){
werte[x] = Wire.read();
if (x==0){
Serial.println(werte[0]);
}
if (x==1){
Serial.println(werte[1]);
}
if (x==2){
Serial.println(werte[2]);
}
if (x==3){
Serial.println(werte[3]);
}
if (x==4){
Serial.println(werte[4]);
}
if (x==5){
Serial.println(werte[5]);
}
Isn't the value stored global because of the way the function is called? Or am I doing something else entirely wrong?