Io_me:
Era solo che non mi tornava il conto con il tuo if (variabile==HIGH). HIGH e LOW, che io sappia, si usano solo sulle booleane, i cui valori non vanno oltre l'1
Nell'ambiente Arduno in realtà sono solo degli interi numerici ...
#define HIGH 0x1
#define LOW 0x0
#define INPUT 0x0
#define OUTPUT 0x1
#define true 0x1
#define false 0x0
... come tali li assegni a variabili numeriche.
Guglielmo