¿Por qué el pin GND de mi Arduino emite energía en lugar de conectarlo a tierra?

Estaba depurando el circuito a continuación con mi nuevo multímetro cuando descubrí que el pin de tierra de mi Arduino en realidad estaba emitiendo energía. Conecté la pata más larga de un LED al pin de tierra y confirmé que, de hecho, el pin estaba alimentando el LED.

Siento que este es probablemente el problema que tengo con este circuito y me pregunto qué causaría que el pin de tierra emita un voltaje no negativo. Mejor aún, ¿cómo podría resolver este problema?

Esquemático

simular este circuito : esquema creado con CircuitLab

Ingrese la descripción de la imagen aquí

Si coloca el LED en serie con el cable de tierra, toda la corriente que regresa a la fuente de alimentación debe pasar por el LED. Todo el Arduino está actuando como una resistencia.
@Transistor, incluso el multímetro mostró que la energía fluía fuera de la tierra.
Se necesita más información y, tal vez, una foto de su configuración y técnica de medición, incluida una imagen clara de la configuración de su multímetro y las conexiones de la sonda. ¿Dónde exactamente estás midiendo este voltaje o corriente? (¿Cuál es?) Cuando conectaste el LED, ¿lo pusiste en serie con el cableado de tierra o tocaste el ánodo (+) con el cable de tierra y, de ser así, dónde conectaste el cátodo (-)?
Voltaje, medí 3.09 voltios del pin GND. ¿Qué información adicional se necesita? Estaré encantado de proporcionársela.
@El ánodo del transistor se conectó al pin GND y el cátodo se conectó a la tierra común, que es una placa de pan a la que están conectados los 5 V y 12 V negativos y la GND de la placa del controlador ULN2003
@user28910 para probar si el pin realmente estaba emitiendo energía o no
Olvidó mencionar si la conexión a tierra de Arduino estaba o no conectada directamente al negativo de la placa de pruebas durante la prueba de LED.
@Transistor estaba conectado allí sí
Bueno, entonces estás diciendo que conectaste un LED en paralelo con un cable (lo que provocaría un cortocircuito en el LED) y el LED se encendió. Eso no puede suceder, por lo que tiene un error de cableado en alguna parte.
@Transistor no, me malinterpretaste, quité el cable paralelo y puse el LED en su lugar
+1 por agregar la foto (diagnóstico muy útil)
DE ACUERDO. El problema de los LED está resuelto. @Justme lo ha explicado. Corres el riesgo de dañar algo haciendo eso. La tierra de Arduino siempre debe estar conectada directamente a tierra ya que todas las señales están referenciadas a tierra.
Si no conecta el pin de tierra a tierra, no estará conectado a tierra. ¿Cuál es el misterio?

Respuestas (5)

No es necesario que resuelvas el problema porque no lo hay. Lo que ves es perfectamente normal, si pones un LED en un cable de retorno a tierra, pero poner un LED en el cable de retorno a tierra de Arduino no es normal.

Arduino toma energía al consumir corriente del suministro de 5V a través del pin de 5V. Luego, la corriente debe regresar desde el pin GND a la fuente de alimentación. Esa corriente encenderá un LED si lo coloca en el camino de la corriente tomada por Arduino.

Simplemente retire el LED porque, para empezar, no pertenece allí y el circuito está bien. Si el Arduino consume más corriente de la que el LED puede manejar, el LED se dañará y puede quemarse.

"se puede quemar". o estallar en llamas. Solo lo he visto una vez, en condiciones de laboratorio cuidadosamente preparadas, pero sucedió.
@Molot Creo que no es muy probable con un Arduino, porque no usan mucha corriente
Más importante aún, con ese LED de allí, el GND ya no es GND, pero permanece alrededor de 1 V sobre el suelo. Entonces, ahora los circuitos lógicos "verán" el voltaje de entrada como desplazado hacia abajo por este, y todo podría pasar, seguro que los márgenes de ruido de las señales se verán gravemente afectados.

Creo que lo que te estás perdiendo es que cuando conectas un dispositivo, no se supone que su pin de tierra suministre tierra , se supone que debes suministrarle tierra . El Arduino usa corriente para operar; después de que se inserta en el pin VCC, tiene que ir a algún lugar, y ese lugar es el pin de tierra.

Necesitas conectar ese pin de tierra correctamente. Mientras tanto, sí, espere que salga corriente.

Impulsar un motor (o cualquier otra carga inductiva) requiere un sistema de retorno a tierra de muy baja impedancia. Mirando la foto, esos cables largos y delgados y esa placa blanca sin soldadura simplemente no son el enfoque de construcción correcto para impulsar un motor. Hay efectos transitorios (que no se pueden ver sin un osciloscopio) cuando el ULN2003 se enciende y se apaga, lo que puede enviar corrientes sorprendentemente grandes a través del sistema de retorno a tierra y eso, a su vez, provoca errores de "rebote a tierra".

La prueba de diagnóstico de poner un LED en serie con GND solo demuestra que fluía algo de corriente desde el Arduino hacia el sistema de retorno a tierra; no es una indicación de problemas. Pero no es una buena prueba de diagnóstico, porque un efecto secundario de esta prueba es que eleva el voltaje en la GND del chip. Entonces, en lugar de obtener el voltaje de suministro completo de 5 V, Arduino solo obtiene quizás 3,5 V (suponiendo un voltaje directo de LED de 1,5 V), y los niveles lógicos se refieren al pin GND de Arduino, no al sistema de retorno a tierra. Con una caída de voltaje tan grande como la que da un LED, eso puede ser suficiente para hacer que los niveles lógicos sean mal interpretados por cosas fuera del Arduino.

Es un problema bastante común, porque en los esquemas simplemente colocamos un símbolo de tierra en cualquier lugar y simplemente asumimos que las corrientes de retorno a tierra hacen lo que necesitan hacer. En una PCB con un plano de tierra, esa es una suposición válida; pero para la conducción motorizada, el sistema de retorno a tierra es una parte importante del sistema en su conjunto. La mayor parte de la gran corriente de tierra fluirá en un bucle alrededor del motor, el ULN2003 y la fuente de alimentación. La clave es hacer que ese bucle de alta corriente sea físicamente lo más pequeño y compacto posible, con el cableado de mayor diámetro/longitud más corta que pueda administrar . Una vez que tenga eso, la tierra Arduino de baja corriente se puede conectar usando el tipo de cable que tiene en la foto.

Entonces, ¿cómo podría conducir este motor con cualquier otro tipo de cables? Todos los conectores son dupont, así que no veo otra forma.
Gracias, Mark, me habían recomendado esta teoría antes, así que asumo que tiene algún mérito. Sin embargo, he intentado esto y no ha solucionado mi circuito. También conseguí que el circuito funcionara antes con estos cables. Solo estoy luchando para recrearlo por alguna razón...

Todas las corrientes que fluyen hacia el Arduino, en sus pines de alimentación y pines de E/S, deben tener un lugar de donde fluir. Ese es el propósito del pin GND.

Ahora hemos establecido que, de hecho, debería haber una corriente saliendo del pin GND.

Ahora observe que el LED es un dispositivo que actúa como un detector de corriente: cuanto más corriente directa, más luz produce (hasta que se destruye con demasiada corriente).

Entonces, al colocar el LED en el camino del pin GND, solo está midiendo, indirectamente, la corriente del pin de tierra, utilizando un medidor de corriente con un voltaje de carga bastante alto (1-2V).

Eso es todo. Si realmente desea medir la corriente, use un medidor de corriente (modo A o mA en un multímetro), no un LED.

¿Qué haría que el pin de tierra emitiera un voltaje no negativo?

Realmente no está emitiendo un voltaje no negativo, está emitiendo una corriente de todas las cargas (transistores) que son internas del Arduino. Si coloca un medidor en el pin de tierra, verá una diferencia de voltaje (ejemplo 2).

Cuando se coloca un LED en este pin, aumenta el voltaje de todo el Arduino (Ejemplo 3). Esto tiene algunos efectos negativos.

  1. El aumento del voltaje de tierra también cambia el nivel de bajo voltaje de todos los GPIO, por lo que no funcionan correctamente.

  2. El LED no es una carga constante y tampoco lo es el Arduino, pero el Arduino cambia los niveles actuales de los transistores que se encienden y apagan (probablemente verá que el LED cambia de brillo si el Arduino realmente funciona en esta condición), esto cambiará todo los niveles de voltaje del Arduino y podría resultar en un bloqueo del procesador.

esquemático

simular este circuito : esquema creado con CircuitLab

No entiendo completamente todo lo que acabas de decir, pero suena mal, ¿mi arduino estará bien si dejo de poner el LED allí?
Probablemente sí, si hacía calor mientras hacías el experimento, entonces no.