El tutorial Arduino Digital Read Serial lo guía a través del cableado de un botón simple. Mis preguntas se centran en la resistencia.
¿Por qué es necesaria la resistencia?
Creo que entiendo esto, pero corrígeme si me equivoco. Para garantizar que el pin de entrada lea una señal baja y no flote, debemos conectar el pin a tierra cuando no se presiona el botón. Cuando se presiona el botón, tendremos una señal de 5V que fluirá tanto al pin como a tierra. La ley de voltaje de Kirchhoff establece que el voltaje total en bucle cerrado debe ser igual a cero, por lo que tenemos que lidiar con este 5V que fluye directamente a tierra. Es por eso que colocamos una resistencia entre el botón y la tierra.
¿Cómo se eligió el valor de la resistencia?
Esto es lo que no tengo claro. La ley de Ohm establece que ...
resistance = voltage / current
Este es un suministro de 5V y la especificación Arduino Uno dice que el pin proporciona 40 mA de corriente continua. Entonces..
resistance = 5V / 0.04A = 125 Ohms
En el tutorial de lectura digital en serie , ¿por qué tenemos una resistencia de 10K ohmios? Eso es exagerado, ¿verdad? Lo que lleva a otra pregunta: ¿Alguna vez puede poner demasiada resistencia en su lugar, si su único objetivo es eliminar el voltaje?
Gracias de antemano por cualquier comentario!
fuente
Las entradas Arduino tienen una resistencia muy alta. El datasheat del Atmega328 dice 100 MOhm para ADC, tales valores altos son buenos, pero también tienen el inconveniente de lidiar con los efectos parásitos (resistencia, inductancia, capacitancia). Dichos efectos también se pueden usar como sensores de capacitancia .
La resistencia debe tener un valor arbitrario, que sea menor que la resistencia de entrada. 10k y superiores son buenos para deshabilitar la fuga de entrada.
Sin embargo, también puede omitir la resistencia cuando utiliza los resistores internos. En este caso se trata de lógica negativa:
En el pin 3 medirás
HIGH
y el botón debe estar conectado al pin y a la tierra. La resistencia pull-up interna I / 0 tiene el valor de 50k.fuente
Ya ha recibido un par de buenas respuestas sobre por qué se necesita una resistencia desplegable.
Para resumir, debe conectar la entrada a tierra para evitar que la entrada flote de forma semialeatoria entre alta y baja. Utiliza una resistencia para que cuando cierre el interruptor, no cree un cortocircuito entre el suministro de + 5V y tierra.
Sin embargo, otro punto. Las entradas del Arduino incluyen una resistencia pull-up interna opcional controlada por software . Si primero configura el pin como entrada, luego escribe un valor ALTO en ese puerto, activa la resistencia pull-up. Eso hace que el pin se lea como ALTO cuando no hay nada conectado a él.
Luego puede conectar su interruptor a tierra en lugar de + 5V. Luego debe cambiar la lógica de su código para tratar un valor ALTO como no presionado, y un valor BAJO como presionado. Esto le permite simplificar un poco su cableado, ya que no necesita una resistencia externa.
fuente