Ich (der ich mich selber hier auch eher als "Software-Mensch" bezeichnen würde) denke, dass die Varianten gleichwertig sind.
Im einen Fall bedeutet das Anliegen einer Spannung (
HIGH-Wert, z.B. 5V oder 3.3V)
Kein Signal und das Fehlen von Spannung (
LOW-Wert, 0V bzw. Masse)
Signal. Im anderen Fall ist es genau umgekehrt. Physikalisch ist die eine Variante nicht "sauberer" als die andere, abfragen kann man natürlich auch beides.
Warum ein Pullup- bzw. Pulldown-Widerstand notwendig ist, kann man z.B im
RoboterNETZ oder im
Elektronik Kompendium nachlesen.
Glücklicherweise haben die ATmega-Prozessoren, und damit auch die Arduinos, bereits einen solchen Widerstand eingebaut, den man Software-seitig zuschalten kann. Das ist die beschriebene Initialisierung des
pinMode mit
INPUT_PULLUP. Ein S0-Zähler lässt sich also ohne Basteleien direkt an den Arduino anschließen.