O tutorial Arduino Digital Read Serial guia você através da fiação de um botão simples. Minhas perguntas estão centradas no resistor.
Por que o resistor é necessário?
Acho que entendo isso, mas me corrija se estiver errado. Para garantir que o pino de entrada leia um sinal baixo e não flutue, devemos conectar o pino ao terra quando o botão não for pressionado. Quando o botão for pressionado, teremos um sinal de 5V fluindo para o pino e para o terra. A lei de tensão de Kirchhoff afirma que a tensão total no circuito fechado deve ser igual a zero, então temos que lidar com esse 5V que está fluindo diretamente para o terra. É por isso que colocamos um resistor entre o botão e o terra.
Como foi escolhido o valor do resistor?
É sobre isso que não estou claro. A lei de Ohm afirma que ...
resistance = voltage / current
Esta é uma fonte de 5V e a especificação do Arduino Uno diz que o pino fornece 40 mA de corrente DC. Assim..
resistance = 5V / 0.04A = 125 Ohms
No tutorial Digital Read Serial , por que temos um resistor de 10K Ohms? Isso é um exagero, certo? O que leva a outra pergunta: você pode colocar muita resistência, se seu único objetivo é eliminar a tensão?
Agradecemos antecipadamente por qualquer feedback!
fonte
As entradas do Arduino têm resistência muito alta. A base de dados do Atmega328 diz 100 MOhm para a ADC. Tais valores altos são bons, mas também têm a desvantagem de lidar com efeitos parasitários (resistência, indutância, capacitância). Tais efeitos também podem ser usados como sensores de capacitância .
O resistor precisa ter um valor arbitrário, que é menor que a resistência de entrada. 10k e acima são bons para desativar o vazamento de entrada.
No entanto, você também pode deixar de fora o resistor ao usar os resitores de pull-up internos. Nesse caso, você lida com lógica negativa:
No pino 3, você medirá
HIGH
e o botão precisará estar conectado ao pino e ao terra. O resistor de pull-up I / 0 interno tem o valor de 50k.fonte
Você já obteve algumas boas respostas sobre por que um resistor pull-down é necessário.
Para resumir, você precisa conectar a entrada ao terra para impedir que a entrada flutue semi-aleatoriamente entre alto e baixo. Você usa um resistor para que, ao fechar o comutador, não crie um curto-circuito entre a fonte de + 5V e o terra.
Outro ponto, no entanto. As entradas do Arduino incluem um resistor de pull-up interno opcional controlado por software . Se você configurar o pino como uma entrada e depois gravar um valor ALTO nessa porta, ele ativará o resistor de pull-up. Isso faz com que o pino seja lido como ALTO quando nada estiver conectado a ele.
Em seguida, você pode conectar seu switch ao terra, em vez de + 5V. Você precisará alterar sua lógica de código para tratar um valor ALTO como não pressionado e um valor BAIXO conforme pressionado. Isso permite que você simplifique um pouco sua fiação, já que você não precisa de um resistor externo.
fonte