PinMode INPUT_PULLUP

En la mayoría de threads que lei, he visto cosas como "No tengo una resistencia de 10k para mi pulsador" "De que valor puedo poner la resistencia?" Otros que dicen que el valor de las mismas pueden ir desde 5 a 20k, pero siempre se limitan a buscar una resistencia externa.

Mi duda es, por qué pocas veces recomiendan la resistencia interna del mismo controlador? No es mas fácil hacerlo por código que agregar una resistencia a cada pulsador?

Yo tengo armado un proyecto Stand-Alone, y tengo varios botones usando la resistencia interna del Atmega, pero viendo que pocas veces hacen mención al INPUT_PULLUP me pregunto si hay alguna consecuencia de hacer esto a usar una resistencia externa.

Ninguna excepto que te ahorras la resistencia y que el estado activo se invierte.

Con esto último quiero decir que para que dicha entrada se vea como "activada", la tienes que conectar a tierra mediante un pulsador o interruptor o lo que fuera. En ese caso si digitalRead retorna el equivalente a HIGH, es porque la entrada no se ha accionado.

Bueno me quedo mas tranquilo porque ya tenia todo armado así, lo del estado invertido lo tenia claro, pero me quedaba la duda de por que no lo usan.

Deben haber varios que detienen o limitan su proyecto porque no cuentan con una resistencia de determinado valor, y simplemente lo pueden solucionar por código, lo cual me parece genial.

Saludos!

Lo que no se puede programar por código es una resistencia pull-down; esas son externas sí o sí.

Todas las dudas existen por ignorancia. El 99% de los que consultan no investigan ni siquiera un poco al respecto.
Se lanzan y conectan algo a un pin, ejecutan el código y luego dicen… “Ehhhh no toco nada y me da 0 o 1, o me dice prendido cuando no lo esta!!” Entonces toda la respuesta explicandoles que hay resistencias pull down, pull up o bien usar la interna.

Son opciones, pero la mayoría quiere el camino fácil.
Ni hablar de leer un libro no?