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 prueba.
Cada vez que el compresor de la cámara se enciende/apaga, se producen activaciones falsas del interruptor de límite en el Arduino.
Los finales de carrera se conectan normalmente abiertos a través de un circuito pull-up.
La rotación del brazo funciona totalmente bien según mi código, excepto en los momentos en que el compresor se enciende o se apaga.
¿Qué está causando esto y cómo podría solucionarse?
Es casi seguro que se trata de ruido, probablemente debido a varios problemas de diseño:
Como señala Olin Lathrop, el ruido eléctrico es el problema. Hay tres cosas que realmente quieres hacer:
1) Use condensadores donde entren cables largos. Esto evitará que el ruido eléctrico captado por los cables interfiera con el Arduino. También puede usar condensadores cerca del Arduino.
2) Usar aislamiento óptico y mayores flujos 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 ilumina 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ísle tanto las entradas como las salidas si puede.
3) Dirija los cables ruidosos lejos de las áreas sensibles. Mantenga las líneas que salen del recinto lo más lejos posible del Arduino. Por ejemplo, si usa más de un optoaislador, alinéelos de modo que los lados del Arduino estén cerca del Arduino y el lado que se conecta con el mundo exterior esté alejado.
Dmitri Grigoriev
brock adams