¿Necesito usar una resistencia con un microinterruptor para limitar la corriente para un Arduino Uno?

Estoy usando un Arduino Uno para controlar un pequeño robot y estoy empezando a agregar microinterruptores como sensores de impacto. Sé que cuando estoy creando un circuito con LED necesito usar resistencias para limitar la corriente para no estropear el Arduino, pero ¿tengo que hacer lo mismo con los microinterruptores? Si es así, ¿cómo calculo la resistencia necesaria?

Si marca la diferencia, mi microinterruptor es Pololu #1405, interruptor de acción rápida con palanca de choque de 15,6 mm, 3 pines, SPDT, 5A. El Arduino emite 5V y tiene un máximo de 40mA.

EDITAR : investigué un poco más y encontré una página que parece describir exactamente lo que quiero hacer ( http://arduino.cc/en/tutorial/button ), no sé cómo me lo perdí antes. Entonces, si entiendo la situación correctamente, la única resistencia que necesito es la de pull-up/down entre el interruptor y tierra, pero ninguna entre el interruptor y el pin que lee el interruptor.

En general, usa resistencias, pero para un propósito diferente, como pull-ups o pull-downs. Como dice Olin, se necesita un esquema: w9xt.com/page_microdesign_pt6_switch_inputs.html

Respuestas (2)

No necesita una resistencia, siempre que configure el pin para que se ingrese . Las resistencias de protección de corriente son necesarias solo en los casos en que se utiliza el pin Arduino como fuente de corriente, es decir, salida . Si el pin se usa como pin de salida, es posible que necesite una resistencia limitadora de corriente, según lo que esté conectado al pin. Sin embargo, generalmente no conectamos interruptores a las salidas (excepto en casos inusuales en los que los interruptores necesitan energía, los interruptores son en realidad circuitos, etc.).

Para un pin de entrada, es posible que desee una resistencia pull-up o pull-down. Sin embargo, todos los chips AVR tienen pull-ups integrados. Después de configurar el pin como un pin de entrada, activa la resistencia pull-up digitalWrite(HIGH)en ese pin o, como señala @mpflaga , en la cadena de herramientas Arduino más nueva, puede configurar el modo de entrada y pullup usando pinMode(in_pin, INPUT_PULLUP);la línea. Consulte aquí para obtener más información sobre las resistencias pull-up/pull-down.

Si desea una resistencia pull-up discreta (es decir, no use la incorporada, aunque no sé por qué lo haría), el circuito se vería de la siguiente manera:

esquemático

simular este circuito : esquema creado con CircuitLab

El pin leerá alto cuando el interruptor no esté presionado y bajo cuando lo esté.

Tenga en cuenta que el último Arduino IDE tiene un comando pinmode para que quede más claro. pinMode(en_pin, INPUT_PULLUP); arduino.cc/en/Reference/PinMode
Ah, guay. Eso es mucho más claro que la digitalWrite(..)versión de ese mismo. ¡Gracias!

Un interruptor cerrado es un corto muerto. Analice su circuito reemplazando todos los interruptores con cortos. Si todas las corrientes aún están dentro de las especificaciones, entonces está bien. Si no, no lo eres.

Sin un esquema ni ninguna pista de lo que está haciendo exactamente, esto es todo lo que se puede decir.