Arduino: uso del transistor NPN como interruptor para el pin analógico desplegable

Permítanme comenzar diciendo que no soy un EE, y mi conocimiento en electrónica es básico, así que tengan paciencia conmigo si, inicialmente, estoy infringiendo algunas reglas.

En esgrima espada, se otorga un toque cuando se hace contacto con el extremo de la punta de un arma: cuando A (Pin analógico A0) y B (Pin analógico A1) están en contacto, tanto A0 como A1 dan 2,5V y un toque es galardonado.

En esgrima de florete, necesito establecer que un tirador ha sido tocado en su Lame (una chaqueta conductora). Por lo tanto, además de la funcionalidad analógica, también necesito implementar un sensor capacitivo en el pin A0. El sensor Cap utiliza un pin digital (D4 en el diagrama) para cargar el condensador a través de una resistencia grande (1 M) y lee el voltaje/estado de un pin receptor (aquí A0).

Por lo tanto, el pin A0 se usa tanto para lecturas analógicas como digitales. Esta es la fuente de mi problema, y ​​por qué estoy aquí.

No tengo más remedio que compartir el pin analógico A0 para fines de lectura analógica y digital (solo hay una línea A). He establecido que no puedo leer los niveles analógicos y la salida del sensor Cap al mismo tiempo, sin exponerme a efectos secundarios adversos (enviar erróneamente 5 V al Cap durante la operación del sensor Cap cuando A y B están en contacto es uno de ellos). .). Por lo tanto, realizo estas tareas simultáneamente:

  1. Muestreo de pines analógicos A0 y A1 (analógico encendido/digital apagado),
  2. Muestreo analógico A0 como ENTRADA digital (Analógico APAGADO/Digital ENCENDIDO),

Mi principal preocupación es lograr algún tipo de aislamiento del sensor Cap cuando está en funcionamiento: esto es para evitar que las resistencias de 1K se interpongan en el muestreo de mi sensor capacitivo y, FUNDAMENTALMENTE, el pin A1 (conectado a 5V a través de una resistencia de 1K) no cargar el Cap durante una operación de detección táctil, destruyendo así el significado de los valores muestreados.

esquemático

simular este circuito : esquema creado con CircuitLab

También necesito evitar que los límites del circuito de detección de tapa se extiendan más allá de sus límites absolutos necesarios, lo cual no es el caso si la punta está presionada o si la resistencia de 1K está tirando de A0 a GND, lo que impide que el condensador se cargue correctamente. .

Entonces, tengo algunas preguntas:

  • En el diagrama, muestro lo que CREO que es la solución a este problema (pero no estoy diciendo que ES la solución).
  • ¿Crees que tengo razón?
  • ¿Voy en la dirección correcta usando transistores NPN? ¿Se usan correctamente?
  • Si no usó este método, ¿Cuál sería el circuito correcto, etc.?

Desde ya muchas gracias a todos por ayudarme. No dude en solicitar más detalles.

Nota: cambió los esquemas para usar Q2 como un PNP siguiendo una sugerencia de 'Capitán Normal' a continuación.

Escribe que las lecturas de ADC no son las que esperaba. ¿Has medido los voltajes en el pin con un multímetro? Tenga en cuenta que el NPN no es un interruptor perfecto. Por ejemplo, cuando está "ENCENDIDO", el voltaje a través del transistor no es CERO.
Estos problemas deberían ser completamente evitables ya que su circuito parece más complicado de lo que requiere la tarea. ¿Por qué no poner la resistencia en serie con el pin analógico y usarlo como salida y luego cambiarlo al modo de entrada analógica?
Gracias Chris Entiendo que el circuito podría no ser perfecto. Entonces, ¿qué recomendaría para implementar un interruptor ON/OFF en estas resistencias, teniendo en cuenta que debo poder desacoplarlas del circuito para poder usar el pin analógico para otro propósito (el sensor capacitivo)?
gracias mike Sí, he medido voltajes con un multímetro y sí, VCC no es 5V. También entiendo que el NPN no es un interruptor perfecto. Entonces, mi pregunta es, ¿cómo puedo lograr un interruptor (casi) perfecto y hacer que mi circuito se comporte como si el NPN fuera interruptores físicos que se pueden encender y apagar electrónicamente? Necesito encenderlos cuando mido tanto A0 como A1, y si no hay contacto entre las puntas de los pines, deberían devolver 0V y 5V. A su vez, cuando hay un contacto, espero que ambos pines analógicos regresen cerca de 2,5 V (divisor de voltaje de las resistencias de 1K). Espero que esto ayude.
No volver a publicar : use el editbotón para solucionar esta pregunta.
Gracias por tu sugerencia Cris. Tomé su comentario a bordo y edité la pregunta con más detalles y antecedentes (también para abordar el comentario XY muy desagradable...). Apreciaría GRANDEMENTE si pudieras echarle otro vistazo. Gracias de antemano.
Como dijo Chris, parece que te estás complicando. La razón por la que alguien dijo que era un problema XY es que esta es su idea de la solución y puede que no sea la correcta, pero sin conocer los requisitos subyacentes, es difícil ayudar a las personas. Por ejemplo, ¿para qué sirve el sensor capacitivo?
Drew, tienes toda la razón, podría no ser la solución correcta. Si necesita saber, necesito que el sensor de tapa detecte que la protección del arma 1 no se ha tocado mientras la punta del arma 2 está presionada, lo que indicaría un golpe no válido. No creo que sea demasiado complejo: el problema es complejo y siempre es difícil simplificar una pregunta, especialmente cuando se la hacen a expertos. Si me permites este comentario hecho con buen ánimo, si das todo, la gente dice que eres demasiado complejo, y si dices menos, dicen que les estás haciendo X-Ying...

Respuestas (1)

Entonces, tengo una pregunta: - ¿Estoy yendo en la dirección correcta usando transistores NPN? - Cuál sería el circuito correcto, etc.

Medir la capacitancia de un objeto del mundo real mediante la carga a través de una resistencia de 1 M probablemente no sea el enfoque correcto ya que las corrientes involucradas son muy pequeñas y es probable que el circuito no mida de manera confiable. Además, conectar objetos externos directamente a los pines de Arduino probablemente no sea una buena idea debido a las posibilidades de que ESD destruya tu Arduino después de cierto tiempo de uso. Por esas razones, creo que primero debes dar un pequeño paso atrás.

Sugiero comenzar midiendo la capacitancia usando un oscilador cuya frecuencia variará dependiendo de la capacitancia. Luego puede medir la frecuencia a través de un circuito que convierte la frecuencia en voltaje para su ADC. Los circuitos para ambos deberían poder encontrarlos en otros lugares.

Una vez hecho esto, debería poder construir un detector para el contacto del sensor encima de su detector de capacitancia. Tendrá varios estados discretos de contacto para sus diversos sensores, por ejemplo, sin contacto, arma A en contacto con cojo B, arma en contacto con muñequera, etc. Dibuje una tabla para mostrar cómo se comporta su circuito cuando los sensores están en todos y cada uno de los posibles. estado. Es posible que tenga suficiente "información" en el circuito existente o que necesite aumentarla ligeramente.

Espero que esto te ayude a orientarte en la dirección correcta.

Gracias, Capitán Normal. No había pensado en ESD. Ese es un punto muy válido. Queda que, independientemente de las rutas alternativas que tome para la medición del sensor de tapa, esto debe hacerse asegurándose de que el sensor de tapa permanezca totalmente neutral a la sección analógica del circuito, y especialmente, el hecho de que A1 es pull-up a 5V... Y aquí es donde lucho. Gracias de nuevo por tu contribución.
Capitán normal, su sugerencia de Oscillator es jodidamente brillante... ¿Puede recomendar piezas que podría usar para este proyecto? (teniendo en cuenta que soy un aficionado y no un EE...)
Hay muchas formas de hacerlo, pero lo primero que pensé en su caso sería usar un IC de temporizador 556, que es un duelo 555 (juego de palabras debido a su aplicación ;-). Puede usar un temporizador como oscilador, reemplazando el capacitor a tierra con su sensor, y el segundo temporizador como un disparo único activado por cada flanco descendente de la señal oscilante. Filtre la salida del segundo temporizador con un RC simple para convertirlo en voltaje. Comience con la página de Wikipedia para el "555 timer IC", en particular la sección "Astable" para el oscilador y la sección "Monoestable" para la conversión a voltaje.
Brillante. MUCHAS gracias Capitán Normal. No estoy seguro de entender todo lo que acabas de decir, pero esta primera respuesta "normal" que obtuve hasta ahora...
Ah, actualizaste tu OP, probablemente como lo respondí. Veo lo que estás haciendo, ¡no está mal! Sin embargo, mantendría mi sugerencia para la medición capacitiva, ponla en marcha y luego encontraré la mejor manera de detectar el interruptor de punta además de eso sin interferir demasiado con él, lo que no debería ser demasiado difícil. ¿Tiene acceso a un osciloscopio? Obtenga un temporizador 555 funcionando como un oscilador, luego cambie el capacitor por su sensor (o agregue su sensor en paralelo) y vea si puede hacer que oscile a diferentes frecuencias dependiendo de lo que esté haciendo el sensor. Entonces ve desde allí.
Si el enfoque 555 no funciona (p. ej., la capacitancia es demasiado baja, lo que significa que sus resistencias son demasiado grandes, p. ej., > 100 k máx.), es posible que necesite un tipo diferente de oscilador (p. ej., basado en un comparador; debería poder encontrar circuitos de ejemplo ).
Capitán Normal, estoy estudiando el Oscilador aprox. y el uso de un 555 seguro. Sin embargo, esto puede llevarme algún tiempo, ya que ahora está llevando mis habilidades más allá de mi área de comodidad (...). Ahora: no estoy demasiado preocupado por tener que medir muy poca capacitancia o tamaño de resistencia (en este momento, creo que 100k es suficiente ya que solo necesito una señal digital), sino cuánto tiempo toma un ciclo de 555 con esta resistencia (T = 1.1RC todavía se mantiene?). También tengo pesadillas sobre mi conexión de 5V en A1 que interfiere con el proceso de carga/descarga y no estoy seguro de que los esquemas anteriores funcionen para evitar esto...
Por cierto, medir la capacitancia a través de un oscilador en lugar de una carga/descarga de fuerza bruta es un enfoque elegante y, como ingeniero francés, siempre me ha gustado lo elegante... pero mi problema es la VELOCIDAD. Mi presupuesto de tiempo es <1 ms: por lo tanto, he asignado menos de 700 micros para realizar un Cap. Ciclo de detección, y todavía tengo que leer uno de mis pines analógicos. Si se presiona la punta durante el ciclo 555, 5V interfiere con el 555 y no puede pasar nada bueno por eso...
y para responder a su otra pregunta sobre el osciloscopio, no tengo acceso a uno. Una vez más, si puede recomendar uno que no sea tan caro... (pero una vez más, barato significa eso, por lo general...)
No ha marcado la capacitancia que está tratando de medir en su circuito, por lo que es difícil comentar. Había asumido la capacitancia a tierra como punto de partida. Si no es esto, probablemente necesitará un diseño de oscilador diferente. Mi sugerencia se basó en la medición continua de la capacitancia y el interruptor de punta, en lugar de dos modos. Si realmente necesita cambiar de modo cada 1 ms aproximadamente, entonces un oscilador no funcionará fácilmente para la medición.
Si la capacitancia a tierra no es lo que está midiendo, sino la capacitancia a través del interruptor, entonces un circuito similar al que tiene es posiblemente más apropiado. En ese caso, sugeriría reemplazar Q2 con un PNP para que el circuito sea simétrico. Podría considerar usar dos MOSFET o un par de MOSFET complementarios: los MOSFET generalmente son más fáciles de usar para cambiar entre dos estados que los transistores bipolares.
Un osciloscopio puede ser extremadamente útil. Para sus propósitos, lo más probable es que el más barato que pueda tener en sus manos esté bien, ya que estará tratando con frecuencias de audio. Un auricular de cristal es útil como una alternativa económica para monitorear los osciladores de frecuencia de audio; también puede ser útil además de un osciloscopio porque nuestros oídos son extremadamente buenos para escuchar los cambios de frecuencia.
Nuevamente Capitán, muchas gracias por sus sugerencias y comentarios. Hay dos niveles de capacitancia que estoy tratando de medir. El que está en foco aquí (una espada o florete) está en 200-500nF. También tengo uno más grande (el cojo, más conductivo y mucho más grande) que no menciono aquí (para simplificar) que es de 50-400uF, pero tendré que confirmar estas cifras ya que son solo una suposición. ahora mismo y varían enormemente con cada equipo (óxido, sudor, rotura de fibras, conexiones y orden general, suciedad, etc...).
Re. el osciloscopio, ¿sería adecuado este?: amazon.co.uk/dp/B07B8K8671/ref=asc_df_B07B8K867157034015/…
No puedo comentar sobre osciloscopios en particular, pero no hay nada de malo con las especificaciones de ese para sus propósitos. Prácticamente cualquier cosa que funcione hará el trabajo lo suficientemente bien, siendo mostrarle lo que está pasando con su circuito.
De acuerdo. Entendido. Gracias por el comentario sobre el PNP también. He modificado mis esquemas para incluirlo. Ahora en MOSFET, esta es un área totalmente desconocida para mí y he leído que la selección de un MOSFET en comparación con la de un BJT es un factor más complejo. Una cosa más que tendré que estudiar... Y acabo de ordenar algunos circuitos integrados 555/556 para explorar la medición de capacitancia con osciladores, pero todavía estoy tratando de averiguar por qué sugirió que use un circuito integrado dual 556, si pudiera dar más detalles. eso, cuando tengas la oportunidad.
Un oscilador producirá algo así como una salida de onda cuadrada con una frecuencia que varía con la capacitancia. La frecuencia significa para usted el número de flancos descendentes por segundo. El segundo temporizador está configurado como un disparo único (por ejemplo, que produce pulsos de 1 ms) activado por cada flanco descendente del primero. Entonces, cuanto más rápido obtenga los disparadores, más pulsos de 1 ms obtendrá por segundo. Pasas esto a través de un filtro RC para obtener un voltaje que varía linealmente con la frecuencia. También puede comprar chips que hacen conversión de frecuencia a voltaje, pero usaría un 556 para mantenerlo simple con un IC.
Bueno, muchas gracias, capitán. Si eso no es demasiado problema, es posible que tenga que volver a usted en algún momento, ya que sospecho que necesitaré alguna orientación sobre cómo construir este oscilador (circuito y código). Déjame decirte que ya has sido de gran ayuda.