Un pin de E / S digital como tierra

9

Quiero un pin de E / S para devolver corriente en un circuito, de manera similar a la función de tierra.

¿Cuál de estos logrará lo que necesito?

pinMode(pinnumber, OUTPUT)
digitalWrite(pinnumber, LOW)

o

pinMode(pinnumber, input)
rajat
fuente
su segunda opción pinMode(pinnumber,input)es colocar el pin en el "tercer estado" del pin, que también se denomina "alta impedancia". Es básicamente como si el pin no estuviera conectado al circuito, como lo hace un ohmímetro.
zmo
"digitWrite"? ¿No te refieres a " digitalWrite "?
Peter Mortensen

Respuestas:

9

Su primer fragmento es la solución correcta.

pinMode(pinnumber,OUTPUT)
digitalWrite(pinnumber,LOW)

Sin embargo, tenga cuidado, solo puede hundir hasta 6 mA o 9 mA por pin (según la documentación [sección "Entrada y salida"], nunca intenté más). Si necesita más corriente, use un transistor ( este parece un buen ejemplo, solo necesita invertir el pin de salida HIGH).

Cuando el pin se configura como entrada, se supone que es de alta impedancia, no lo que desea.

FredP
fuente
Gracias, la corriente también proviene de los pines IO de Arduino. Por lo tanto, no creo que el límite de 40 mA sea un problema.
rajat
@rajat ¿Haciendo algún tipo de matriz LED? Tenga cuidado, suponiendo que conecte (por ejemplo) un LED de alta corriente entre dos pines (al menos sin una resistencia limitadora de corriente adecuada), aún podría dañar el chip. Ni siquiera menciona el caso en el que creas un cortocircuito.
FredP
Es una matriz de sensor de presión, tiene 10 multiplexores 16: 1. La corriente solo proviene del cable USB Arduino y no hay fuente de alimentación externa. Por lo tanto, no creo que la alta corriente sea un problema. ¿Puedes arrojar algo de luz sobre lo que posiblemente puede causar un cortocircuito?
rajat
@rajat algo así crearía un corto si los pines "1" y "2" están conectados: pinMode(pinnumber1,OUTPUT); pinMode(pinnumber2,OUTPUT); digitalWrite(pinnumber1,LOW); digitalWrite(pinnumber2,HIGH); PD: no intentes esto en casa, no hagas daño a inocentes arduini, no me
demandes
2
Me sorprendió un poco el número 6 / 9mA. Resulta que estás en lo correcto para el Arduino Due, pero para los Arduinos basados ​​en AVR (Uno, etc.), que sospecho que todavía están en la gran mayoría, ese número es más como 40mA.
microtherion