1. Princípio dos resistores pull-up
A definição de um resistor pull-up é a seguinte: Conecte um resistor entre a linha de sinal e a fonte de alimentação (VCC), e a linha de sinal será automaticamente puxada para um nível alto através do resistor. Quando não houver outra fonte de alimentação, a linha de sinal permanece em nível alto; quando o dispositivo a puxa ativamente para baixo, a corrente flui para o GND através do resistor, e o sinal passa para um nível baixo.
A definição do resistor pull-up é muito clara. À primeira vista, parece que conhecemos sua função, mas não conseguimos entender profundamente, a partir da definição, por que ele pode emitir um nível alto por padrão quando não há nenhum outro sinal de entrada, e emitir um nível baixo quando há um sinal de entrada no dispositivo. A seguir, explicarei o princípio a partir da minha perspectiva.
Vamos analisar este diagrama; este é um diagrama básico de um resistor pull-up. Quando conectamos um resistor pull-up, o valor da sua resistência geralmente varia entre 1 kΩ e 100 kΩ, o que representa um valor muito alto. Quando o dispositivo externo (referindo-se à chave no diagrama) não está conectado, a linha que leva ao GND está desconectada. Ou seja, precisamos observar apenas a linha que vai de VCC até o ponto azul e, em seguida, até a saída (não se trata de um circuito fechado). Como o valor da resistência deste resistor pull-up é muito alto, a corrente nesta linha é particularmente pequena (apenas uma corrente de fuga na ordem de microampères, próxima de zero). Portanto, a tensão aplicada a este resistor pull-up, ou seja, sua tensão, é infinitamente próxima de zero e pode ser ignorada (U = I x R ≈ 0). Assim, o potencial em VCC é igual ao potencial no ponto azul, que também é o potencial na saída, resultando em um nível alto na saída. Isso explica por que ele emite um nível alto por padrão quando o dispositivo não tem nenhum driver.
Em seguida, vejamos por que a saída é de nível baixo quando o dispositivo está em funcionamento. Quando o dispositivo está em funcionamento (ou seja, quando a chave no diagrama está fechada), um circuito fechado é formado. De modo geral, essa linha de saída está conectada a outras partes do circuito, então a corrente começa a ser desviada de VCC para o ponto azul: parte da corrente flui para o caminho de saída e parte flui para o GND. De acordo com os princípios do circuito, a diferença de potencial entre VCC e o ponto azul é igual a VCC, o que significa que o potencial do ponto azul é 0V, ou seja, um nível baixo. Isso explica por que a saída é de nível baixo quando o dispositivo está em funcionamento (chave fechada).
2. Princípio dos resistores de pull-down
A definição de um resistor pull-down é a seguinte: Conecte um resistor entre a linha de sinal e o terra (GND), e a linha de sinal será puxada para um nível baixo por padrão através do resistor. Quando não houver outra fonte de alimentação, a linha de sinal permanece em nível baixo; quando o dispositivo a puxa ativamente para cima, a corrente flui para VCC através do resistor, e o sinal passa para um nível alto.
Da mesma forma, a partir dessa definição, só podemos conhecer a função do resistor de pull-down, mas não o princípio de funcionamento. A seguir, vejamos a estrutura básica do resistor de pull-down (compreenda-a em conjunto com o diagrama):
Assim como o resistor de pull-up, o valor da resistência do resistor de pull-down geralmente varia entre 1 kΩ e 100 kΩ, o que representa um valor muito alto. Quando o dispositivo externo (referindo-se à chave no diagrama) não está recebendo sinal, assim como no caso do resistor de pull-up, a corrente nessa linha que leva à saída é muito pequena (apenas uma corrente de fuga na ordem de microampères, próxima de zero) (aqui, pode-se considerar que não há polo positivo na fonte de alimentação, portanto a corrente é diretamente zero; também é aceitável entender que existe corrente porque há alguma corrente dentro do chip). Portanto, a divisão de tensão desse resistor de pull-down, ou seja, sua tensão, é infinitamente próxima de zero e pode ser ignorada (U = I x R ≈ 0). Assim, o potencial no GND é igual ao potencial no ponto azul, que também é o potencial na saída, resultando em um nível baixo na saída. Isso explica por que a saída é em nível baixo por padrão quando o dispositivo não está recebendo sinal.
Em seguida, vejamos por que ele emite um nível alto quando o dispositivo está em funcionamento. Quando o dispositivo está em funcionamento (ou seja, quando a chave no diagrama está fechada), um circuito fechado é formado. De modo geral, essa linha de saída está conectada a outras partes do circuito, então a corrente começa a ser desviada de VCC para o ponto azul: parte da corrente flui para o caminho de saída e parte flui para o GND. De acordo com o conhecimento de circuitos, o potencial de VCC é o mesmo que o do ponto azul (ou a tensão desse resistor de pull-down é VCC), portanto, essa saída é naturalmente um nível alto. Isso explica por que ele emite um nível alto quando o dispositivo está em funcionamento.
3. Análise do caso dos resistores pull-up
Com base no princípio do resistor pull-up que acabei de mencionar, vamos usar um encoder rotativo como exemplo (observe apenas o resistor pull-up R1 à esquerda; o lado direito é igual) para explicar a mudança de nível no ponto A: quando a parte vermelha está desconectada, o nível é alto; quando está conectada, o nível é baixo.
1. Quando a parte vermelha está desconectada: Nesse momento, não haverá derivação no ponto vermelho abaixo de R1 (porque a parte vermelha está desconectada, então esse lado é um circuito aberto). A corrente fluirá de VCC através de R1, depois através de R3 e finalmente fluirá para o ponto A. Como o valor da resistência do resistor de pull-up é muito grande (e isso não pode ser considerado um circuito fechado), a corrente é quase zero. Ou seja, de acordo com a fórmula U=IR, a tensão dividida por R1 e R3 é quase zero. Portanto, o potencial em VCC é aproximadamente igual ao potencial no ponto A, que é um nível alto.
2. Quando a parte vermelha está conectada (ou seja, fechada): Forma-se um circuito fechado. A corrente flui diretamente de VCC para R1, depois para o GND do circuito no ponto C, e não flui para R3 (pode-se entender simplesmente que R3 está em curto-circuito). Então, o potencial no ponto A é igual ao potencial no ponto vermelho abaixo de R1, e como o potencial no ponto vermelho abaixo de R1 é igual ao potencial no ponto C (que é igual ao GND), o potencial no ponto A é 0, ou seja, um nível baixo. Através dessa compreensão, podemos entender claramente por que o resistor de pull-up tem essa função.