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.