¿Por qué mi condensador casero tiene una polaridad aparente?

El problema

He construido algunos condensadores simples para usar como almohadillas de presión en las escaleras de mi casa. El objetivo es iluminar las escaleras mientras las subes. Aquí está en acción . Pero obtengo lecturas extrañas de ellos, pero solo cuando se conectan en un sentido.

El hardware

Los he construido pegando un trozo de papel de cocina a cada lado de un trozo de cartón y luego pegando un cable pelado a cada lado. Luego se conectan a una pequeña placa de circuito a través de un conector molex KK ("SENSOR"), esquema a continuación.esquema del circuito

Los puertos DATA_IN y DATA_OUT se conectan a otras placas de circuitos similares. RA0 genera datos en formato serial a 57600 baudios. RA2 se conecta a RA1 de la placa "aguas abajo" y permite que los dispositivos se autoenumeran y administren el uso del bus serie.

La energía es proporcionada por una batería y los datos se leen a través de un rasberry pi a través de un optoacoplador, por lo que no hay conexión eléctrica fuera de este sistema.

El firmware

El firmware en el PIC funciona configurando primero RA4 bajo durante un milisegundo para drenar el capacitor. RA4 luego se convierte en una entrada y se conecta a un comparador que compara con una referencia de voltaje interno (4/5 Vdd). RA5 ahora se eleva, iniciamos un temporizador y medimos cuánto tiempo tarda el voltaje en alcanzar la referencia. Cuando se aplica peso al sensor, la tarjeta se comprime y la capacitancia aumenta, y tarda más en cargarse.

Resultados

La mayoría funcionan con normalidad, y tardan unos 800 uS en cargar hasta 4/5 Vdd. Pero algunos dan lecturas realmente extrañas, que fluctúan entre aproximadamente 30 uS y 4000 uS para cargar, y cambia en cada lectura. Aún más extraño, si tomo el conector adjunto al encabezado "SENSOR" en el tablero e invierto la polaridad del sensor, comienza a funcionar normalmente.

Entonces, en cierto sentido, tengo una solución al problema: invertir la polaridad de los sensores, pero esto no es satisfactorio ya que no tengo idea de por qué estos sensores aparentemente simétricos deberían comportarse de manera tan diferente según la forma en que estén conectados. ¿Por qué está pasando esto?

Podría ser que "invertir la polaridad" sea simplemente arreglar una conexión intermitente. ¿Podríamos valer la pena revisar sus rizos para asegurarnos de que estén bien unidos?
Que conexiones tiene a tierra?
Nada está conectado a tierra como conectado a un pico en la tierra: los pines 1 en DATA_IN y DATA_OUT están conectados a los terminales negativos de la batería, y estos están conectados a un plano de tierra en el reverso de la placa de circuito
Solo una suposición, pero ¿funcionan bien si el lado en el que se para está conectado a RA4/RA5 pero no cuando está conectado a negativo?
Supongo que tiene una antena grande para campos E de frecuencia de línea y sin blindaje a 0V o tierra. De ahí el mal diseño. Intente inyectar un reloj y mida el acoplamiento de la señal con carga y acoplamiento controlado por presión con filtro de paso de banda para rechazar el zumbido.
¡Dificil de decir! Solo he resuelto este patrón desde que los sensores se instalaron debajo de la alfombra. Los sensores se comportan de manera extraña incluso cuando no hay nadie parado sobre ellos, y también lo estaban haciendo antes de que se colocara la alfombra. Realmente no presté mucha atención a la orientación porque pensé que era obvio que no estaban polarizados.
@Tony Stewart. Intenté conectar todo a tierra a través de la raspberry pi, pero eso pareció empeorar las cosas, así que opté por el optoacoplador y la fuente de alimentación de la batería. Soy un novato en electrónica, por lo que no estoy familiarizado con sus términos: ¿quiere decir ruido de 50 Hz por "frecuencia de línea"? ¿Cómo podría esto causar problemas con el sensor conectado en un sentido en lugar del otro?
El ruido de 50 Hz provendrá de elementos como los cables de alimentación que se encuentran cerca de los sensores o del cableado de conexión. Como un lado del sensor es "común", tenderá a proteger el lado de la "señal" si está más cerca de la fuente de interferencia. ¿Supongo que los cables a los sensores no están blindados?
Lo que recomendaría es acondicionar su señal proveniente de su almohadilla de presión con un par de puertas lógicas, luego enviarla a un circuito de disparo de un temporizador 555 para pulsar su imagen.
También esperaría que el cambio de capacidad al tener un humano cerca (es decir, como un sensor táctil capacitivo) sea significativo.
@drtechno Está haciendo detección capacitiva: detecta cambios en la capacitancia midiendo el tiempo de carga. Sus cambios sugeridos no se ajustan a ese concepto.
"Los he construido pegando un trozo de papel de cocina a cada lado de un trozo de cartón y luego pegando un cable pelado a cada lado". No se puede esperar un buen contacto continuo de baja resistencia pegando un alambre a una lámina de cocina hecha de aluminio. Siempre hay una capa de óxido en el papel de aluminio. Será mejor que uses papel de cobre y sueldes el cable. Use tres capas de lámina, ambas capas exteriores conectadas a tierra para proteger la capa interior.
@JRE sí, eso funcionaría. Creo que el problema tiene que ver con la longitud del cable. Sería difícil explicar el circuito sin dibujarlo, así que dibujaré uno y publicaré de lo que estoy hablando.
ENE 2020: ¿Funcionó? ¿Qué lo arregló? ¿Fue la entrada de Olin la respuesta?

Respuestas (2)

Una placa de su condensador está captando interferencia, probablemente del cableado de alimentación de su casa. La razón por la que las lecturas son tan erráticas es que depende de la parte del ciclo de energía en la que se tome la lectura. Solo algunos sensores presentan este problema porque el capacitor o los cables están más cerca del cableado de alimentación que los de los otros sensores. .

La razón por la que cambiar la polaridad ayuda es porque la interferencia proviene de un lado del capacitor. Atar la placa de ese lado a tierra reduce en gran medida el ruido acoplado a la otra placa, porque la placa conectada a tierra ahora actúa como un escudo.

Esta es una gran ilustración de por qué un algoritmo de detección capacitiva tan ingenuo no se usa en casos reales. Los cambios de capacitancia son pequeños y las impedancias grandes para hacer manejables las constantes de tiempo. Eso es simplemente invitar a la captación de ruido. Sin un algoritmo que al menos intente cancelar el ruido, hay pocas esperanzas de un funcionamiento fiable.

Usted describe el antiguo método cap-sense basado en el tiempo, incluso incorporado por periféricos integrados en algunos PIC. Sin embargo, eso no lo convierte en una buena idea. Tenga en cuenta que este tipo de periférico cap-sense no se incluye mucho, si es que se incluye, en las piezas más nuevas.

Aquí está el método cap sense que uso principalmente:

Siempre, al menos, intente cancelar el ruido de modo común. Tome dos lecturas usando polaridad opuesta o placas o algo así. Las dos lecturas opuestas de nivel bajo se toman juntas como una lectura de nivel superior. Lo ideal es que tome estas lecturas a menudo de forma repetitiva. Si se organizan correctamente, el ruido de modo común se cancela después de filtrar adecuadamente el flujo de lecturas de nivel superior.

En lugar de medir una constante de tiempo, mida el cambio de voltaje debido a un paso. Eso es mucho más rápido, por lo que la ventana de tiempo cuando es vulnerable al ruido es más corta. También permite que las mediciones consecutivas se tomen más cerca en el tiempo, lo que ayuda a reducir el ruido de modo común si cada medición cambia algo de la anterior. Más mediciones por tiempo también permiten un filtrado de paso bajo más agresivo, lo que produce un mejor margen de ruido.

Para mis botones de detección de tapa (no se deforman, por lo que es un problema un poco diferente al suyo), conduzco la línea de salida común y la línea que quiero detectar, ambas altas. Cambie la línea de detección a una entrada A/D, baje la línea de salida, espere un poco más que el tiempo de adquisición A/D y convierta. Luego haga lo mismo nuevamente excepto que ambas líneas comienzan bajas y la línea de excitación obtiene un paso alto. Al sumar cuánto cayó el primero desde alto y cuánto subió el segundo desde bajo, el ruido de modo común se reduce significativamente. Hacer esto con frecuencia, cambiando la polaridad cada vez, produce una buena inmunidad al ruido en general después del filtrado de paso bajo.

En este método mido el acoplamiento a tierra, lo que disminuye el acoplamiento desde la línea de salida. Por lo tanto, una señal positiva obtiene menos respuesta general. En el caso de los botones de detección de tapa en una PCB, rodeo cada botón con una inundación de tierra. El dedo agrega capacitancia entre el botón y la inundación del suelo. La inundación del suelo también actúa como un escudo, minimizando la captación de ruido de otros lugares.

Tengo una placa de demostración de cap sense donde el ruido aleatorio después de todo el procesamiento es de aproximadamente ± 1 conteo simplemente sentado allí. Un toque sólido con el dedo produce valores de alrededor de 200-350. En otras palabras, obtengo una sólida relación señal/ruido de 100:1 con este método.

Más investigación en mi sistema ha mostrado la respuesta a esto: acoplamiento de 50 Hz de las líneas de alimentación de la casa (como todos los demás han dicho). Cada sensor en realidad muestra alguna variación entre las muestras, y poner todos los números en una hoja de cálculo muestra una variación sinusoidal, con un período de aproximadamente 1 segundo. Algunos sensores tienen mucha más variación en una orientación que en la otra, probablemente debido a su orientación física hacia la fuente de interferencia.

Cada muestra tarda unos 5 ms en procesarse, y luego espera 250 ms hasta hacer la siguiente muestra. Esto nos da un período de 255 ms, o 12¾ ciclos a 50 Hz, que se procesará a través de la señal principal cada 4 muestras (o un segundo).

Resolví este problema por mí mismo haciendo que el PIC monitoree la ondulación de 50 Hz y sincronice la muestra con el pico de la ondulación. Esto ha llevado a lecturas de sensores estables como rocas.

La solución de Olin es en realidad mucho mejor que esta, y la implementaré a continuación si tengo algún problema.