contatore

Concordo. Alla fine un if è un test per verificare se una condizione è vera o falsa. Un test di uguaglianza con un valore 1 o 0 altro non è che un test di verifica se la variabile o la risorsa è vera o falsa, è a 1 o è a 0.
HIGH è una define che viene sostituita con 1. Quindi digitalRead(pin)==HIGH equivale a chiedere se digitalRead(pin)==1 che non è altro che controllare se il bit rappresentante lo stato del pin è su alto o basso, cioè 1 o 0.
E' come quando si fanno confronti con i booleani, if(boolVariabile): anche in questo caso è un confronto implicito con 1, o true che dir si voglia: if(boolVariabile == true)