El artículo parece bastante confuso: el texto y las cifras no coinciden. Intentaré presentar aquí los mismos tres esquemas que allí, con una explicación más acertada.
Suponga que U1 es su microcontrolador, y P1 es un pin de E / S configurado como entrada. (Podría ser cualquier puerta lógica, en realidad). Otras conexiones a U1 no son tan relevantes, por lo que no se muestran, pero supongamos que tiene conexiones de alimentación y otras necesidades.
(1) Si se presiona el botón, el puerto P1 está conectado a tierra, y detectará un nivel lógico bajo. Pero cuando se suelta el botón, el puerto no está conectado en ninguna parte, sino que está flotando . No hay un voltaje definido presente, por lo que incluso un ruido menor puede hacer que la entrada digital cambie de un valor a otro. También puede oscilar y provocar un mayor consumo de energía. No es bueno.
(2) Ahora, cuando se presiona el botón no , el puerto detectará un nivel alto, ya que está conectado directamente a Vcc. Pero si se presiona el botón, Vcc se cortocircuitará a tierra, y la fuente de alimentación probablemente se quemará y morirá. Peor aún.
(3) Aquí, si no se presiona el botón, el puerto volverá a detectar un nivel lógico alto: está tirado alto a través de la resistencia. (No hay pérdida de voltaje en la resistencia, ya que la impedancia de la entrada digital es muy alta y, por lo tanto, la corriente al puerto es aproximadamente cero).
Cuando se presiona el botón, el puerto se conecta directamente a tierra, por lo que detecta un nivel bajo. Ahora, una corriente fluirá desde Vcc a tierra, pero la resistencia la limitará a algo sensible. Esto es bueno.
En este esquema, un botón no presionado se lee como un valor alto (1), y un botón presionado se lee como bajo (0). Esto se denomina lógica active-low .
El intercambio de la resistencia y el interruptor lo invertirían, de modo que un botón no presionado se leería como bajo (0), y un botón presionado como alto (1). ( active-high logic.)
simular este circuito : esquema creado usando CircuitLab