Как прочитать по последовательному порту UART значение с ячейки EEPROM?

Добрый день. Делаю систему ИК- пульта . Для этого использую ячейки памяти EEPROM. Столкнулся с проблемой когда нужно прочитать значение из конкретной ячейки память EEPROM с помощью последовательного порта. Подскажите как это лучше сделать. Записываю в ячейку памяти EEPROM значение и это конкретное значение нужно прочитать уже на другой плате Arduino UNO.

Скетч платы передающей значения на две другие платы.

#include <EEPROM.h>
#include <SoftwareSerial.h>
#define RX 12
#define TX 13
SoftwareSerial mySerial(RX,TX);
const int BUT = 10;
const int BUT2 = 11;
const int BUT3 = 7;
int State;
int State2;
int State3;
int a,n,c;

void setup() 
{
 pinMode(BUT, INPUT_PULLUP);
 pinMode(BUT2,INPUT_PULLUP);
 pinMode(BUT3,INPUT_PULLUP);
 int State = 1;
 int State2 = 1;
 int State3 = 1;
 Serial.begin(1200);
 mySerial.begin(1200);
 randomSeed(analogRead(0));
}

void loop() 
{ 
 State3 = digitalRead(BUT3);
 if(State3 == LOW)
 {
  a = random(2,255);
  EEPROM.update(0,a);
  n = EEPROM[0];
  }
 State = digitalRead(BUT);
 if(State == LOW)
 {
   Serial.println(n);
   Serial.setTimeout(1000);
   }
State2 = digitalRead(BUT2);
 if(State2 == LOW)
 {
   mySerial.println(n);
   mySerial.setTimeout(1000);
   }
   if(Serial.available()>0)
   {
     EEPROM.write(1,Serial.read());
     c = EEPROM[1];
     if(c = 1)
     {
       Serial.println("Пользователь 1. Доступ открыт");
       Serial.setTimeout(1000);
       }
     }
     
}

Скетч ИК-передатчика

#define cr_pin 9
#define RX 12
#define TX 13
#include <EEPROM.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(RX,TX);
const int BUT = 10;
int State = 1;
int n;
int a;
void setup() 
{
  pinMode(BUT,INPUT_PULLUP);
  Serial.begin(1200);
  mySerial.begin(1200);
  tone(cr_pin,38000);
}

void loop() 
{
  if(mySerial.available()>0)
  {
    EEPROM.write(1,mySerial.read());
    n = EEPROM [1];
    mySerial.println(n);
    mySerial.setTimeout(1000);
  }
    State = digitalRead(BUT);
    if(State == LOW)
  {
    EEPROM.write(3,10);
    a = EEPROM[3];
    Serial.println(a);
    Serial.println(n);
    Serial.setTimeout(1000);
  }
}

Скетч приемника

#include <EEPROM.h>
#include <SoftwareSerial.h>
#define  RX 12
#define  TX 13
SoftwareSerial mySerial(RX,TX);
char a , b , c;
char target1[1];
char target2(2,255); 
const int ledPin = 10;
void setup()
{
 Serial.begin(1200);
 mySerial.begin(1200);
 pinMode(ledPin, OUTPUT);
 }
 void loop()
 {
   if(mySerial.available()>0)
   {
     EEPROM.write(0,mySerial.read());
     a = EEPROM [0];
     mySerial.println(a);
     mySerial.setTimeout(1000);
     }
     if(Serial.available()>0)
     {
       if(Serial.find(target2))
       {
     EEPROM.write(1,Serial.read());
     b = EEPROM [1];
     Serial.println(b);
     Serial.setTimeout(1000);
       }
       if(Serial.find(target1))
       {
         EEPROM.write(2,Serial.read());
         c = EEPROM[2];
         mySerial.println(c);
         mySerial.setTimeout(1000);
         }
     }
     if(a == b, a != 0, b != 0)
     {
       digitalWrite(ledPin, HIGH);
       }
   }
if ('?' == Serial.read()) { Serial.write(EEPROM[1]); }

А что означает переменная ‘?’ ?

Это не переменная, а литерал.

Спасибо за пояснение

Георгий, вам стоит повторить логические операции в языке