La lectura del sensor es caótica cuando Arduino está alimentado por una computadora portátil desenchufada

Tengo un sensor de proximidad Sharp conectado a mi Arduino (entrada analógica). Este Arduino está conectado y alimentado a través de USB por una computadora portátil.

  • Cuando la computadora portátil está enchufada, todo funciona bien (obtengo lecturas consistentes).

  • Cuando la computadora portátil funciona con baterías, los valores que estoy leyendo son "caóticos". Quiero decir que varían mucho.

También tengo un protector de motor Arduino, que funciona con una batería externa, pero eso es solo para los motores (los sensores funcionan con Arduino). Sin embargo, el GND de la batería y del Arduino están conectados, ¿tal vez eso esté causando el problema?

¿O se requiere demasiada energía del USB?

Bueno, ¿tienes alguna idea para entender eso y arreglarlo?

Información adicional:

  • La lectura de los sensores se "suaviza" utilizando un filtro de paso bajo (consulte mi pregunta anterior al respecto ).
  • (si necesita más información, aparecerá aquí)
¿Demasiado ruido? ¿Tiene condensadores de desacoplamiento en el sensor? ver esta pregunta
¿Puedes publicar un diagrama de bloques o un esquema? ¿El circuito está conectado a tierra a algo? ¿Se va si lo pones a tierra en algo? ¿Tiene un osciloscopio para obtener un seguimiento de la señal mientras está enchufado y desenchufado? Supongo que es un problema causado por un circuito flotante y altos voltajes de modo común en alguna parte.
Desconectar (o al menos no accionar) los motores para ver si el problema persiste cuando la computadora portátil se queda sin batería sería un experimento obvio. Si es así, podría ser que la alimentación del bus USB de la computadora portátil sea ruidosa en el modo de batería.
@Dean Como dije en la pregunta, usé un filtro de paso bajo (ver electronics.stackexchange.com/questions/17754/… )
@Chris, estoy haciendo esas pruebas sin accionar los motores, no hay diferencia con los motores en marcha.

Respuestas (3)

Basado en el informe de que funciona cuando el circuito está alimentado por su propia batería, realmente parece que el suministro USB VBUS de la computadora portátil es ruidoso cuando funciona con baterías.

Tal vez el VBUS proviene de un regulador de conmutación mal implementado o un convertidor CC/CC o uno con algunos componentes defectuosos, que está bajo más estrés cuando funciona con baterías que cuando está apagado con el voltaje más alto del cargador.

Debería ser posible filtrar este suministro utilizando un inductor en serie y una tapa; esto será más efectivo que un capacitor solo. Incluso puede hacer múltiples etapas de dichos filtros.

Pero puede ser más fácil usar solo una batería si eso funciona para usted.

Gracias, eso haré entonces. Pero para evitar tener 3 baterías, ¿crees que puedo terminar con el mismo problema (es decir, ruido en la fuente de alimentación) si enciendo mi Arduino con la batería que uso para los motores (voltaje ajustado, por supuesto)? Quiero decir, ¿los motores que giran no afectarán al Arduino?
Los motores definitivamente pueden ser un problema, pero uno que puede solucionarse utilizando un buen filtrado de suministro entre los controladores del motor y el resto del circuito. O no puede hacer funcionar los motores y leer los sensores al mismo tiempo (suponiendo que el ruido no sea tan malo que perturbe el estado interno del arduino). Volver a poner el grunge del motor en el USB (cuando no se usa una batería) tampoco parece una gran idea, pero parece que el suministro de USB es feo para empezar.

Suena como un bucle de tierra.

El terminal de salida de CC (-) de la computadora portátil está conectado al pin de tierra del enchufe dentro del adaptador. El problema generalmente se resuelve eliminando todas las demás conexiones a tierra. Compruebe si su Arduino está conectado a algún otro dispositivo conectado a tierra, por ejemplo, un osciloscopio.

Esto no suena como un bucle de tierra. Un bucle de tierra causaría problemas cuando la computadora portátil está enchufada, y los problemas desaparecerían cuando funciona con baterías. Esto es lo contrario, según la pregunta.
@endolith Podría haber múltiples terrenos de alta impedancia, por ejemplo, a través de un diodo de protección en un CMOS IC. La tierra de baja impedancia de la computadora portátil puede, a falta de una palabra mejor, "anular" estas otras tierras, lo que hace que el efecto desaparezca cuando se conecta esa tierra.
¿Cómo es eso un problema de bucle de tierra?
El Arduino no está conectado a nada más. Pero intenté conectar el Arduino al mismo tiempo a un USB (portátil) y a una batería (9V, no es lo mismo que los motores). ¡Ahora mis sensores funcionan correctamente! ¿Es eso útil?

Intente agregar un condensador GRANDE en el riel de la fuente de alimentación, al menos 1,000 uF. 10.000 uF si está disponible. Si eso no hace ninguna diferencia, es probable que se trate de un problema de ruido radiado. Si agregar el condensador ayuda, es probable que se trate de un problema de ruido conducido.

Los motores pueden ser muy desagradables, incluso con su propio suministro. Si los motores se impulsan en una sola dirección, entonces los diodos inversos a través del motor son esencialmente esenciales. Si los motores se accionan bidireccionalmente, es esencialmente esencial algún tipo de amortiguación. (¿Los motores son mono o bidireccionales?)

El USB no debe tener más de 10 µF conectados, de acuerdo con los límites de corriente de entrada de la especificación.
Sí. Pero. Para fines de solución de problemas temporales, como aquí, es muy poco probable que la capacitancia adicional cause un problema. Al igual que con cualquier actividad de este tipo, jugar con sistemas fuera de especificación puede causar problemas. Pero es poco probable aquí. El usuario tiene que decidir qué es un "riesgo aceptable". Muchas personas abusan del USB extrayendo un exceso de energía de él; no lo hace "bueno", pero generalmente es factible. uF alrededor de 0.12 Watt.segundos. Agregue una pequeña tapa de serie para la identificación de carga deseada y haga un cortocircuito cuando esté cargada. La caída de energía puede ser el principal riesgo.
Intenté conectar el Arduino al mismo tiempo a USB (portátil) y a una batería (9V, no es lo mismo que los motores). ¡Ahora mis sensores funcionan correctamente! ¿Es eso útil?