I have tried it several times myself but i never could send or receive it properly. I am asking myself if it is possible and if so could someone explain how?
Cheers.
I have tried it several times myself but i never could send or receive it properly. I am asking myself if it is possible and if so could someone explain how?
Cheers.
Below is a simple rewrite of the Master Writer/Slave Receiver Wire Tutorial, https://www.arduino.cc/en/Tutorial/MasterWriter, for a vector of floating-point numbers.
Master Writer Sketch
#include <Wire.h>
const int DEVICE = 8;
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
const int VEC_MAX = 6;
float vec[VEC_MAX];
uint8_t* vp = (uint8_t*) vec;
Wire.requestFrom(DEVICE, sizeof(vec));
while (Wire.available()) {
*vp++ = Wire.read();
}
for (int i = 0; i < VEC_MAX; i++) {
Serial.println(vec[i]);
}
delay(500);
}
Slave Receiver Sketch
#include <Wire.h>
const int DEVICE = 8;
const int VEC_MAX = 6;
float vec[VEC_MAX] = { ... };
void setup() {
Wire.begin(DEVICE);
Wire.onRequest(requestEvent);
}
void loop() {
delay(100);
}
void requestEvent() {
Wire.write((uint8_t*) vec, sizeof(vec));
}
Is it possible to send a float Array over I2c
So I would answer - Yes.