Conectar dos arduinos con I2C y el analogRead

Hola amigos!
Quisiera hacerles dos preguntas relacionadas con la comunicación entre Arduinos mediante I2C. La primera: ¿Es posible enviar distintas variables (dos o más) de un Arduino a otro? Tengo un código que funciona para una variable y conecta dos Arduino mediante I2C. Cada Arduino con su código. El "master" (o el que envía datos) sólo envía los datos de un random a un "esclavo" que los lee y los muestra en pantalla. He probado de todo, y no consigo enviar datos de por ejemplo dos randoms diferentes: randNumber = random(300) y randNumber2 = random(1000, 2000). Me gustaría enviar la variable 1 y 2 y leerlas e imprimirlas en pantalla en el Arduino receptor. Adjunto el código:

El maestro:

////////////////////// ARDUINO MAESTRO /////////////////

#include "Wire.h";
const byte I2C_SLAVE_ADDR=0x20;
long randNumber;

void setup() {
  Wire.begin();
  randomSeed(analogRead(0));
  Serial.begin(9600);
}
void loop() {
  sendToSlave();
}

void sendToSlave()
{
  
  randNumber = random(300);
  Serial.println(randNumber);
  Wire.beginTransmission(I2C_SLAVE_ADDR);
  Wire.write(randNumber);
  Wire.endTransmission();
}

Y el esclavo:

////////////// ARDUINO ESCLAVO /////////

#include "Wire.h"

const byte I2C_SLAVE_ADDR = 0x20;

void setup() {
  Wire.begin(I2C_SLAVE_ADDR);
  Wire.onReceive(receiveEvent);
  Serial.begin(9600);

}
void loop() {
}


void receiveEvent(int bytes)
{
  long randNumber = 0;
  while (Wire.available())
  {
    randNumber = Wire.read();
    Serial.println(randNumber);
  }
}

La segunda pregunta: ¿Sería posible prescindir de la comunicación I2C y enviar los datos a través de un analogWrite()? Por ejemplo del pin 9 de un Arduino sale la lectura en forma de analogWrite(RandNumber) y lo lee el pin 3 del Arduino receptor en forma de analoRead.
Muchas gracias,

Hay muchos trabajos o hilos similares en el foro, porque no buscas aquellos relacionados con I2C.
Lupa (buscador) arriba derecha.