Olá galera !

Li sobre os resistores pull up e pull down . Esta imagem foi retirada dos exemplos do programa Fritzing. De acordo com a imagem o que é correto afirmar :

- Não necessita do resistor de 10 k para o botão pois o  Arduino possui esses resistores implementados .

- Não necessita de resistor quando a logica é invertida. Ou seja, quando utilizamos pull up não a necessidade de utilizar o resistor.

- è necessário a utilização do resistor tanto no pull up e no pull down .

Att Ewerton 

Exibições: 20191

Responder esta

Respostas a este tópico

Boa noite Ewerton ,

Sim quando quer garantir nível baixo no pino, utilize um resistor de pulldown externo., pois se definimos o pino como saída "pinMode( x, OUTPUT)" e coloca-lo em nível baixo "digitalWrite(x, LOW), estaremos definindo este pino como tri-state, 

Quanto ao pullup você pode definir internamente "pinMode(x,INPUT_PULLUP), Obs, este resistor interno é muito alto em alguns casos não é recomendado. 

Abs 

Mauricio Ortega

Oi EP, boa noite.

O Arduino tem sim um resistor interno de PULL_UP.

Este resistor pode variar de 20k até 150k dependendo do modelo do arduino.

Eles são ligados somente se o pino estiver na opção de entrada (INPUT) e podem ser ativados de duas maneiras:

Ou

    pinMode(abc,  INPUT_PULLUP);  

ou

    pinMode(abc, INPUT);  junto com

    digitalWrite(abc, HIGH);

Para usar com botões e chaves, com o PULL_UP ligado, não é necessário usar resistor externo,

basta ligar o botão/chave no pino e no GND.

Com a chave/botão aberto você terá HIGH no pino, e fechando terá LOW no pino.

Como não é necessário o uso de resistores externo, economiza componentes e facilita as ligações.

Quanto ao resistor de Pull_Down, pelo que me consta não tem nenhum modelo que os tenha internamente.

Rui

Entendi .  Então posso afirmar que :

existe resistor pull up internamente no  Arduino. Mas o pull down não existe. Ou seja : existe a necessidade de usar um resistor para aplicar a técnica do pull down ?

Sim,

Pessoal,

falando no Pull Up interno...

Mauricio: em quais casos o Interno não é recomendado?... porque o que leio por ai são só coisas boas. Queria saber o lado ruim deste uso.

Obriagdo

Pedro, bom dia!

Em aplicações com botões e alguns sensores, você tem razão funciona perfeitamente.

Um dos problemas e quando precisamos de maior corrente para manter o pino em nível alto.

Outro e mais grave, é que quanto maior a resistência de pull-up, mais lento o pino irá responder a variações de tensão. Isto é porque o sistema que alimenta o pino de entrada é tem um Capacitor acoplado com a resistência de pull-up, formando assim um filtro RC, e filtros RC levam algum tempo para carregar e descarregar. Se você tiver um sinal com mudança muito rápido (como sinais de USB, ou sensores), um alto valor do resistor de pull-up pode limitar a velocidade com que o pino mude de estado de forma confiável, podendo perder dados valiosos. 

É por isso que muitas vezes você vai ver resistores entre 1k e 4.7KΩ para pullup em entradas para leituras de dados rápidos.

Abs

Mauricio Ortega

Muito obrigado pela sua explicação . Li vários artigos sobre pull up e pull down e todos eles me deixaram com estas dúvidas.   

Muito obrigado Mauricio.

explicando minha pergunta...

Estou desenvolvendo um projeto com vários botões com arduino mega usando pullup interno.

O que acontece que o pino 30 (PC7) aleatoriamente  passava para estado LOW sem o botão ser acionado.

Inicialmente pensei ser mal contato, mas geralmente quando é isso, mexer nas conexões geraria o problema, mas isso não aconteceu.

Agora vendo, irei pesquisar melhor as características deste pino para ver se acho os motivos, baseado na sua resposta.

De qualquer maneira, resolvi pelo software (agora tem que acionar o botão e manter por mais de 200 ms).

Mas entender o que está acontecendo é tão importante quanto resolver o problema.

Muito obrigado pela atenção e pela explicação de mestre!

Entendi. Então por exemplo : seu implementar um resistor externo para pull up, no código ao declarar como PULL_UP ou definir como HIGH  não vai dar conflito ?

Ewerton,

Se usar um pull-up externo não precisa declarar no software, somente definir como entrada.

Abs

Mauricio Ortega

Muito obrigado pela explicação !

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço