Eletrônica – O que são Resistores de Pull-up

Resistores de Pull-up

Traduzido e adaptado de Sparkfun.

Curso de Eletrônica - Resistores de Pull-up

Introdução

Resistores de Pull-up são muito comuns quando usamos microcontroladores (MCUs) ou qualquer dispositivo que opere com lógica digital. Este tutorial irá explicar quando e onde usar resistores de  pull-up, e então faremos um cálculo simples para mostrar porque os resistores de pull-up são importantes.

Leituras sugeridas

Abaixo listamos alguns conceitos que são importantes conhecer antes de prosseguir com o estudo dos pull-ups:

  • O que são Circuitos Eletrônicos?
  • Resistores
  • Tensão, Corrente e Resistência
  • Lógica Digital
  • Entradas / Saídas

O que é um Resistor de Pull-up

Digamos que você tenha um microcontrolador com um pino configurado como entrada. Se não houver nada conectado ao pino e seu programa efetuar a leitura do estado do pino, ele será alto (VCC) ou baixo (0V)? É difícil dizer. Este fenômeno é conhecido como Estado Flutuante. Para prevenir esse estado desconhecido, um resistor de pull-up ou de pull-down irá assegurar que o pino esteja em um estado alto ou baixo, usando uma pequena quantidade de corrente.

Por motivo de simplicidade, vamos nos focar neste tutorial em resistores de pull-up, pois eles são mais comuns que os resistores de pull-down. Eles operam usando os mesmos princípios, exceto que o resistor de pull-up é conectado a um nível alto de tensão (geralmente 3,3V ou 5V), e o resistor de pull-down é conectado ao terra, ou nível baixo.

Os Pull-ups são frequentemente usados com botões e chaves interruptoras. Veja o circuito abaixo:

Curso de Eletrônica - Resistores de Pull-up

 

Com um resistor de pull-up, o pino de entrada irá ler um estado em nível alto quando o botão não está sendo pressionado. Em outras palavras, uma pequena quantidade de corrente flui entre VCC e o pino de entrada, de modo que o pino de entrada possui um valor próximo a VCC. Quando o botão é pressionado, ele conecta o pino de entrada diretamente a GND (ground). A corrente flui através do resistor até o terra, de modo que o pino agora apresenta nível baixo de tensão. Tenha em mente que,s e o resistor não estivesse no circuito, o botão conectaria o VCC diretamente ao GND, o que é uma situação muito ruim, e é conhecida como um curto-circuito.

Bem, qual valor de resistor você deve escolher?

A resposta mais fácil e curta é que você quer um resistor cujo valor esteja próximo a 10kΩ para ser usado como pull-up.

Um resistor de valor baixo é chamado de pull-up forte (corrente maior flui), e um resistor de valor alto é chamado de pull-up fraco (menor corrente flui).

Curso de Eletrônica - Resistores de Pull-up

 

O valor do resistor de pull-up precisa ser escolhido para satisfazer a duas condições:

  1. Quando o botão é pressionado, o pino de entrada vai a nível baixo. O valor do resistor R1 controla quanta corrente você quer que flua a partir de VCC através do botão, e então para GND.
  2. Quando o botão não é pressionado, O pino de entrada fica com nível alto. O valor do resistor de pull-up controla a tensão no pino de entrada.

Para a primeira condição, não queremos um valor de resistência muito baixo. Quanto menor a resistência, mais energia será usada quando o botão é pressionado. Geralmente queremos um valor de resistência grande (como10kΩ), mas não o queremos tão grande que chegue a causar conflito com a condição 2. Um resistor de 4MΩ poderia trabalhar como um pull-up, mas sua resistência é tão grande que pode não conseguir realizar seu trabalho em 100% do tempo.

A regra geral para a condição 2 é usar um resistor de pull-up (R1) que seja uma ordem de magnitude (1/10) menor do que a impedância de entrada (R2) do pino de entrada. Um pino de entrada em um microcontrolador possui uma impedância que pode variar entre 100kΩ e 1MΩ. Para esta discussão, impedância é só uma forma incrementada de dizer “resistência” e é representada pelo resistor R2 na figura acima. Assim, quando o botão não está sendo pressionado, uma quantidade muito pequena de corrente flui de VCC através do resistor R1 ao pino de entrada. O resistor de pull-up R1 e a impedância R2 do pino de entrada dividem a tensão, e esta tensão precisa se alta o suficiente para que o pino de entrada apresente um nível alto quando lido.

Por exemplo, se você usar um resistor de 1MΩ como pull-up R1 e a impedância do pino de entrada R2 estiver na ordem de 1MΩ (formando um divisor de tensão), a tensão no pino de entrada será em torno de metade da tensão VCC, e o microcontrolador pode não registrar o pino como estando no nível alto. Em um sistema de 5V, o que um microcontrolador lê em um pino de entrada se sua tensão for de 2,5V? É um nível alto (HIGH) ou baixo (LOW)? O MCU não sabe e você pode ler esse valor tanto como nível alto quanto como nível baixo. Uma resistência entre 10kΩ e 100kΩ para R1 deve evitar a maioria dos problemas.

Como os resistores de pull-up são tão comumente necessários, muitos microcontroladores como o  ATmega328 na plataforma Arduino possuem pull-ups internos que podem ser habilitados ou desabilitados. Para habilitar os pull-ups internos em um Arduino, você pode usar a seguinte linha de código na função setup():

pinMode(5, INPUT_PULLUP); // Habilita o resistor de pull-up interno no pino 5

Outra coisa a se notar é que quanto maior a resistência para o pull-up, mais devagar o pino responderá a mudanças de tensão. Isso ocorre porque o sistema que alimenta o pino de entrada é essencialmente um capacitor acoplado com o resistor de pull-up, desta maneira formando um filtro RC, e filtros RC levam algum tempo para carregar e descarregar. Se você tiver um sinal que mude realmente rápido (como um USB), um resistor de pull-up de valor elevado pode limitar a velocidade na qual o pino pode mudar de estado de forma confiável. É por isso que você verá frequentemente resistores de valores entre 1kΩ e 4.7KΩ em linhas de sinais USB.

Todos esses fatores contam na decisão sobre qual valor o resistor de pull-up deve ter.

Calculando o Valor de um Resistor de Pull-up

Usando um resistor de pull-up

 

Digamos que você queira limitar a corrente a aproximadamente 1mA quando o botão é pressionado no circuito acima, onde o valor de VCC 5V.Qual valor de resistência você deve usar?

É fácil demonstrar como calcular o resistor de pull-up usando a Lei de Ohm:

V = I x R

Em relação ao esquema acima, a Lei de Ohm agora é:

Calculando corrente com resistor de pull-up

Rearranjamos a equação acima com um pouco de álgebra simples para resolvê-la para o resistor:

Cálculo de corrente elétrica com resistor de pull-up

Lembre-se de converter todas as unidades em volts, ampères e ohms antes de efetuar o cálculo (por ex,.: 1mA = 0,001 Ampères). E solução então é usar um resistor de 5kΩ

É isso aí! Estudamos neste artigo as aplicações dos resistores de pull-up. Até a próxima!

Artigo original: Pull up Resistors – Sparkfun. Disponível sob licença Creative Commons CC BY-NC-SA 3.0.

Sobre Fábio dos Reis (1379 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*