Lea el pin lógico de 12 V de Arduino usando un transistor NPN

Tengo un sensor de inductancia en una máquina CNC que alcanza 12 V de alto cuando se activa (colector abierto cuando no). Quiero leer esa entrada en mi Arduino que usa lógica de 5 V.

Estaba pensando que podría usar un transistor NPN simple para hacer el cambio de nivel lógico. ¿Funcionaría esto? No quiero probarlo en caso de que pueda freír el Arduino.

Respuestas (2)

Funcionará. Este circuito debe estar en 1 lógico si no hay señal y en 0 lógico si hay una señal de 12 V presente.

                +5V
                 |
                 -
                |1|
                |0|
                |K|
                 -
                 |----Arduino
                 |
                /
12V --|10K|----|
            |   \
            -    >
           | |    |
           | |   ---
            -     -
            |
           ---
            -

Las resistencias PS 10K solo están ahí como un valor genérico. Para este propósito, puede usar casi cualquier cosa. La resistencia de tierra base es de 100 K según lo recomendado por @Russell.

Agregue 100k de base a tierra 'por seguridad', especialmente cuando la entrada puede ser un circuito abierto. Sin esto, la fuga del transistor puede encender el transistor cuando la entrada está en circuito abierto. Con una corriente de fuga de base a tierra de 100k, se necesitaría hacer que Vbe> digamos 0.4V para comenzar a tener algún efecto. Entonces i = V / R = 0.4 / 100k = 4 UA. No mucho, pero mientras sea menos que eso, todo debería estar bien.

Si solo necesita leer del sensor, le sugiero un divisor de voltaje simple.

Conecte el sensor a tierra con 3 resistencias de 10k en serie en el medio. conecta tu arduino entre la segunda y la tercera resistencia y listo.