¿Arduino obtiene falsos disparadores debido a que el compresor se enciende / apaga?

3

Estoy trabajando en el control de un brazo giratorio con una cámara montada a través de un motor de CC e interruptores de límite dentro de una cámara de pruebas.

Cada vez que se enciende / apaga el compresor de la cámara, se producen falsos disparadores de fin de carrera en el Arduino.
Los interruptores de límite están conectados normalmente abiertos a través de un circuito de pull-up.
La rotación del brazo funciona totalmente bien de acuerdo con mi código, excepto en los momentos en que el compresor se enciende o apaga.

¿Qué está causando esto y cómo podría resolverse?

    
pregunta Nancy

2 respuestas

14

Esto es casi seguro que es ruido, probablemente debido a varios problemas de diseño:

  1. Alta impedancia. Una señal de activación pasiva tiene la impedancia de la activación en el estado inactivo. En un entorno ruidoso, este pullup debe ser bajo, o las líneas flotantes pasivas deben evitarse por completo.

  2. Sin blindaje.

  3. Mala estrategia global de conexión a tierra del sistema. Como mencionó "arduino", posiblemente ni siquiera haya una estrategia general de conexión a tierra del sistema.

  4. firmware incorrecto. Deben esperarse fallos cortos en líneas mecánicamente cambiadas.

respondido por el Olin Lathrop
1

Como señala Olin Lathrop, el problema es el ruido eléctrico. Hay tres cosas que realmente quieres hacer:

1) Use condensadores donde entren los cables largos. Esto evitará que el ruido eléctrico recogido por los cables interfiera con el Arduino. También puedes usar condensadores cerca del Arduino.

2) Utilice aislamiento óptico y flujos más altos de corriente que sean menos susceptibles al ruido. Entonces, en lugar de simplemente usar un pull up para el interruptor, haga que el interruptor cierre un circuito con una resistencia en serie que ilumine un LED que brilla en un fotodiodo o fototransistor. Los optoaisladores cuestan unos pocos centavos y hacen exactamente lo que necesita. Aquí está la hoja de especificaciones para un enlace . Aísla tanto las entradas como las salidas, si puedes.

3) Dirija los cables ruidosos lejos de áreas sensibles. Mantenga las líneas que salen del recinto tan lejos del Arduino como pueda. Por ejemplo, si usas más de un optoaislador, alinéalos para que los lados Arduino estén cerca del Arduino y el lado que se conecta con el mundo exterior esté lejos de él.

    
respondido por el David Schwartz

Lea otras preguntas en las etiquetas