digitalWrite en 0 ou LOW ne répond pas

Pour Arduino, les définitions LOW et HIGH sont respectivement à 0 et 1.

On ne peut donc pas prévoir le comportement d'un programme pour toutes autres valeurs.

Si, dans une fonction, la comparaison se limite à 0 et not(0), pas de problèmes car on englobe toutes les valeurs possibles.

Par contre, dans le cas d'une comparaison avec la constante HIGH qui vaut 1, une valeur autre que 1 et 0 ne donnera pas forcément une égalité à HIGH. Même si on sait qu'elle n'est pas égale à 0 donc logiquement !LOW soit HIGH.

Il est donc expressément recommandé d'utiliser LOW et HIGH pour garantir le bon fonctionnement d'un programme. De plus, toute évolution de leurs valeurs réelles n'aura aucune influence sur le programme.