5 pulsanti con debounce per rele

I valori HIGH & LOW non sono rispettivamente 1 & 0 quindi byte è corretto no?
Cmq funziona, per quanto riguarda lo stralcio di codice con i puntatori riportato da Claudio, fino ad ora l'ho ricostruito in questo modo (soprattutto con l'aiuto di un programmatore dove lavoro)

# define ACCESO 1
# define SPENTO 0
# define PRESS_LEVEL 0
# define LED1 8
# define LED2 9
# define LED3 10
# define LED4 11
# define LED5 12
# define BUTTON1 '1'
# define BUTTON2 '2'
# define BUTTON3 '3'
# define BUTTON4 '4'
# define BUTTON5 '5'

byte vecchio_val1 = 0;
byte vecchio_val2 = 0;
byte vecchio_val3 = 0;
byte vecchio_val4 = 0;
byte vecchio_val5 = 0;

byte stato1 = 0;
byte stato2 = 0;
byte stato3 = 0;
byte stato4 = 0;
byte stato5 = 0;

void readPuls(byte pin, byte *vecchio_val, byte *stato)
{
  byte in = digitalRead(pin);
  if (in != *vecchio_val)
  {
    *vecchio_val = in;
    if (PRESS_LEVEL == in) {
      *stato ^= 1;
    }
  }
}


void setup ()
{

}
void loop(void)
{
  readPuls(BUTTON1, &vecchio_val1, &stato1);
  readPuls(BUTTON2, &vecchio_val2, &stato2);
  readPuls(BUTTON3, &vecchio_val3, &stato3);
  readPuls(BUTTON4, &vecchio_val4, &stato4);
  readPuls(BUTTON5, &vecchio_val5, &stato5);


  digitalWrite(LED1, stato1 ? ACCESO : SPENTO);
  digitalWrite(LED2, stato2 ? ACCESO : SPENTO);
  digitalWrite(LED3, stato3 ? ACCESO : SPENTO);
  digitalWrite(LED4, stato4 ? ACCESO : SPENTO);
  digitalWrite(LED5, stato5 ? ACCESO : SPENTO);

}

Ma ancora non funziona, oggi se il collega mi dedica del tempo "debugghiamo".
E per quanto riguarda i pin che alcuni funzionano e altri no, mi sono (finalmente) letto vari documenti per quanto riguarda l'utilizzo di tutti i pin del Node e ho le idee più chiare sul possibile (o meno) utilizzo degli IO.