Primero, muchos microcontroladores y controladores de señales digitales tendrán resistencias internas de levantamiento. Aquí hay un ejemplo, un Atmel ATMega164.
Por lo general, habrá un registro que permite activar y desactivar las activaciones internas. Debido a las variaciones en el proceso de fabricación, estos controles internos vienen en un rango muy amplio, y no son una buena opción si necesita un control muy estricto sobre el consumo de corriente en aplicaciones de potencia ultra baja. Si mantener un recuento de componentes bajo es importante, esta es una manera fácil de hacerlo. No sería una buena idea utilizar los recursos internos para la eliminación de hardware, ya que no es posible predecir su valor exacto.
Depende de si el valor de 100 \ $ k \ Omega \ $ es adecuado. Si solo es un interruptor que un usuario cambia periódicamente, entonces 100 \ $ k \ Omega \ $ sería una buena opción para minimizar el consumo de energía. Para las cosas que se van a cambiar más rápidamente, como los codificadores rotatorios, el proceso por el que pasaría es
- Encuentre la corriente máxima de sumidero en la hoja de datos
- Calcule un valor de recuperación utilizando la Ley de Ohm
- Elija un resistor de tamaño estándar, algunos tamaños más grande, dependiendo de la velocidad realmente necesaria
- Pruebe y vea si el tamaño de resistencia elegido proporciona los tiempos de subida y caída requeridos
- Ajusta en consecuencia
Entonces, si la corriente máxima de sumidero por pin GPIO fuera 10 mA y operando a 5V: \ $ R = \ dfrac {V} {I} = \ dfrac {5V} {10mA} = 500 \ Omega \ $. Mantener este valor R lo más pequeño posible permitirá los bordes más nítidos y las frecuencias de conmutación más altas.