¿Usando el interruptor SPST como entrada digital?

Soy nuevo en "ingeniería eléctrica" ​​y estoy trabajando en un pequeño proyecto de arduino. Quiero que se use un interruptor SPST como entrada digital en la placa.

Tengo uno de los cables del interruptor conectado a positivo y el otro conectado a la entrada digital. El problema con esto es que cuando lo apague no puedo estar seguro de que la entrada esté conectada a tierra. ¿Cómo puedo asegurarme de que la entrada esté conectada a tierra cuando el interruptor está apagado?

¿Funcionaría si conecto la entrada digital a una resistencia que está conectada a tierra, de modo que cuando el interruptor esté apagado, esté conectado a tierra, pero cuando el interruptor esté encendido no se produzca un cortocircuito, ¿funcionaría eso?

Respuestas (3)

La solución más convencional sería conectar un lado del interruptor a tierra. Conecte el otro a la entrada digital, y también a una resistencia entre 1 y 10 K ohms que vaya al positivo de alimentación.

Ir al revés, con una resistencia desplegable como describe Bruno, es posible pero menos preferido. Muchas entradas ya tienen un grado de pull-up implícito y leerán un '1' si no están conectadas, aunque no de manera bastante confiable. Pero si su interruptor ya está conectado al riel positivo, entonces un pull down es una buena solución, aunque muchos prefieren usar una pequeña resistencia al conectar las entradas lógicas al riel positivo.

Muchos microcontroladores también tienen resistencias pullup y/o pulldown internas en los pines GPIO que se pueden habilitar escribiendo en un registro de configuración. Si está manejando una entrada de un microcontrolador de este tipo, es posible que no necesite una resistencia externa de subida/bajada, aunque no todos los microcontroladores las tienen.

Además, si está utilizando un uC con pull ups o pull downs incorporados, es una buena práctica habilitarlos en los pines que no se usan para mantenerlos en un estado conocido.
En realidad, es más fácil para mi proyecto conectar el interruptor a tierra. Así que intentaré usar una resistencia pull up. ¡Gracias!
¡Gran! Vuelve cuando quieras preguntarnos sobre "cambiar de rebote" :)
Resulta que Arduino hará pullup automáticamente. No estoy seguro de cómo, pero en el código hay un "INPUT_PULLUP" digital y ni siquiera necesito una resistencia. Eso fue fácil. Además, sobre el rebote del interruptor, lo noté cuando estaba monitoreando la salida en serie. Así que agregué un retraso de 3 ms en el código. Me ahorró otro viaje a la tienda. :)
Si revisa la hoja de datos de ATMEGA, verá que hay un bit que se puede escribir en un registro de configuración para habilitar el pullup. Las bibliotecas de Arduino solo lo hacen más conveniente. Para el rebote, ignorar (esa) entrada por un tiempo es un curso habitual, aunque 3 ms puede ser un poco corto. Si el retraso bloquea todo el sistema, es posible que deba mantenerlo corto, si solo ignora esa entrada, puede hacerlo un poco más largo, ya que las reactivaciones intencionales serían aún más lentas.

Sí, funcionaría como lo describiste. Eso se llama resistencia pull-down porque asegura que cuando el contacto está abierto, la entrada digital está en el estado lógico 0 (bajo). Por lo general, puede usar una resistencia de 10 KΩ para este propósito.

Eso funcionará y le dará una lógica positiva: un nivel alto (lógica "1") cuando el interruptor esté cerrado.

Pero como dice Chris, lo invertido es más común: el interruptor está conectado a tierra y una resistencia pull-up (en lugar de pull-down) a la fuente de alimentación. Su lógica se invertirá: un "1" lógico se corresponderá con un interruptor abierto.

Una buena razón para la versión pull-up es que la mayoría de los microcontroladores los tienen integrados y puede habilitarlos/deshabilitarlos según sus necesidades. Algunos microcontroladores también tienen menús desplegables configurables, pero estos son menos comunes.

Si desea un pull-up externo, 10 kΩ puede ser un buen valor. La entrada de un microcontrolador puede tener una corriente de fuga de hasta 1 µA, y luego 10 kΩ caerán unos insignificantes 10 mV. Sin duda, son posibles valores más bajos, pero tenga en cuenta que tendrán una corriente mayor a tierra cuando el interruptor esté cerrado. Una resistencia de 1 kΩ consumirá 5 mA con un suministro de 5 V, lo que realmente es una pérdida de energía. Para los 10 kΩ, eso es solo 500 µA. Para aplicaciones de muy baja potencia, puede aumentar el valor a 100 kΩ, pero recuerde la corriente de fuga; ¡1 µA dará una caída de 100 mV!