Arduino

Resistores Pullup e PullDown

Escrito por: ­ 8 de dez de 2016 ­ 610 views
pullup_pulldown_hackeduca

Em nossos projetos, sabemos que precisamos utilizar um resistor igual ou aproximadamente 10KΩ junto a um botão (switch), um LDR, sensor de Hall Effect, etc…
Sabemos também que verificando esse pino através da serial do Arduino ou a leitura do pino pelo Scratch, mostrará oscilações entre os valores “1” e “0” que é o mesmo que “ligado” e “desligado”.
Esse fenômeno é chamado de floating, o que nada mais é que flutuação.

Para interromper essa flutuação usamos um resistor de Pull-up ou Pull-Down que visa equalizar o sistema.
Neste artigo vamos discutir um pouco sobre esse assunto

A função principal desses resistores é garantir uma entrada compreensível para o microprocessador, mesmo que ele esteja aguardando um sinal

Floating – Flutuação

Circuitos lógicos digitais, como no caso do Arduino reconhece somente 3 estados lógicos, que são: HIGH, LOW e Floating. O Floating ocorre porque o microprocessador não está recebendo HIGH (Vcc) ou LOW (Ground). Se um deles for interrompido a leitura ficará flutuando, pois nenhum sinal, não é igual a ZERO – ZERO é o ground.

Carregue o seu Arduino com o seguinte sketch:

 

 Neste exemplo não há comunicação com o pino D3 (input) A leitura do pino mostra flutuação – pino não recebe 5v, tampouco ground.
Pullup_Pulldown_Floating  Pullup_Pulldown_Floating

Pull-Down

pulldown

Resistores pull-down são resistores que tem por objetivo garantir que o processador sempre receba o nível lógico LOW, na ausência de um sinal de entrada

O resistor pull-down acima é o resistor 10K. Quando o botão é mantido pressionado, o pino D3 recebe diretamente os 5 volts, que é mais forte que o ground, porém quando o botão é liberado, o pino D3 que já está conectado ao resistor de 10K, puxa para o ground, baixando a carga para 0 (zero) volt, por isso se chama Pull-Down (Puxar para baixo)

Quando montamos um circuito com o Pull-Down, devemos pensar que se nada for feito o pino lerá “0”, ou seja LOW.
Quando se aperta o botão o pino lerá “1”, ou seja, HIGH

 

Pull-Up

pullup

Resistores pull-up são resistores que tem por objetivo garantir que o processador sempre receba o nível lógico HIGH, na ausência de um sinal de entrada

O resistor pull-up acima é o resistor 10K. Quando o botão é mantido pressionado, o pino D3 recebe diretamente o Ground, que está ligado sem resistor, e neste caso menos resistivo que os 5v + 10kΩ, porém quando o botão é liberado, o pino D3 que já está conectado ao resistor de 10K, puxa para os 5 volts, elevando a carga que antes era 0 (zero) volt, por isso se chama Pull-Up (Puxar para Cima)

Quando montamos um circuito com o Pull-Up, devemos pensar que se nada for feito o pino lerá “1”, ou seja HIGH.
Quando se aperta o botão o pino lerá “0”, ou seja, LOW.


Para meus projetos costumo utilizar o Pull-Down, pois acho que faz mais sentido (HIGH quando está pressionado e LOW quando está solto), no entanto qualquer um dois dois dará o efeito esperado, desde que considerado essa diferença na programação. Em geral, o Pull-Up é mais utilizado.


 

 Pull-Down com o botão solto Pull-Down com o botão pressionado
pulldown_released pulldown_pressed

 Pull-Up com o botão solto Pull-Up com o botão pressionado
pulldown_pressed pulldown_released

O resistor Pull-up e/ou Pull-Down precisam ser de 10kΩ?

A resposta é não, porém use 10KΩ que não terá erro.
Em geral >4,7KΩ já dá o efeito esperado.

 

Não tenho um resistor, posso usar um botão no Arduino?

A resposta é sim. O Arduino possui resistores pull-up em seus pinos.
Para acessar esses resistores, é necessário atribuir essa função ao Pino desejado.
Em geral aprendemos que os pinos podem ser:
INPUT, OUTPUT, porém ele pode ser também INPUT_PULLUP

Veja o seguinte sketch onde esse resistor pode ser utilizado.

internal_pullup

 

Extras

Modifique a linha 16 do pograma para: pinMode(4, INPUT_PULLUP);

Na comunicação serial de seu Arduino haverá oscilação constante entre 1 e 0.
Você verá os valores flutuando, uma vez que agora não há mais o resistor conectado como pull-up
Você verá também que o LED 13 está piscando muito rápido, pois no programa diz que HIGH é apagado e LOW é ligado.
Por estar flutuando ele oscila entre ligado e desligado o tempo todo.


Previous Post Next Post

Você também pode gostar / You Might Also Like

No Comments

Leave a Reply

Show Buttons
Siga-nos no Facebook
Siga-nos no Twitter
Siga-nos no Google Plus
Siga-nos no Pintrest
Siga-nos no Youtube
Siga-nos no Scratch
Hide Buttons
CLOSE
CLOSE
Top