Hay muchos tutoriales que usan una resistencia pull-up o pull-down junto con un interruptor para evitar una tierra flotante, por ejemplo
Muchos de estos proyectos usan una resistencia de 10K, simplemente comentando que es un buen valor.
Dado un circuito en particular, ¿cómo determino el valor apropiado para una resistencia desplegable? ¿Se puede calcular o se determina mejor mediante la experimentación?
Respuesta rápida: la experiencia y la experimentación es la forma de averiguar el valor adecuado de pullup/pulldown.
Respuesta larga: La resistencia pullup/down es la R en un circuito de temporización RC. La velocidad a la que su señal transitará dependerá de R (su resistencia) y C (la capacitancia de esa señal). A menudo, C es difícil de saber exactamente porque depende de muchos factores, incluido cómo se enruta ese rastro en la PCB. Como no conoces C, no puedes descifrar cuál debería ser R. Ahí es donde entran la experiencia y la experimentación.
Aquí hay algunas reglas generales para adivinar un buen valor de resistencia pullup/down:
Use 10 kΩ, es un buen valor.
Para más detalles, tenemos que ver lo que hace un pullup. Digamos que tiene un botón que desea leer con un microcontrolador. El botón pulsador es un interruptor momentáneo SPST (Single Pole Single Throw). Tiene dos puntos de conexión que están conectados o no. Cuando se presiona el botón, los dos puntos están conectados (el interruptor está cerrado). Cuando se sueltan, no están conectados (el interruptor está abierto). Los microcontroladores no detectan inherentemente la conexión o desconexión. Lo que sí detectan es un voltaje. Dado que este interruptor tiene solo dos estados, tiene sentido usar una entrada digital, que después de todo está diseñada para estar solo en uno de dos estados. El micro puede detectar en qué estado se encuentra una entrada digital directamente.
Un pullup ayuda a convertir la conexión abierta/cerrada del interruptor a un voltaje bajo o alto que el microcontrolador puede detectar. Un lado del interruptor está conectado a tierra y el otro a la entrada digital. Cuando se presiona el interruptor, la línea se fuerza a nivel bajo porque el interruptor esencialmente hace un cortocircuito a tierra. Sin embargo, cuando se suelta el interruptor, nada conduce la línea a ningún voltaje en particular. Simplemente podría permanecer bajo, recoger otras señales cercanas mediante acoplamiento capacitivo o, finalmente, flotar a un voltaje específico debido a la pequeña fuga de corriente a través de la entrada digital. El trabajo de la resistencia pullup es proporcionar un alto nivel positivo garantizado cuando el interruptor está abierto, pero aún así permitir que el interruptor cortocircuite la línea a tierra de manera segura cuando está cerrado.
Hay dos requisitos principales en competencia sobre el tamaño de la resistencia pullup. Tiene que ser lo suficientemente bajo para jalar sólidamente la línea hacia arriba, pero lo suficientemente alto para que no fluya demasiada corriente cuando el interruptor está cerrado. Ambos son obviamente subjetivos y su importancia relativa depende de la situación. En general, usted hace que el pullup sea lo suficientemente bajo para asegurarse de que la línea esté alta cuando el interruptor esté abierto, teniendo en cuenta todas las cosas que podrían hacer que la línea sea baja de lo contrario.
Veamos lo que se necesita para levantar la línea. Mirando solo el requisito de CC, se descubre la corriente de fuga de la línea de entrada digital. La entrada digital ideal tiene una impedancia infinita. Los reales no, por supuesto, y la medida en que no son ideales generalmente se expresa como una corriente de fuga máxima que puede salir o entrar en el pin. Digamos que su micro está especificado para una fuga máxima de 1 µA en sus pines de entrada digital. Dado que el pullup tiene que mantener la línea alta, el peor de los casos es asumir que el pin parece un sumidero de corriente de 1 µA a tierra. Si tuviera que usar un pullup de 1 MΩ, por ejemplo, entonces ese 1 µA causaría 1 voltio en la resistencia de 1 MΩ. Digamos que este es un sistema de 5V, lo que significa que solo se garantiza que el pin sea de hasta 4V. Ahora debe mirar la especificación de entrada digital y ver cuál es el requisito de voltaje mínimo para un nivel lógico alto. Eso puede ser el 80% de Vdd para algunos micros, que serían 4V en este caso. Por lo tanto, un pullup de 1 MΩ está justo en el margen. Necesita al menos un poco menos que eso para garantizar un comportamiento correcto debido a las consideraciones de DC.
Sin embargo, hay otras consideraciones, y estas son más difíciles de cuantificar. Cada nodo tiene algún acoplamiento capacitivo con todos los demás nodos, aunque la magnitud del acoplamiento disminuye con la distancia, de modo que solo los nodos cercanos son relevantes. Si estos otros nodos tienen señales, estas señales podrían acoplarse a su entrada digital. Un pullup de valor más bajo hace que la línea tenga una impedancia más baja, lo que reduce la cantidad de señal perdida que captará. También le brinda un nivel de CC mínimo garantizado más alto contra la corriente de fuga, por lo que hay más espacio entre ese nivel de CC y donde la entrada digital podría interpretar el resultado como un nivel lógico bajo en lugar de un nivel lógico alto previsto. Entonces, ¿cuánto es suficiente? Claramente, el aumento de 1 MΩ en este ejemplo no es suficiente (una resistencia demasiado alta). Es casi imposible adivinar el acoplamiento a señales cercanas, pero yo d quiere al menos un margen de orden de magnitud sobre el caso mínimo de CC. Eso significa que quiero un pullup de 100 kΩ o menos, aunque si hay mucho ruido, me gustaría que fuera más bajo.
Hay otra consideración que hace que el pullup baje más, y es el tiempo de subida. La línea tendrá alguna capacitancia perdida a tierra, por lo que decaerá exponencialmente hacia el valor de suministro en lugar de ir allí instantáneamente. Digamos que toda la capacitancia parásita suma 20 pF. Eso multiplicado por el pullup de 100 kΩ es 2 µs. Se necesitan 3 constantes de tiempo para llegar al 95% del valor de asentamiento, o 6 µs en este caso. Eso no tiene ninguna consecuencia en el tiempo humano, por lo que no importa en este ejemplo, pero si se tratara de una línea de bus digital que quisiera ejecutar a una velocidad de datos de 200 kHz, no funcionaría.
Ahora veamos la otra consideración en competencia, que es la corriente desperdiciada cuando se presiona el interruptor. Si esta unidad se está quedando sin energía de línea o está manejando una cantidad considerable de energía, unos pocos mA no importarán. A 5V se necesitan 5 kΩ para consumir 1 mA. Eso es en realidad "mucha" corriente en algunos casos, y mucho más de lo necesario debido a otras consideraciones. Si se trata de un dispositivo alimentado por batería y el interruptor podría estar encendido durante una fracción sustancial del tiempo, entonces cada µA puede importar y debe pensar en esto con mucho cuidado. En algunos casos, puede probar el interruptor periódicamente y solo encender el pull-up por un corto tiempo alrededor de la muestra para minimizar el consumo de corriente.
Aparte de las consideraciones especiales como el funcionamiento de la batería, 100 kΩ es una impedancia lo suficientemente alta como para ponerme nervioso por captar ruido. 1 mA de corriente desperdiciada cuando el interruptor está encendido parece innecesariamente grande. Entonces, 500 µA, lo que significa que la impedancia de 10 kΩ es correcta.
Como dije, usa 10 kΩ. Es un buen valor.
En primer lugar, este tipo de tutoriales no sirven para nada, no te enseñarán electrónica. Tienes que aprender a dibujar un esquema , el cableado viene después.
Entonces, al carecer del esquema, tuve que derivarlo yo mismo del diagrama de cableado. Bien, eso no fue tan difícil, pero cuando dibujas el esquema, ves que falta algo: ¿a qué se conecta el interruptor táctil? Tienes que saber eso para responder a tu pregunta. Supongo que es una entrada digital del microcontrolador, pero no hay forma de saberlo.
Hay dos situaciones: interruptor táctil abierto e interruptor cerrado.
En el estado cerrado, la entrada del microcontrolador está conectada a tierra, por lo que verá un nivel bajo. También fluirá una corriente a través de la resistencia. Un buen esquema le hubiera dicho que un extremo de la resistencia está conectado a +5V, el interruptor táctil conecta el otro extremo a tierra. A ver si un 10k la resistencia servirá. Entonces la corriente a través de la resistencia es igual = 500 R. Eso parece razonable. Veamos si eso también está bien cuando el interruptor está abierto.
En el estado de interruptor abierto, podemos ignorarlo y pretender que solo hay una resistencia entre V+ y la entrada del microcontrolador. Sabemos por experiencia, o mejor, porque lo buscamos en la hoja de datos que cuando aplica un voltaje a la entrada de un microcontrolador, solo fluirá muy poca corriente, a menudo menos de 1 A. Digamos que es 1 A. Entonces la caída de voltaje a través de la resistencia será 1 A 10k = 10 mV. El voltaje en la entrada será entonces 4.99V. Probablemente esté bien, pero hagamos nuestro trabajo correctamente. Si tuviera un esquema (creo que ya lo tiene, ¿no?) sabría de qué tipo es el microcontrolador. Sé que Arduino es AVR, así que elegiré una hoja de datos de AVR al azar . Las características eléctricas dicen que un nivel de entrada alto debe ser de al menos 0,6 (página 320). Eso es 3V, por lo que 4.99V es seguro.
¿Y si hubiéramos elegido un valor de resistencia diferente? Un valor más bajo significaría una menor caída de tensión y la tensión de entrada sería incluso superior a 4,99 V. Pero luego habría más corriente a través de la resistencia cuando el interruptor está cerrado, y eso es algo que no desea.
Un valor de resistencia más alto estaría bien cuando el interruptor esté cerrado, ya que habría menos corriente, pero el voltaje de entrada en el microcontrolador será inferior a 4,99 V. Aquí tenemos algo de margen, por lo que un valor un poco más alto podría estar bien.
conclusión
Richard Cámaras