Qual é o propósito de um resistor pull-up ou pull-down e como ele funciona?
Vou tentar responder a esta pergunta aqui da forma mais simples possível. Quando penso nisso, é realmente simples.
Aqui vai:
Imagine que você tem um interruptor. Um pino está conectado a uma fonte de 5V e o outro a um circuito lógico. Um circuito lógico é um componente que espera certos valores apenas em seus pinos, geralmente Alta ou HIGH (5V) ou Baixa ou LOW (0V), e não funciona bem com qualquer outra coisa. Um exemplo poderia ser um microcontrolador ATMega, como o que você encontra em uma placa Arduino.
Esquematicamente, você teria algo assim:
Isso parece bom, a chave está fechada e a entrada do circuito lógico está diretamente conectada ao Vin, então é HIGH. Sem problemas! E se abrirmos o interruptor?
Bem, agora há um problema. A entrada do circuito lógico não está conectada a nada com um valor específico, está apenas pendurada ali. Outro termo que as pessoas costumam usar para esse tipo de situação é “flutuar”.
Vamos repetir: o problema aqui é que a entrada do circuito lógico não está conectada a uma fonte de valor definido, e os circuitos lógicos realmente não gostam disso!
Então como nós consertamos isso? Veja o próximo esquema:
Corrigimos isso usando um resistor grande (digamos, 10kΩ ou maior) para conectar a entrada do circuito lógico ao terra. Quando a chave está aberta, ao invés da entrada ficar flutuando para um valor incerto, ela passa a ser aterrada, portanto BAIXA, através do resistor.
E se o interruptor fechar novamente? Então, teremos isso:
Como o resistor é grande, a corrente de Vin achará muito mais fácil fluir através do circuito lógico em vez de aterrar através do resistor. Como a conexão entre o Vin e a entrada do circuito lógico tem resistência desprezível, o valor ALTO do Vin será transferido para a entrada do circuito lógico.
Para recapitular, anexando um resistor pull-down ao nosso circuito, garantimos que a entrada do circuito lógico sempre terá um valor definido e ficará feliz.
Você pode inverter o circuito e conectar o resistor ao Vin em vez do terra. Agora, esse resistor seria chamado de “pull-up”, pois estaria puxando a entrada do circuito lógico para Vin (HIGH) quando a chave estivesse aberta.
Um esquema de resistor pull-up ficaria assim:
Acabei de trocar a tensão positiva (diferencial) para o topo do diagrama e o terra para o fundo. Quando a chave está aberta, a entrada do circuito lógico é conectada ao Vin através da grande resistência, então a tensão é quase Vin. Haverá uma corrente muito pequena fluindo, então também haverá uma queda muito pequena na tensão de Vin para a entrada do circuito lógico, mas isso é pequeno o suficiente para poder aceitar um valor aproximado no circuito lógico como Vin, que é alto.