#Hobbyando: Conceitos básicos - parte 1 - pull-up / pull-down
Resistores de pull-up / pull-down são resistores adicionados ao projeto para assegurar um certo nível lógico em um pino de entrada lógica, em outras palavras, eles forçam um estado ( 0 ou 1 ) no pino do microcontrolador caso a via fique em aberto, como por exemplo quando você conecta um botão ou algum outro circuito que tenha saída aberta (como uma saída open collector)
pull-up, quando o botão não está pressionado (A) e quando está pressionado (B)
No caso desse exemplo:
(A) Quando o botão não está pressionado o resistor impõe o nível lógico 1 (5V) ao pino do microcontrolador, uma vez que a entrada do microcontrolador consome muito pouca corrente pode-se considerar que não haverá corrente fluindo pelo resistor e portanto pela lei de ohm a queda de tensão sobre ele será nula.
(B) Já quando o botão é pressionado, o terra é jogado diretamente no pino do microcontrolador levando seu nível lógico para 0 (0V), aterrando também o resistor, que consumirá uma corrente equivalente ao seu valor ôhmico.
Resistores de pull-down possuem praticamente o mesmo modo de operação, diferenciando dos de pull-up apenas pelo fato de serem conectados ao terra para forçar nível zero enquanto um botão (que agora será conectado ao Vcc) não é pressionado.
Alguns cuidados na escolha do valor do resistor devem ser tomados em um projeto, o seu valor não pode ser baixo o suficiente para consumir uma corrente excessiva da fonte quando ele for aterrado, e nem alto o suficiente para que a corrente consumida pela entrada do microcontrolador (baixa, mas existente) cause uma queda de tensão muito grande sobre o resistor, levando a entrada a ficar em um nível flutuante, outro detalhe importante na análise é a resistividade de contato do botão utilizado, caso o botão apresente uma resistividade alta (contato sujo ou oxidado pelo tempo) e o resistor tenha um valor relativamente baixo, poderá haver na entrada uma tensão baixa o suficiente para causar flutuações, devido ao divisor de tensão formado entre o resistor e o botão. Valores usuais para os resistores são na casa das dezenas ou centenas de Kiloohms, mas dependendo das exigências e propriedades do projeto (tensão de operação, otimização para baixo consumo, etc) os valores podem mudar.
PS: grande parte dos microcontroladores atuais (como os MSP da TI) possuem resistores de pull-up e pull-down internos que podem ser ativados apenas configurando registradores, esse é um recurso simples e importante, pois além de economizar no projeto elétrico é possível desconecta-los apenas pela programação, algo desejado em alguns casos. Por isso, antes de colocar um resistor de pull-up/down em seu projeto, verifique se o microcontrolador utilizado não possui esta opção.
Próxima parte: Debouncing
Postado por Gustavo às 05:11
Marcio Torres 18 de novembro de 2012 09:45
Obrigado por dividir o seu conhecimento, foi muito proveitoso !
kaio césar 16 de abril de 2013 11:32
muito obrigado pelo post, estou começando a estudar arduino, serviu muito.
Elber Vitor 14 de julho de 2013 21:26
Li algumas páginas sobre o mesmo assunto pra chegar a um entendimento çegaç sbre o assunto, e a sua foi a que fez eu entender de uma vez por todas! PArabens e valeu!