Primeiro, muitos microcontroladores e controladores de sinal digital terão resistores pull up internos. Aqui está um exemplo, um Atmel ATMega164.
Normalmente, haverá um registro que permite ativar e desativar os pull ups internos. Devido a variações no processo de fabricação, esses pullups internos têm uma gama muito ampla e não são uma boa opção se você precisar de um controle muito próximo do consumo de corrente em aplicações de ultra baixa potência. Se é importante manter a contagem baixa de componentes, é uma maneira fácil de fazê-lo. Usar pull ups internos para debounce de hardware não seria uma boa ideia, pois não é possível prever o valor exato.
Se os 100k Ωvalor é adequado depende. Se for apenas uma opção que será ativada periodicamente por um usuário, 100k Ωseria uma boa opção para minimizar o consumo de energia. Para coisas que mudarão mais rapidamente, como codificadores rotativos, o processo pelo qual eu passaria é
- Encontre a corrente máxima do coletor na folha de dados
- Calcular um valor pull up usando a Lei de Ohm
- Escolha um resistor de tamanho padrão, alguns tamanhos maiores, dependendo da velocidade realmente necessária
- Teste e veja se o tamanho do resistor escolhido fornece os tempos de subida e descida necessários
- Ajuste de acordo
Portanto, se a corrente máxima do coletor por pino GPIO fosse 10 mA e operasse em 5V: R =VEu=5 V10 m A= 500 Ω. Manter esse valor R o mais pequeno possível permitirá bordas mais nítidas e frequências de comutação mais altas.