Actualmente estoy trabajando con algunos Nano v2. El sistema básicamente envía algunos datos a través de bluetooth con un nano y otro está recibiendo. Después de ese paso, necesito enviar estos datos a un controlador principal, un Red Bear Duo. Quiero enviar estos datos lo más rápido posible, manteniendo un bajo consumo de energía. Así decidí apostar por la comunicación I2C. Sin embargo, usar el nano como maestro todo funciona bien, necesito que el Duo sea el maestro y parece que el nano no implementa un modo esclavo para I2C.
void setup() {
Wire.begin(0x08); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany) {
while (1 < Wire.available()) { // loop through all but the last
char c = Wire.read(); // receive byte as a character
Serial.print(c); // print the character
}
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer
}
Este es el código que estoy usando para Duo como esclavo. Compilarlo para el nano da error on begin (int) y onReceive, que no están implementados. Gracias.