2 votos

Leer el estado de un interruptor iluminado a 12v desde un Arduino Uno

Tengo un Arduino Uno, y quiero que sea capaz de leer el estado de un "Interruptor Luminoso" de 12v de forma que permita que el interruptor se ilumine correctamente. Tengo una fuente de alimentación externa de 12v, 1,5A que puedo utilizar para iluminar el interruptor. El interruptor está catalogado como SPST, pero tiene tres conectores en él, debido al LED y la resistencia incorporados. Las tres conexiones son POWER, ACC y GND, y las dos primeras hacen cortocircuito cuando el interruptor está cerrado.

El Arduino tiene un modo de entrada digital llamado INPUT_PULLUP que permite incorporar una resistencia pullup de 20k en una línea de entrada digital. Un típico interruptor no luminoso simplemente cortocircuitaría el pin a tierra, y el software puede entonces leer HIGH para abierto y LOW para cerrado.

Esta es mi idea para leer el interruptor de 12v usando un transistor NPN, pero no soy un EE y no estoy seguro de donde van las resistencias o que fuerza deben tener. El transistor NPN que tengo a mano es un 2N222A (Vceo 40, Ic 600, potencia disipada 625 mW), pero estoy abierto a cambiarlo por otro. De las resistencias estoy menos seguro. Creo que debería haber R1 entre ACC y la base, porque hay +12v fluyendo allí cuando el interruptor está cerrado. Y también creo que necesito una resistencia pull-down R2 en la base. ¿Estoy en el camino correcto aquí, y si es así, qué resistencia debe ser R1 y R2?

enter image description here

El interruptor luminoso es un Radio Shack 275-0010, si necesitas más detalles al respecto. Estoy buscando una respuesta que muestre una forma fiable y mínima de leer el estado de este interruptor en particular en el Arduino, incluyendo los valores correctos para cualquier resistencia necesaria en el circuito. Gracias.

2voto

gabr Puntos 20458

Estás más o menos en el camino, el valor de la resistencia no es realmente crítico aquí, puedes usar 10K para ambas resistencias, eso funcionará bien.

schematic

simular este circuito - Esquema creado con CircuitLab

Puedes hacer un circuito equivalente de Thevenin para las situaciones de interruptor abierto y cerrado, para el interruptor cerrado:

schematic

simular este circuito

Cuando pulses el interruptor, estarás conduciendo la base con alrededor de 1mA, eso debería hacer que el transistor conduzca el pullup de 20K hacia abajo muy cómodamente (en este caso, el transistor debería ser capaz de conducir hfe*ib a través del colector, que será al menos de cien mA)

Al soltar el interruptor:

schematic

simular este circuito

Conectas la base a tierra a través de 10Kohm, asegurándote de apagar el transistor. Bastante simple y efectivo.

1voto

Whiskeyjack Puntos 758

Puede utilizar este circuito aislado ópticamente:

Sw Sense

Cuando recibe 12V en el lado izquierdo, el LED se ilumina y envía un HIGH al GPIO del arduino. Cuando no hay 12V, el LED se apaga y recibe un LOW en el GPIO del arduino.

Si la alimentación de 12V tiene una GND separada, mejor usar esa en el lado izquierdo. Utiliza el GND común sólo si ya hay un GND común entre el arduino y ese suministro de 12V para empezar.

El circuito R-C en el lado derecho se encargará de la desbordamiento para que usted no tenga que hacer en su código. Si te sientes cómodo con el código, puedes deshacerte del condensador. También puedes cambiar la resistencia de 390K a 10K.

1voto

Passerby Puntos 28913

Podrías conectar directamente el GND del interruptor (que es el extremo de tierra/cátodo del led) al transistor NPN que quieras. Opcionalmente, si ves que la entrada flota o conmuta a menudo, añade R(Opt), un pulldown para forzar el apagado del transistor, cuando el led/interruptor esté apagado. La masa de la fuente de 12V y la del Arduino deben estar conectadas en algún punto. Si estás alimentando el Arduino desde la fuente de 12V, entonces ya lo están.

schematic

simular este circuito - Esquema creado con CircuitLab

Esto funciona, asumiendo que la corriente del LED es la típica de 20mA o menos.

Y el interruptor basculante utiliza un LED y no una bombilla incandescente en miniatura.

Verá poca o ninguna reducción en el brillo de los leds. Una caída de 0,7V es apenas visible a 20 mA.

La fórmula para polarizar el transistor, y polarizar un led, es esencialmente la misma. Tensión de la fuente menos la tensión directa, dividida por la corriente directa (o resistencia)

( V Fuente - V F ) / I F

Con dos diodos, el diodo base y el led, suma estos voltajes de avance y suponiendo una corriente de avance de 20 mA, sólo tienes que enchufar los números. Si es rojo/naranja, asuma 2.1V, de lo contrario 3.2V para azul/blanco/verde/etc.

(12V - (0.7V + ~2.1V) ) / 0.02A = (12 - 2.8) / 0.02 = 9.2 / 0.02 = 460
(12V - (0.7V + ~3.2V) ) / 0.02A = (12 - 3.9) / 0.02 = 8.1 / 0.02 = 405

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X