Buenos días,
Tengo una duda sobre la comunicación entre Arduinos de distinto modelo con el protocolo i2c. El caso es que yo tengo conectados un Arduino nano 33 IoT y un Arduino nano 33 BLE sense. Ambos teóricamente funcionan con el mismo voltaje. Entiendo que si fueran de voltajes distintos necesitaría un level shifter. Igualmente he probado del conectar el GND. El caso es que he probado de enviar la palabra 'hello' entre ambos. El código es de la misma web de Arduino. Está palabra se manda perfectamente entre Arduinos iguales. Es decir, entre dos IoT. Pero si lo intentas entre un BLE sense y un IoT se recibe algo como: → @o hello @o hello @o hello @o hello @o hello @o hello. He visto que en internet todos los Arduinos interconectados son del mismo modelo, es decir, UNO con UNO. Me pregunto si es posible mandar información entre Arduinos distintos y si es así que tengo que modificar del código? He probado muchas cosas y no sé qué más puedo hacer.... Muchísimas gracias.
Transmisor:
#include <Wire.h>
void setup() {
Wire.begin(0x60); // join i2c bus with addresss
Wire.onRequest(requestEvent); // register event
}
void loop() {
delay(100);
}
// function that executes whenever data is requestedd by master
// this function is registered as an event, see setup()
void requestEvent() {
Wire.write("hello "); // respond with message of 6 bytes
// as expected by master
}
Receptor/lector:
#include <Wire.h>
void setup() {
Wire.begin(); // join i2c bus (address optionall for master)
Serial.begin(9600); // start serial for output
}
void loop() {
Wire.requestFrom(0x60, 6); // request 6 bytes from slave device #8
while (Wire.available()) { // slave may send less than requested
char c = Wire.read(); // receive a byte as character
Serial.print(c); // print the character
}
delay(500);
}
`