Entradas digitais estáveis: pull-up, pull-down e entradas flutuantes

Capítulo 5

Tempo estimado de leitura: 8 minutos

+ Exercício

O que é uma entrada flutuante e por que ela dá problema

Uma entrada digital flutuante é um pino configurado como entrada que não está ligado de forma definida a VCC (nível alto) nem a GND (nível baixo). Nessa condição, o pino fica com alta impedância e pode “captar” interferências do ambiente (ruído eletromagnético), acoplamento capacitivo com trilhas próximas, toque do dedo, cabos longos, etc.

Em circuitos CMOS, isso é especialmente crítico porque as entradas têm impedância muito alta: uma corrente mínima já altera a tensão do pino. O resultado típico é comportamento imprevisível: leituras alternando entre 0 e 1, consumo anormal (quando a tensão fica na região intermediária e ambos transistores internos conduzem parcialmente) e disparos falsos em contadores, interrupções e lógica combinacional.

Efeitos comuns de entradas flutuantes

  • Leitura instável: o nível lógico muda sem ação do usuário.
  • Oscilação em sinais que deveriam ficar parados (ex.: botão “solto” vira vários pulsos).
  • Maior suscetibilidade a ruído: cabos longos e ambientes com motores/relés pioram.
  • Consumo extra em CMOS se a entrada ficar em tensão intermediária por tempo significativo.

Pull-up e pull-down: como “forçar” um estado padrão

Para garantir que uma entrada tenha um estado definido quando o botão/chave estiver aberto, usa-se um resistor de polarização:

  • Pull-up: resistor entre a entrada e VCC. Mantém a entrada em nível alto quando o contato está aberto.
  • Pull-down: resistor entre a entrada e GND. Mantém a entrada em nível baixo quando o contato está aberto.

O resistor é necessário porque, quando o botão fecha, ele conecta a entrada ao outro potencial (GND no caso de pull-up, ou VCC no caso de pull-down). Sem resistor, haveria curto direto entre VCC e GND ao pressionar (dependendo da ligação).

Diagramas típicos

(A) Botão com pull-up (entrada ativa em 0 ao pressionar)  VCC   |  [Rpull]   |----> Entrada digital   |   +--- Botão --- GND  (B) Botão com pull-down (entrada ativa em 1 ao pressionar)  GND   |  [Rpull]   |----> Entrada digital   |   +--- Botão --- VCC

Em (A), a entrada fica em 1 quando solta e vai para 0 quando pressiona. Em (B), fica em 0 quando solta e vai para 1 quando pressiona.

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

Como escolher o valor do resistor (dimensionamento) e trade-offs

O valor do pull-up/pull-down deve ser um compromisso entre:

  • Consumo de corrente quando o botão está pressionado (há corrente contínua pelo resistor).
  • Imunidade a ruído quando o botão está solto (resistor menor “segura” melhor o nível contra interferências).
  • Tempo de subida/descida por causa da capacitância do pino e da fiação (resistor maior deixa a transição mais lenta).

Faixas típicas (prática geral)

  • 1 kΩ a 4,7 kΩ: mais robusto contra ruído, mais corrente ao acionar; útil com cabos longos/ambiente ruidoso.
  • 10 kΩ: valor muito comum para botões em placas; bom equilíbrio para a maioria dos casos.
  • 47 kΩ a 100 kΩ: baixo consumo, porém mais sensível a ruído e mais lento; melhor para sinais internos curtos e ambientes limpos.

Consumo ao pressionar (cálculo rápido)

Quando o botão fecha, a corrente aproximada é:

I ≈ VCC / Rpull

VCCRpullCorrente ao pressionar
5 V10 kΩ0,5 mA
3,3 V10 kΩ0,33 mA
5 V1 kΩ5 mA
3,3 V47 kΩ0,07 mA

Observação prática: em sistemas alimentados por bateria, reduzir essa corrente pode ser importante se o botão ficar pressionado por longos períodos.

Tempo de subida com capacitância (efeito RC)

A entrada e a fiação têm capacitância (do pino, trilhas, cabo, etc.). O pull-up/pull-down forma um circuito RC que afeta a velocidade de transição quando o contato abre (a entrada volta ao estado “puxado” pelo resistor).

Constante de tempo aproximada:

τ = Rpull × C

Exemplo: Rpull = 10 kΩ e C = 50 pF (pino + trilha curta) → τ = 0,5 µs (rápido). Mas com cabo e ruído, C pode subir para centenas de pF ou mais. Se C = 1 nF e Rpull = 100 kΩτ = 100 µs, o que pode ser relevante em entradas rápidas.

Passo a passo: ligando um botão com pull-up externo

Objetivo

Entrada fica em 1 quando o botão está solto e vai para 0 quando pressionado (lógica “ativa em zero”).

Materiais

  • 1 botão (NA: normalmente aberto)
  • 1 resistor (ex.: 10 kΩ)
  • Fonte VCC e GND
  • Um pino de entrada digital

Conexões

  1. Ligue o resistor de 10 kΩ entre o pino de entrada e VCC.
  2. Ligue o botão entre o pino de entrada e GND.
  3. Garanta que o GND do circuito do botão e o GND do dispositivo que lê a entrada sejam comuns.

Verificação

  • Botão solto: a entrada é puxada para VCC pelo resistor → leitura 1.
  • Botão pressionado: a entrada é conectada ao GND → leitura 0 e circula corrente I ≈ VCC/10k.

Passo a passo: ligando um botão com pull-down externo

Objetivo

Entrada fica em 0 quando o botão está solto e vai para 1 quando pressionado (lógica “ativa em um”).

Conexões

  1. Ligue o resistor (ex.: 10 kΩ) entre o pino de entrada e GND.
  2. Ligue o botão entre o pino de entrada e VCC.
  3. Garanta referência comum de GND entre os circuitos.

Verificação

  • Botão solto: resistor puxa para GND → leitura 0.
  • Botão pressionado: pino vai a VCC → leitura 1 e circula corrente I ≈ VCC/10k.

Pull-up interno: quando usar e quando evitar

Muitos microcontroladores e alguns CIs oferecem pull-ups internos configuráveis por software. Eles simplificam o hardware (dispensam resistor externo), mas normalmente têm valor alto e pouco preciso (frequentemente na faixa de dezenas de kΩ). Isso reduz consumo, porém pode piorar imunidade a ruído e aumentar o tempo de subida em cabos longos.

Boas situações para pull-up interno

  • Botão próximo ao pino (trilhas curtas).
  • Ambiente com pouco ruído.
  • Baixa velocidade (leitura humana, teclas, jumpers).

Quando preferir pull externo

  • Cabo longo até o botão/chave.
  • Ambiente industrial/ruidoso (motores, relés, inversores).
  • Entradas que alimentam lógica externa ou precisam de bordas mais rápidas.

Exemplo em sistema híbrido (microcontrolador + lógica externa)

Suponha um botão ligado a um microcontrolador que também compartilha esse sinal com uma entrada de um CI CMOS externo (por exemplo, para habilitar um bloco lógico). Se você usar apenas pull-up interno (alto), o nó pode ficar mais suscetível a ruído e acoplamentos, afetando o CI externo. Uma solução comum é:

  • Manter o pull-up interno desabilitado (ou habilitado como redundância) e colocar um pull-up externo de 4,7 kΩ a 10 kΩ no nó compartilhado.
  • Garantir GND comum e roteamento curto.

Chaves (toggle) e seleção de modo: cuidados práticos

Chaves de duas posições (SPST/SPDT) também precisam evitar flutuação. Em uma chave SPST simples, use pull-up ou pull-down e a chave conectando ao outro potencial. Em uma SPDT (comum + dois contatos), você pode ligar o comum na entrada e cada posição conecta diretamente a VCC ou GND, dispensando o resistor (porque nunca fica aberto). Mesmo assim, em alguns casos adiciona-se um resistor em série pequeno (ex.: 100 Ω a 1 kΩ) para limitar correntes em situações de erro/ESD e reduzir ruído de comutação.

Exercícios (cálculo e verificação de nível lógico)

1) Corrente no pull-up

Um botão com pull-up de 10 kΩ em 5 V é pressionado. Calcule a corrente aproximada pelo resistor.

Pergunta: I ≈ ?

2) Comparando consumo

Para VCC = 3,3 V, compare a corrente ao pressionar para Rpull = 4,7 kΩ e Rpull = 47 kΩ.

Perguntas: I4k7 ≈ ? e I47k ≈ ?

3) Tempo de subida aproximado (RC)

Uma entrada tem capacitância total estimada de 200 pF (pino + trilha + cabo curto). Você usa um pull-up de 100 kΩ.

Pergunta: estime τ = R×C e discuta se isso é adequado para ler um botão (evento humano) versus um sinal de alguns kHz.

4) Nível lógico resultante com divisor resistivo (diagnóstico de erro)

Um erro de montagem colocou um resistor de 10 kΩ para VCC (pull-up) e, sem querer, outro resistor de 10 kΩ para GND no mesmo pino, com o botão aberto. Considere VCC = 5 V.

Perguntas: qual a tensão no pino (divisor)? Isso pode cair em região indefinida e causar instabilidade?

5) Escolha do pull para cabo longo

Um botão fica a 1 metro do circuito e o cabo passa perto de fontes de ruído. Você pode escolher 100 kΩ, 10 kΩ ou 1 kΩ como pull-up em 5 V.

Perguntas: qual valor tende a ser mais robusto contra ruído? Qual aumenta mais o consumo quando pressionado? Justifique com base nos trade-offs.

Agora responda o exercício sobre o conteúdo:

Ao ligar um botão a uma entrada digital, qual é a principal função de um resistor de pull-up ou pull-down quando o contato está aberto?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

O pull-up/pull-down fixa um estado definido quando o botão está aberto, evitando entrada flutuante (alta impedância) que capta ruído e gera leituras imprevisíveis. Assim, o pino não fica alternando entre 0 e 1 sem ação do usuário.

Próximo capitúlo

Debounce de botões em eletrônica digital: soluções passivas e com lógica

Arrow Right Icon
Capa do Ebook gratuito Eletrônica Digital para Iniciantes: Portas Lógicas, TTL/CMOS e Interfaces Básicas
33%

Eletrônica Digital para Iniciantes: Portas Lógicas, TTL/CMOS e Interfaces Básicas

Novo curso

15 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.