Accendere spegnere led con un solo tasto del radiocomando 433

Buongiorno a tutti voi, mi presento, sono Lodovico, ho fatto già qualcosa con arduino ma solamente copiando ed incollando, sono forte nei collegamenti e saldature, meno nella compilazione del codice ed è per questo vi chiedo un aiuto.

Nello specifico riesco sempre copiando ad accendere e spegnere il led sul pin 6 attraverso due tasti (codici) differenti, ma ho la necessità per mancanza di tasti sul radiocomamdo di usare un solo tasto sia per accendere che per spegnere il led, attualmente utilizzo il seguente codice:

/*
 Example for receiving
 
 http://code.google.com/p/rc-switch/
 
 If you want to visualize a telegram copy the raw data and 
 paste it into http://test.sui.li/oszi/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() 
{
 pinMode(13, OUTPUT);
 pinMode(6, OUTPUT);
 Serial.begin(9600);
 mySwitch.enableReceive(0);  
 // Receiver on inerrupt 0 => that is pin #2
}

void loop() 
{
 if (mySwitch.available()) 
 {
   long int value = mySwitch.getReceivedValue();
   if (value == 0)
   {
     Serial.println("error de codigo");
    }
   else
   {
     Serial.print("codigo Recibido");
     Serial.println(value);
     Serial.println( mySwitch.getReceivedValue() );
     //// compara dato recibido
     if(value == 4277329)  //presa A On
       {
         digitalWrite(6,LOW);
         Serial.println("led on");
         
   }
   
   if(value == 4277332)   //presa A Off
       {
         digitalWrite(6,HIGH);
         Serial.println("led OFF");
         
   }
   
 if(value == 4277265)   // presa B On
       {
         digitalWrite(6,LOW);
         Serial.println("led on");
         
   }
   
   if(value == 4277268)  // presa B Off
       {
         digitalWrite(6,HIGH);
         Serial.println("led OFF");
         
   }
   
 if(value == 4277313)   // presa C On
       {
         digitalWrite(6,LOW);
         Serial.println("led on");
         
   }
   
   if(value == 4277316)  // presa C Off
       {
         digitalWrite(6,HIGH);
         Serial.println("led OFF");
         
         
    }  
   mySwitch.resetAvailable();
 }
}
}

Grazie in anticipo!

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

interroghi il pin a che valore è. Invece di

if(value == 4277329)  //presa A On
{ digitalWrite(6,LOW); Serial.println("led on");
}
if(value == 4277332)   //presa A Off
{ digitalWrite(6,HIGH); Serial.println("led OFF");
}

chiedi al pin in che stato è

if(value == 4277329)  //presa A On/off
{ if(digitalRead(6)==LOW)
  { digitalWrite(6,LOW); Serial.println("led off");
  }
  else
  { digitalWrite(6,HIGH); Serial.println("led on");
  }
}

Grazie Igor, funziona!
solamente un'altro piccolo aiuto, se tengo premuto poco più a lungo il pulsante continua ad accendersi e spegnersi, come si può risolvere?

O con una piccola delay() ma non è molto bello
Oppure usando la millis() per verificare sia passato un tot di tempo (mezzo secondo) tra una pressione e l'altra. Questa non è semplicissima. Hai già usato millis() e capito lo sketch BlinkWithoutDelay ?

Ho provato con un delay da 500 a 2000 ma il risultato non è quello sperato, per quanto riguarda millis non saprei come fare
Ciao!

Scusate ancora,nessuno può aiutarmi a risolvere il problema, Grazie!