¿Son razonables los valores de resistencia (R1 y R2) en este circuito?

2

Este circuito simplificado está diseñado para detectar dos interruptores de límite (que nunca pueden cerrarse simultáneamente, al menos en teoría). El voltímetro que se muestra es un marcador de posición para una conexión a un pin de entrada analógica de un Arduino. Cuando ambos interruptores están abiertos como se muestra en el diagrama, el pin debe detectar 3V31. Cerrar SW1 da 5V y cerrar SW2 da 0V.

Esto funciona muy bien en la simulación, pero me pregunto acerca de la corriente total como lo muestra la sonda GND ... Mi vaga intuición me dice que debe haber una cantidad mínima de corriente para que el convertidor A / D pueda detectarla. en el Arduino, pero no he podido encontrar (o reconocer) una especificación para este mínimo en ninguna parte. (En contraste, las especificaciones para la corriente máxima que un pin puede hundir se discuten ampliamente).

    

5 respuestas

4

Puede que esté muy lejos de la base, pero creo que este es un caso en el que no quieres pensar demasiado en el problema, KISS.

Cuando SW2 está cerrado, el pin de entrada está conectado a tierra y debes leer 0. Esto es como en el caso de que un pin no utilizado esté conectado a tierra en lugar de dejarlo flotando.

Cuando SW1 está cerrado, la entrada está vinculada a 5 V (ya sea Vcc o Aref), y debería leer el valor máximo (es decir, todos los bits binarios serán 1)

En los dos casos anteriores, puede eliminar las resistencias del circuito anterior, ya que no afectan el nivel del pin de entrada (es decir, uno u otro de los interruptores está cerrado).

El único caso que queda por considerar es cuando ambos conmutadores están abiertos. Si no tuviera ninguna resistencia, el pin de entrada estaría flotando. Cuando la entrada al ADC se deja flotante, uno esperaría leer valores semi-aleatorios del puerto, ciertamente no un valor invariable de 0 o MAX (todos los bits activados). Aunque no recomiendo omitir las resistencias, debería poder hacer que esto funcione sin ellas.

Si bien no es parte explícita de su pregunta, el caso más interesante es si desea detectar que uno de varios interruptores se cierra con un solo pin de entrada analógica. Para un número razonable de pines, digamos 10, esto se puede hacer fácilmente con una escalera de resistencia ( enlace ). También puedes la escalera de Google R2-R.

Para ver cómo se implementa esto, consulte: enlace

Como nota aparte, si solo quisiera detectar un cierre de un solo interruptor, lo más probable es que utilice un pin de E / S digital en lugar de uno analógico, si está disponible. La razón más común para usar un pin analógico en lugar de digital para detectar cierres de interruptores es cuando el número de pines digitales disponibles es menor que el número de interruptores.

    
respondido por el JonnyBoats
3

No veo por qué las dos resistencias no son iguales. Eso flotaría el valor en el medio del rango cuando ninguno de los interruptores está cerrado, y en un extremo u otro cuando uno está cerrado. Eso dejaría el mayor margen para diferenciar entre dos estados.

Las entradas A / D generalmente se especifican para requerir una impedancia de fuente mínima para funcionar a su máxima velocidad o precisión. Tendrá que mirar la documentación de arduino para ver qué es eso, o posiblemente en la hoja de datos del microcontrolador si no hay nada entre las entradas analógicas y las micro. Tenga en cuenta que no necesita ningún tipo de precisión. Cómo exactamente el A / D se degrada con una impedancia de fuente superior a la especificada es algo específico del chip, y en su caso posiblemente un circuito adicional agregado por el arduino.

Tenga en cuenta que en su configuración, la impedancia de la señal es básicamente 0 cuando cualquiera de los interruptores está cerrado. Es la combinación paralela de las dos resistencias cuando ambos interruptores están abiertos. Si ambas resistencias fueran de 10 kΩ, entonces la impedancia sería de 5 kΩ. La corriente de reposo es la tensión de alimentación (aparentemente 5 V en su caso) dividida por la suma de las dos resistencias. Esto sería 5V / 20kΩ = 250µA si ambas resistencias son 10 kΩ.

Es probable que las cosas funcionen lo suficientemente bien con una impedancia de fuente de 5 kΩ. Podrías probarlo y ver. Es posible que no obtenga exactamente la escala 1/2 con los dos interruptores abiertos, pero es probable que se encuentre lo suficientemente cerca como para distinguir de manera confiable que cualquiera de los interruptores esté cerrado.

    
respondido por el Olin Lathrop
3

Los convertidores A / D normalmente tienen una impedancia de entrada baja, que será paralela a su R2, por lo que el 3.31 V teórico puede dar una lectura diferente (más baja). Por ejemplo, si la impedancia de entrada es 10k \ $ \ Omega \ $, el equivalente de R2 se convertirá en 5k \ $ \ Omega \ $, y la lectura será de 2.5 V. Si el valor exacto es importante, puede utilizar un seguidor de voltaje en el nodo R1 / R2:

Los valores que está utilizando para R1 y R2 deberían estar bien.

    
respondido por el stevenvh
3

Los valores son razonables pero pueden ser más altos.

Cada IC de ADC tiene sus propias especificaciones sobre cuán alta es la entrada de resistencia que puede tolerar. Un enlace a la hoja de datos del procesador en cuestión nos permitiría señalar el valor relevante para usted, pero, en ausencia de un valor específico, esto suele estar en el rango de 10k a 50k y, a menudo, de 20 a 30 k.

Los valores de 22k o incluso 33k probablemente funcionarán bien allí. El valor máximo especificado usualmente se relaciona con mantener el error debido a que el tiempo de RC sea constante a menos de 1 bit de resolución ADC. Como no le importa demasiado la resolución aquí, es probable que incluso las resistencias de 100K estén bien.

Murphy dice que ambos interruptores se cerrarán simultáneamente en algún momento. También dice que esto sucederá cuando realmente no quieras que lo haga.

Hay muchos circuitos alternativos que no se arriesgan a extraer humo mágico de la fuente de alimentación y los contactos del interruptor. por ejemplo,

(1) coloque una resistencia de 1k (por ejemplo) en serie con cada interruptor. Especialmente con valores de resistencia más altos, esto tendrá un efecto insignificante en lo que quiera hacer.

(2) Suponiendo que los interruptores se pueden conectar como se desee.

Diga 22K V + al punto X
 Cambie uno desde el suelo a través de 10 k al punto X.
 cambiar dos de tierra a través de 33k al punto X.

S1 S2 = 0 0 Vx = 5V Ambos abiertos
 S1 S2 = 1 0 Vx = 5 x 10 / (10 + 22) ~~ = 1.6V S1 cerrado
 S1 S2 = 0 1 Vx ~ = 3 V S2 cerrado  S1 S2 = 1 1 Vx ~ = 1.3V ambos cerrados

Resultados solo para mayor claridad

5V ninguno
 3V S2
 1.6V S1  1.3V S1 + S2

Se obtendrá una mejor distribución con un poco de reflexión.

tiene su 'Tú

    
respondido por el Russell McMahon
1

Algunos procesadores tienen pull-ups y pull-down opcionales en los pines de entrada. Si su procesador tiene ambos, podría omitir las resistencias que ha mostrado, aunque sería bueno agregar resistencias (probablemente de 470 ohmios) en serie con los interruptores. Al encender el pull-up interno del procesador, esperar un momento (probablemente en algún lugar entre unos pocos microsegundos y un milisegundo o algo así), y verificar el estado de entrada revelará si SW1 está cerrado. Activar el menú desplegable interno, esperar y verificar el estado de entrada revelará si SW2 está cerrado.

Si los interruptores tienen resistencias en serie, se podría acelerar la lectura haciendo que el procesador haga funcionar cada pin en alto brevemente después de habilitar los pull-ups internos, y el bajo brevemente después de habilitar los pull-downs internos.

Si no están disponibles los pull-down internos (pero sí los pull-ups), y si tiene una resistencia de serie en al menos SW2, podría tener una resistencia de pull-down permanente, débil. Para verificar si SW1 está cerrado, encienda el pull-up, mueva el pin hacia arriba brevemente y léalo. Para verificar si SW2 está cerrado, apague el pull-up, baje el pin hacia abajo brevemente y léalo.

    
respondido por el supercat

Lea otras preguntas en las etiquetas