¿Por qué usar una resistencia para Pull-Up? [duplicar]

Acabo de recibir mi primer Arduino y tenía una pregunta sobre las resistencias pull-up.

Estaba tratando de conectar un botón pulsador al Arduino en el pin 2, y si es ALTO, entonces escribo ALTO en el pin 13. Ahora, en el tutorial que vi, decía que tenía una resistencia desde el botón hasta tierra, así que si el pin 2 pregunta cuál es el voltaje, se pone a tierra, por lo que no escribe ALTO en el pin 13.

Probé esto y, de hecho, evitó el ruido del pin 2. Sin embargo, cuando intenté reemplazar la resistencia de 10k con un cable normal, no funcionó. Entonces, mi pregunta es ¿por qué tenemos que usar una resistencia y por qué no puede ser simplemente una conexión a tierra?

En este diagrama, el pin 2 lee si obtiene 5 V (ALTO) o 0 V (BAJO) y devuelve un valor booleano. Luego, si el valor es ALTO, el pin 13 emite ALTO. Además, parece que el cable largo del Arduino está bloqueando el etiquetado en un pin. El pin al que se conecta el cable largo dice "5V".

¡Gracias!ingrese la descripción de la imagen aquí

Esta pregunta tiene muchos problemas. Usted dice "arduino en el pin 2" como si todos tuvieran el esquema de arduino a mano para verificarlo. nosotros no Creo que sé lo que estás preguntando, pero es difícil estar seguro. En el futuro, le sugiero que no asuma que todos están familiarizados con el sistema en el que está trabajando. Proporcione un enlace o un esquema, o un croquis esquemático para propósitos de discusión.
este tipo de pregunta ya se ha hecho en EE.SE: aquí y aquí .
@mkeith Agregué un diagrama :)
@Globmont, el segundo enlace proporcionado por Nick Alexeev justo arriba es bastante bueno. Lea la respuesta de alta calificación. Lo explica todo.

Respuestas (3)

Tienes que usar una resistencia para que el botón pueda dominarlo. Si usa un trozo de cable, obtiene un cortocircuito entre Vcc y GND cuando presiona el botón, lo que no es tan bueno para el botón o el resto del tablero. El uso de una resistencia mantiene el pin en un nivel específico hasta que aparece algo 'más fuerte' (menor resistencia) y lo cambia (en este caso, el botón).

Actualización debido a la adición del diagrama.

Generalmente, los botones son interruptores. Un resorte de algún tipo los mantiene "apagados". Cuando presiona el botón, supera la fuerza del resorte y corta sus dos contactos, y luego está "encendido".

En tu caso, no tienes un pullup, tienes un pulldown. Un lado del interruptor está conectado a VCC (5V) y el otro lado está conectado a la resistencia que baja a GND. El pin IO también está conectado al lado de la resistencia del interruptor.

La razón por la que necesita una resistencia, que ha sido explicada por otros respondedores, es que si usa un cable, cada vez que presione el botón, 5V se acortarán directamente a GND. Usted menciona que probó esto y "no funcionó". No estoy seguro de qué significa "no funcionó" en este contexto, pero es probable que toda la placa se reinicie cada vez que haces eso. Espero que esto responda a todas sus preguntas. ¡Diviértete experimentando!

¡Agregué un diagrama! Creo que lo descubrí, pero ¿puedes verificar mi comprensión por mí? Mi pregunta original era por qué necesitaba usar una resistencia para conectar el botón/pin 2 a tierra en lugar de un cable. Según tengo entendido, necesito usar una resistencia para que cuando presione el botón y pasen los 5 V, cuando el pin 2 solicite la entrada, leerá los 5 V y no el valor de tierra de 0 V, ya que ¿habrá resistencia? Y si estoy usando alguna terminología incorrecta, por favor corrígeme. Soy completamente nuevo en cosas eléctricas :) ¡Gracias!
@Globmont, actualicé mi respuesta. Gracias por agregar el diagrama.
¡Impresionante! ¡Gracias! Una última pregunta: tenías razón acerca de que la placa se reiniciaba cada vez que usaba un cable en lugar de una resistencia. ¿Te importaría explicar por qué sucedió eso? Dijiste que los 5V estarían en cortocircuito a GND, pero ¿por qué eso haría que la placa se reiniciara?
@Globmont, la fuente de alimentación no puede suministrar 5 V cuando está en cortocircuito a GND. Entonces, el voltaje cae muy bajo (tal vez cerca de cero, dependiendo de la resistencia del cable y la capacidad de suministro, etc.). El chip activará un reinicio interno de bajo voltaje o simplemente se desactivará por completo. Esto es lo mismo que desconectar la energía, desde la perspectiva del chip. Cuando suelta el botón, es como volver a enchufar la alimentación. Muchos procesadores, cuando se aplica alimentación por primera vez, se inician automáticamente.

Um... aquí están mis 2 centavos...

cada microcontrolador (incluido el que se encuentra en el Arduino) tiene una limitación actual en sus pines. Entonces, cuando conecta las resistencias pull-up (o pull-down), debe asegurarse de que la corriente que pueden extraer esté dentro de las especificaciones del microcontrolador). Por lo tanto, necesita una resistencia alta para esto, pero no puede mantener una resistencia demasiado grande para que incluso las corrientes parásitas arruinen su circuito. Por lo general, se recomienda entre 10K y 20K.

FYI: soy un aficionado, no un ingeniero electrónico, así que use mi información bajo su propio riesgo :-P

Abhishek