Não dá certo usar o resistor de elevação...

Prezados,

Deem uma olhada rápida nesse vídeo abaixo.

https://www.youtube.com/watch?v=fDe6GzSarnE

O código é esse: https://gist.github.com/anonymous/5847163

O resistor interno do arduino está ativado, mesmo assim quando eu tiro o resistor do push button não funciona. Dá esse comportamento estranho..

Alguém pode me ajudar?

Abs

Exibições: 1087

Responder esta

Respostas a este tópico

Quando vc tirou o resistor, trocou os fios e apertou o botão vc fechou um curto-circuito na alimentação.

Outra coisa, pra configurar o pino para usar pullup use  INPUT_PULLUP no pinMode(), não precisa fazer:

pinMode(btn1, INPUT);
pinMode(btn2, INPUT);
digitalWrite(btn1, HIGH);
digitalWrite(btn2, HIGH);

Yure, tudo bem?

Obrigado pela ajuda.

O papel do resistor embutido no arduino e ativado por mim não deveria cumprir exatamente esse papel de evitar o curto?

Abs

Pelo que eu pude ver o fio amarelo seria o Vcc e o azul o GND, da forma que vc ligou no botão, depois de ter tirado o resistor, isso provocaria um curto entre os dois assim que fosse pressionado.

Olá Yure,

Certo. Está sim. Essa é a maneira correta de ligar, não? Pelo menos nas referências que consulto é assim.

Fiz um esquema de como está ligado p/ você compreender melhor a parte dos botões.

Compreendo que não posso ligar GND e VCC direto que dá o curto. O resistor interno da porta não faz o papel do resistor externo então?

No botão da direita vc esta fazendo um pulldown aplicando "supostamente" 0V na entrada, no da direita sem o botão estar pressionado vc esta aplicando 0V na entrada, ate ai tudo ok.

O problema surge quando o botão é apertado.

Quando se configura pullup nas entradas, é desejado que na ausencia de um comando ela se mantenha em HIGH. Então sugiro mudar seu programa para reagir com estimulo LOW.

Assim basta ligar uma entrada em um terminal do botão e o GND no outro terminal.

Olá Yure, pô cara, muito obrigado. Acho que você matou a minha dúvida.

Vamos ver se eu compreendi, quando uso o PULL UP, na verdade é como se a "energia" ou fluxo estivesse na porta de entrada...o botão, ligado na entrada e no GND quando não pressionado fica "segurando" esse fluxo na porta (por isso ela fica em HIGH). QUando eu pressiono, esse fluxo segue para o GND, e a entrada fica em LOW...

Desculpando-me pelos termos provavelmente errados, é isso que acontece, não é?

Quando uso VCC/GND e entrada, preciso do resistor pois estou realizando esse processo ali na protoboard mesmo neh?

Tem algum jeito mais recomendado? Qual dos 2 é melhor usar? A única diferença é a economia de 1 componente?

Muito obrigado pela paciência e atenção!

Abs

É mais ou menos isso.

Pense que a tensão que vai aparecer na entrada, vai depender de quem tem a menor resistência, o resistor interno ou o botão.

Com o botão livre, este tem resistência que tende ao infinito, portanto o resistor tem resistência menor, aplicando HIGH(pullup) ou LOW(pulldown).

Com o botão pressionado, este tem resistência quase nula, aplicando assim o nível ao qual ele esta conectado.

Lembre, só use pulldown externo se o pullup da entrada estiver desabilidado, porque os dois resistores,interno e externo, vão criar um divisor de tensão que vai aplicar uma tensão maior que zero na entrada.

A respeito de qual usar vai depender, se vc prefere trocar no programa o acionamento de HIGH pra LOW, vai economizar o resistor.Se prefere deixar como está configure a entrada sem pullup, e use o resistor como pulldown.

Show de bola sua explicação! Muito obrigado! 

Abs

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço