Sí, tienes que almacenarlos y luego darle el trato que quieras a esos valores, como por ejemplo ir displayándolos cada cierto tiempo.
Lo que debes hacer si vas a enviar varios valores es crear un protocolo de comunicación entre los 2 arduinos que se adapte a tus necesidades.
Un ejemplo de comunicación entre los dos arduinos puede ser:
-- placa2 -> placa1: Quiero la lectura del sensor x
-- placa1 -> placa2: La lectura es y
de este modo la placa2 inicia la comunicación haciendo una petición del valor del sensor x a la placa1, la cuál responderá con el valor de x.
Otro ejemplo de comunicación podría ser el siguiente:
-- placa1 -> placa2: El sensor x vale y
de este modo la placa2 puede recibir un comando en cualquier momento, con lo cuál tenemos siempre que estar leyendo del puerto serie por si nos llegan nuevos datos.
Ahora te voy a dar una posible implementación del segundo ejemplo:
Para la placa1:
int interruptor1 = 3; // Interruptor 1
int interruptor2 = 4; // Interruptor 2
void setup() {
pinMode(interruptor1, INPUT);
pinMode(interruptor2, INPUT);
Serial.begin(9600);
}
/* Función para leer el estado de un interruptor, devuelve 1
* si está activado y 0 si está desactivado */
byte leerEstadoInterruptor(int numInterruptor) {
int aux;
switch (numInterruptor) {
case 1:
aux = digitalRead(interruptor1);
break;
case 2:
aux = digitalRead(interruptor2);
break;
default:;
}
if (aux == HIGH) {
return 1;
}
return 0;
}
/* Función para enviar la lectura del sensor. Se envía primero
* un byte para indicar de que sensor se trata y después el
* valor del mismo */
void enviarLectura(int numSensor) {
Serial.print(numSensor, BYTE); //Se envía en formato BYTE para que no haga
//la conversión a ASCII.
Serial.print(leerEstadoInterruptor(numSensor)); //Enviamos el valor
//del sensor
}
void loop() {
enviarLectura(1);
enviarLectura(2);
delay(1000);
}
Para la placa2:
int estadoInterruptor1;
int estadoInterruptor2;
int interruptorRecibido;
void setup() {
Serial.begin(9600);
}
void recibirLectura() {
if (Serial.available() > 0) {
interruptorRecibido = Serial.read();
switch (interruptorRecibido) {
case 1:
estadoInterruptor1 = Serial.read();
break;
case 2:
estadoInterruptor2 = Serial.read();
break;
default:;
}
}
}
void loop() {
recibirLectura();
}
Este ejemplo lo que hace es enviar cada 1 segundo el estado de 2 interruptores colocados en los pines 3 y 4. Para diferenciar de que interruptor se trata lo que hace es primero enviar un byte que indica el interruptor del que se trata y después envía otro byte con el estado del mismo.
Espero que te sirva de ayuda.
Saludos chato_sat