Problema I2C con Arduino UNO r4 Wifi

Hola.

Estoy intentando hacer un proyecto en el que necesito conectar 3 Arduinos para compartir información. Como es algo que no había hecho hasta ahora, he empezado simplemente enviando y recibiendo una palabra. Los códigos y los esquemas los he cogido directamente de la web de Arduino: https://docs.arduino.cc/learn/communication/wire/.

El problema llega con los Arduino UNO r4 Wifi con los que estaba probando y es que no funciona nada de lo que he intentado. Al conectarlo en los UNO r3, sin problema, pero en los r4 no hace nada. He probado como en el esquema, en los pines A4 y A5, con resistencias 4,7 al pin 5v como en otros esquemas que encontré por ahí y nada funciona. ¿Se os ocurre qué puede ser para que en los r3 funcione y los r4 no?

Muchas gracias de antemano.

Código del maestro:

#include <Wire.h>

void setup() {
  Wire.begin();               //Inicia como maestro
  Serial.begin(9600);     
}

void loop() {
  Wire.requestFrom(8, 6);     //Pide 6 bytes al dispositivo 8
  while (Wire.available()) {
    char c = Wire.read();     //Recibe los bytes uno a uno
    Serial.print(c);
  }
  delay(500);
}

Código del esclavo:

#include <Wire.h>

void setup() {
  Wire.begin(8);                //Inicia como dispositivo 8
  Wire.onRequest(requestEvent); //Cuando recibe dato lo manda a esta función
}

void loop() {
  delay(100);
}


void requestEvent() {
  Wire.write("hello ");         //Responde al maestro
}

I2C

La interfaz I2C está disponible en los pines SDA y SCL. A diferencia del clásico Arduino Uno, estos pines no son alternativas a los pines A4 y A5. Esto significa que aún puede usar los A4 y A5 de Uno WiFi Rev2 para lo que desee cuando un dispositivo I2C está conectado a SDA y SCL.

Traducido de: Getting started with the Arduino Uno WiFi Rev2 | Arduino

Ya los conecté tanto en los SDA y SCL como en los A4 y A5. En los UNO r3 sin problema, en los UNO r4 no hace nada.

Por las dudas, las resistencias deben ser de 4.7 Kohms (4700 ohms) a 5.1 Kohms, y no vienen montadas en la placa así que debes agregarlas externamente.
Y debes agregarlas si o si porque de otro modo el bus I2C no funciona.

De la documentación de Uno R4 WiFi

i2c

Solucionado, acabo de seguir tu esquema y funciona.
Muchísimas gracias, me estaba volviendo loco.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.