¿Alguien me puede ayudar con mi código?

llevo ya bastante tiempo intentando resolver el problema de mi proyecto, ando desesperado
El propósito de mi código es tener un mando / control remoto de radio frecuencia que mueva un bot. El control me causa conflicto, lo que hace es: tiene un sensor de color, se activa un interruptor para decir si estoy solo viendo colores o pasar a guardar los valores que tiene el sensor a la eeprom con otro botón es decir existirá un botón para (Izquierda, Derecha, adelante, Atrás). cuando el interruptor de cambio esta desactivado y solo lee el sensor y ve el color que llegaste a guardar en la eeprom en teoría mandara por radio frecuencia el código correspondiente al Bot para que se mueva.
Los botones no hacen nada respecto al codigo (principal problema)
Estaré muy agradecido si me encuentran el error o me ayuden :confused:

mi codigo es este...

#include <RH_ASK.h>
#ifdef RH_HAVE_HARDWARE_SPI
#include <SPI.h> // Not actually used but needed to compile
#include <EEPROM.h> // libreria EEPROM
#endif

RH_ASK driver;

////////////////////////////EEPROM////////////////////////////////////
int saveAdeR = EEPROM.read(0);
int saveAdeV = EEPROM.read(1);
int saveAdeA = EEPROM.read(2);

int saveIzqR = EEPROM.read(3);
int saveIzqV = EEPROM.read(4);
int saveIzqA = EEPROM.read(5);

int saveDerR = EEPROM.read(6);
int saveDerV = EEPROM.read(7);
int saveDerA = EEPROM.read(8);

int saveAtraR = EEPROM.read(6);
int saveAtraV = EEPROM.read(7);
int saveAtraA = EEPROM.read(8);

////////////////////////////Variables////////////////////////////////////
int tolerancia = 4; // hacer comparativa en loop
int Rp; // tolerancia de rojo plus
int Rm; // tolerancia de rojo minus

int Vp; // tolerancia de verde plus
int Vm; // tolerancia de verde minus

int Ap; // tolerancia de azul plus
int Am; // tolerancia de azul minus

/// LED interuptores/ botones ON- OFF
int val = 0;
int state = 0;
int old_val = 0;

int val2 = 0;
int state2 = 0;
int old_val2 = 0;

////////////////////////////PIN//////////////////////////////////////////
/// LED
int LEDlec = 13; // LED espera de gravado EEPROM
int LEDrad = 11; // lED para radio frecuencia
int LEDsen = 10; // Led del sensor

///Interruptor
boolean Cambio = 9;
///Botón
boolean Adelante = 8;
boolean Izquierda = 7;
boolean Derecha = 6;
boolean Atras = 5;
boolean Claxon = 4;
boolean BotSen = 3;
////////////////////////////PIN-Sensor/////////////////////////////////////////
const int s0 = A0;
const int s1 = A1;
const int s2 = A2;
const int s3 = A3;
const int out = 2; //salida del sensor

//////////////////////////////////////////////////////////////////////////////

void setup()
{
#ifdef RH_HAVE_SERIAL
Serial.begin(9600); // Debugging only
#endif
if (!driver.init())
#ifdef RH_HAVE_SERIAL
Serial.println("init failed");
#else
;

#endif
////////////////////////entradas//////////////////////////////////////////////
pinMode(Cambio, INPUT_PULLUP); // Cambio entre grabado EEPROM y lectura del sensor
pinMode(Adelante, INPUT); // Grabar Adelante
pinMode(Izquierda, INPUT); // Grabar Izquierda
pinMode(Derecha, INPUT); // Grabar Derecha
pinMode(Atras, INPUT); // Grabar atras
pinMode(Claxon, INPUT); // Claxon
pinMode(BotSen, INPUT_PULLUP); // Control del LEDsen
////////////////////////salidas//////////////////////////////////////////////
pinMode(LEDlec, OUTPUT); // LED Lectura de grabado
pinMode(LEDrad, OUTPUT); // lED para radio frecuencia
pinMode(LEDsen, OUTPUT); //reservado a led sensor
//pinMode(12, ); // esta recerbado por radiohead
///////////////////////Valores del sensor////////////////////////////////////
pinMode(s0, OUTPUT); // intencidad del sensor
pinMode(s1, OUTPUT); // intncidad del sensor
pinMode(s2, OUTPUT); // confi. sensor de color
pinMode(s3, OUTPUT); // confi. sensor de color
pinMode(out, INPUT); // valor salida
//declarar sensor de inicio
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
////////////////////////////////////////////////////////////////////////////
//rf_driver.init(); // inicializa objeto con valores por defecto

Serial.print("\t");
Serial.print("R.ad:");
Serial.print(EEPROM.read(0));
Serial.print("\t");
Serial.print("V.ad:");
Serial.print(EEPROM.read(1));
Serial.print("\t");
Serial.print("A.ad:");
Serial.println(EEPROM.read(2));

Serial.print("\t");
Serial.print("R.iz:");
Serial.print(EEPROM.read(3));
Serial.print("\t");
Serial.print("V.iz:");
Serial.print(EEPROM.read(4));
Serial.print("\t");
Serial.print("A.iz:");
Serial.println(EEPROM.read(5));

Serial.print("\t");
Serial.print("R.der:");
Serial.print(EEPROM.read(6));
Serial.print("\t");
Serial.print("V.der:");
Serial.print(EEPROM.read(7));
Serial.print("\t");
Serial.print("A.der:");
Serial.println(EEPROM.read(8));

Serial.print("\t");
Serial.print("R.atra:");
Serial.print(EEPROM.read(9));
Serial.print("\t");
Serial.print("V.atra:");
Serial.print(EEPROM.read(10));
Serial.print("\t");
Serial.print("A.atra:");
Serial.println(EEPROM.read(11));

}

void loop()
{
int R = getRojo();
delay (100);
int V = getVerde();
delay (100);
int A = getAzul();
delay (100);

Rp = R + tolerancia;
Rm = R - tolerancia;

Vp = V + tolerancia;
Vm = V - tolerancia;

Ap = A + tolerancia;
Am = A - tolerancia;

Serial.print("\t");
Serial.print("R:");
Serial.print(R);
Serial.print("\t");

Serial.print("V:");
Serial.print(V);
Serial.print("\t");

Serial.print("A:");
Serial.println(A);

val2 = digitalRead(Cambio);
if ((val2 == HIGH) && (old_val2 == LOW)) {
state2 = 1 - state2;
delay(10);
}
old_val2 = val2;
if (state2 == 1) {
if ((Rp <= saveAdeR && Rm >= saveAdeR) && (Vp <= saveAdeV && Vm >= saveAdeV) && (Ap <= saveAdeA && Am >= saveAdeA )) { // mandar Adelante a radofrecuencia
digitalWrite(LEDrad, HIGH);
const char *msg = "1"; // 1 = adelante en el coche
driver.send((uint8_t *)msg, strlen(msg)); // envia el mensaje
driver.waitPacketSent(); // espera al envio correcto del mensaje

}
else if ((Rp <= saveAtraR && Rm >= saveIzqR) && (Vp <= saveAtraV && Vm >= saveAtraV) && (Ap <= saveAtraA  && Am >= saveAtraA )) { // mandar Atras a radofrecuencia
  digitalWrite(LEDrad, HIGH);
  const char *msg = "2";                                                                  //  2 = Atras en el coche
  driver.send((uint8_t *)msg, strlen(msg));                                                                                                     // envia el mensaje
  driver.waitPacketSent();                                                             // espera al envio correcto del mensaje
  
}
else if ((Rp <= saveIzqR && Rm >= saveIzqR) && (Vp <= saveIzqV && Vm >= saveIzqV) && (Ap <= saveIzqA  && Am >= saveIzqA )) { // mandar Iquierda a radofrecuencia
 digitalWrite(LEDrad, HIGH);
  const char *msg = "3";                                                               //  3 = Izquierda en el coche
  driver.send((uint8_t *)msg, strlen(msg));                                            // envia el mensaje
  driver.waitPacketSent();                                                // espera al envio correcto del mensaje
 
}
else if ((Rp <= saveDerR && Rm >= saveDerR) && (Vp <= saveDerV && Vm >= saveDerV) && (Ap <= saveDerA  && Am >= saveDerA )) { // mandar Derecha a radofrecuencia
  digitalWrite(LEDrad, HIGH);
  const char *msg = "4";                                        //  4 = Derecha en el coche
  driver.send((uint8_t *)msg, strlen(msg));                                                                                                     // envia el mensaje
  driver.waitPacketSent();                                              // espera al envio correcto del mensaje
  
}

} else {
if (Adelante == HIGH) { // Grabar Adelante

  EEPROM.put(0, "R" );          // Escribe dato R
  EEPROM.put(1, "V" );          // Escribe dato V
  EEPROM.put(2, "A" );          // Escribe dato A

  digitalWrite (LEDlec, HIGH);
  delay (400);
  digitalWrite (LEDlec, LOW);
  delay (200);
  digitalWrite (LEDlec, HIGH);
  delay (300);
  digitalWrite (LEDlec, LOW);
}

else if (Izquierda == HIGH) { // Grabar Izquierda

  EEPROM.put(3, "R" );          // Escribe dato R
  EEPROM.put(4, "V" );          // Escribe dato V
  EEPROM.put(5, "A" );          // Escribe dato A

  //espera de gravado
  digitalWrite (LEDlec, HIGH);
  delay (400);
  digitalWrite (LEDlec, LOW);
  delay (200);
  digitalWrite (LEDlec, HIGH);
  delay (300);
  digitalWrite (LEDlec, LOW);
}

else if (Derecha == HIGH) { // Grabar Derecha

  EEPROM.put(6, "R" );          // Escribe dato R
  EEPROM.put(7, "V" );          // Escribe dato V
  EEPROM.put(8, "A" );          // Escribe dato A

  //espera de gravado
  digitalWrite (LEDlec, HIGH);
  delay (400);
  digitalWrite (LEDlec, LOW);
  delay (200);
  digitalWrite (LEDlec, HIGH);
  delay (300);
  digitalWrite (LEDlec, LOW);
}
else if (Atras == HIGH ) {// Grabar Atras

  EEPROM.put(9, "R" );          // Escribe dato R
  EEPROM.put(10, "V" );          // Escribe dato V
  EEPROM.put(11, "A" );          // Escribe dato A

  //espera de gravado
  digitalWrite (LEDlec, HIGH);
  delay (400);
  digitalWrite (LEDlec, LOW);
  delay (200);
  digitalWrite (LEDlec, HIGH);
  delay (300);
  digitalWrite (LEDlec, LOW);
}

}
val = digitalRead(BotSen);
if ((val == HIGH) && (old_val == LOW)) {
state = 1 - state;
delay(10);
}
old_val = val;
if (state == 1) {
digitalWrite(LEDsen, HIGH);
} else {
digitalWrite(LEDsen, LOW);
}
if (Claxon == HIGH) {
digitalWrite(LEDrad, HIGH);
const char *msg = "5"; // Claxon
driver.send((uint8_t *)msg, strlen(msg)); // envia el mensaje
driver.waitPacketSent(); // espera al envio correcto del mensaje

} else{
digitalWrite(LEDrad, LOW);
}
}

int getRojo() {
//leer color rojo
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
int ROJO = pulseIn(out, LOW);
return ROJO;
}

int getAzul() {
//leer color azul
digitalWrite(s2, LOW);
digitalWrite(s3, HIGH);
int AZUL = pulseIn(out, LOW);
return AZUL;
}

int getVerde() {
//leer color verde
digitalWrite(s2, HIGH);
digitalWrite(s3, HIGH);
int VERDE = pulseIn(out, LOW);
return VERDE;
}

Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.

@zlaift
Por favor inserta su código de acuerdo a las reglas del foro punto 7

Moderador:
Por favor, lee las Normas del foro y edita tu título.
Usa un titulo que no use palabras consideradas inútiles por el punto 5 de las normas sobre cómo usar títulos adecuados.